我正在尝试从存档数据库中获取行以填充测试环境数据库。我需要行,其中名为“AUDIT_LOG”的特定字段(CLOB)不能为空。
我尝试了以下简单的select语句,但我得到了
ORA-00932:不一致的数据类型:预期 - 获得CLOB
我试过的陈述:
SELECT * FROM SIEBEL.S_AUDIT_ITEM WHERE AUDIT_LOG = ''
SELECT * FROM SIEBEL.S_AUDIT_ITEM WHERE AUDIT_LOG != NULL
SELECT * FROM SIEBEL.S_AUDIT_ITEM WHERE AUDIT_LOG = 0
CLOB中的NULL是否等于空字符串。我感觉可能长度可用于色谱柱。
由于
答案 0 :(得分:9)
检查NULL,无论数据类型如何,您都使用IS NOT NULL
或IS NULL
WHERE AUDIT_LOG IS NOT NULL
答案 1 :(得分:3)
SELECT * FROM SIEBEL.S_AUDIT_ITEM WHERE length(AUDIT_LOG) > 0
答案 2 :(得分:0)
以上方法均不适用于Oracle 10g: 我必须用一种不好的方式写它:
select * from SIEBEL.S_AUDIT_ITEM where to_char(AUDIT_LOG) != 'null' ;