Java에서 데이터를 검색 한 다음 오라클에 삽입합니다. oracle은 ""
값을 가져 와서 을 NULL로 변환합니다. 나는 ""
오히려 NULLOracle이 "NULL"로 변환합니다
이상을 기대하고
이 원하지 않는 행동이고, 나는 다시 오라클에서 검색 할 때이 문제가 발생, 나는 오라클 서버 측에 뭔가를 설정 우아한 해결책을 선호한다. 전역 설정이나 무언가 을 자바 코드에 수백만 가지의 if 문을 넣는 대신에 사용할 수 있습니다.
Java에서 데이터를 검색 한 다음 오라클에 삽입합니다. oracle은 ""
값을 가져 와서 을 NULL로 변환합니다. 나는 ""
오히려 NULLOracle이 "NULL"로 변환합니다
이상을 기대하고
이 원하지 않는 행동이고, 나는 다시 오라클에서 검색 할 때이 문제가 발생, 나는 오라클 서버 측에 뭔가를 설정 우아한 해결책을 선호한다. 전역 설정이나 무언가 을 자바 코드에 수백만 가지의 if 문을 넣는 대신에 사용할 수 있습니다.
의견에서 말했듯이, 당신이 그것에 관해 할 수있는 것은 아무것도 없습니다. 오라클은 NULL과 다른 빈 문자열을 처리하고 빈 문자열을 제공하면 NULL을 varchar2 열에 저장합니다.
정말로 뭔가를 가지고 싶다면 할 수있는 일은 하나의 공간을 대신 저장하십시오.
'-' 해결책을 찾고 있는데 '
기다려 .. 뭐라구? –
@ShishirKumar 그것은 오라클의 작동 방식입니다. 그리고 역사적으로 그것은 꽤 정확한 행동입니다. Forms 애플리케이션의 빈 입력 필드가 빈 문자열을 나타내거나 전혀 입력을 나타내지 않는다는 것을 데이터베이스가 어떻게 알 수 있습니까? – jwenting
빈 문자열은 Oracle에서 널값으로 처리됩니다.
같이, 널 (null)을 구별 할 수있는 만 솔루션은 null
값은 보통 피연산자 (= <> 등을 사용할 수 있다는 점에서 독특한 것을 염두에두고 & 빈 문자열입니다 값 위 말했다)을 Null 값으로 설정합니다.
대신 Oracle에서 null을 확인하려면 IS NULL
및 IS NOT NULL
조건을 사용해야합니다.
또한, 빈 공백으로 열을 가지고있는 레코드를 선택하려면 이지만이 아닌 빈 문자열이 아니고 null이 아닌 레코드를 사용하려면 아래를 사용할 수 있습니다.
WHERE DATALENGTH(COLUMN) > 0
공백으로 구성된 모든 문자열을 공백으로 선택하려는 경우.
희망이 도움이 될 것입니다.
불행히도 [이것은 Oracle의 기능입니다] (http://stackoverflow.com/q/13278773/1134080). 다르게 작동하는 PostgreSQL 또는 MySQL로 전환하는 것을 고려할 수 있습니다. – ADTC
잘 알려진 사실 : Oracle *은 * 빈 문자열 *이 아니며 대신 NULL을 사용합니다. –
@Pablo이 사이트의 대부분의 질문에 대해 같은 주제가 설명되어 있습니다. 왜 그런지 찾고 있지 않습니다. –