2014-05-22 1 views

답변

1

첫 번째는 다른 동안 INTEGER 형 같이 NULL 형으로 null 값을 전송하는 드라이버를 지시한다. 이것은 종종 ? IS NULL OR someIntegerColumn = ?과 같은 조건에서 필요합니다. 첫 번째 매개 변수는 NULL 유형이고 두 번째 매개 변수는 INTEGER 유형입니다.

정확한 차이는 데이터베이스 드라이버에 따라 다릅니다. 일부 데이터베이스/드라이버는 준비시 서버가 지정한 유형을 항상 사용하며 다른 유형은 해당 유형으로 변환합니다. 반면 다른 유형은 통신을 필요로하거나 허용합니다 유형은 응용 프로그램 측면을 지정합니다 (데이터베이스는 실제 로컬 유형으로 변환됩니다). 서버가 서버 측에서 준비된 명령문을 지원하지 않는 경우에도 필요할 수 있습니다.

유형을 지정하는 데 실제로 미묘한 영향이있을 수 있습니다. 하나는 변환 오류로 이어질 수도 있고 다른 하나는 변환하지 않을 수도 있고 후속 변환은 유형 변환 규칙으로 인해 다르게 동작 할 수도 있습니다. 나는 실제로 이런 일이 실제로 일어나고 있음을 알고 있지 않습니다.

+0

null은 어떻게 데이터 유형을 가질 수 있습니까? 나는 혼란 스럽다. 기묘한!!! – Mahesh

+0

@Mahesh'NULL' 데이터 유형은 값이 null이거나 null이 아니라는 것을 의미합니다 (축약 된 부울로 간주). 어떤 시스템에서는'? IS (NOT) NULL '은 유추 할 다른 유형이 없기 때문에 NULL입니다. 드라이버는 서버에 값을 보내지 않고 null 또는 null이 아닌 지시자 만 전송합니다. –