오라클의 고유한 빈 문자열 처리: NULL 또는 NULL이 아닌가?
빈 문자열('')을 NULL과 동일시하는 Oracle 9i의 관행은 많은 개발자에게 혼란을 가져왔습니다. 문자를 저장하도록 설계된 데이터 유형이 유효한 문자열과 누락된 데이터를 동일시하는 이유는 무엇입니까?
이러한 특성을 이해하려면 오라클의 역사를 먼저 살펴봐야 합니다. SQL 표준이 출현하기 전에 Oracle은 빈 문자열을 NULL 값으로 처리하기 위해 VARCHAR/VARCHAR2 열을 정의했습니다. 이 설계는 모든 형태의 누락 데이터를 포괄하는 NULL에 대한 Oracle의 고유한 해석에서 비롯됩니다.
SQL 표준이 등장하고 NULL과 빈 문자열의 차이가 확립되자 Oracle은 딜레마에 직면했습니다. 기존 VARCHAR 열의 동작을 변경하면 이전 코드가 손상되고 표준을 위반하는 것은 업계 관행에서 벗어나게 됩니다. 중단을 최소화하기 위해 Oracle은 원래 정의를 유지하기로 논란의 여지가 있는 결정을 내렸습니다.
Oracle은 이러한 관행이 표준에서 벗어났다는 점을 인정하지만 표준에 맞춰 향후 변경이 가능하도록 여지를 남겨둡니다. 따라서 개발자는 향후 코드 호환성을 위해 VARCHAR보다 VARCHAR2를 선호하는 것이 좋습니다. Oracle이 이러한 비정상적인 동작을 유지하는 이유에 대해 많은 추측이 있었지만 그 이유는 아마도 끊임없이 변화하는 표준 환경에서 이전 버전과의 호환성을 유지해야 할 필요성에 뿌리를 두고 있기 때문에 공식적인 미스터리로 남아 있습니다.
위 내용은 Oracle은 빈 문자열을 NULL로 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!