我处于由于oracle行为而导致查询未返回任何值的情况。
Oracle:NULL和EMPTY字符串之间的区别
问题是这样的:Oracle considers EMPTY STRING as NULL when INSERTING DATA but not when SELECTING BACK the data。
这不是Why does Oracle 9i treat an empty string as NULL?的重复,因为在这里我不是要问这个问题的原因,我很清楚原因,我要求解决这个问题。
这是我的表结构
CREATE TABLE TEST
(
ID NUMBER not null,
NAME VARCHAR2(255)
)
插入值oracle会接受
INSERT INTO TEST值(1, '')时;
我发现内部甲骨文转换字符串长度为零,为NULL并存储
但我查询
SELECT * FROM TEST WHERE NAME =输入;(INPUT = '')
(输入从前端过去了,有时有空字符串)
不会返回任何结果
我不能写动态由于性能问题
有人谁遇到这个问题之前,请让我知道如何比较用NULL
[为什么Oracle 9i将空字符串视为NULL?](http://stackoverflow.com/questions/203493/why-does-oracle-9i-treat-an-empty-string-as- null) –
@vkp我不是要求原因。我要求解决这个问题。所以这不是重复的。在问这个问题之前,我已经通过了这个问题。 – shreesha
只是为了反驳OP的反对意见:我不明白他/她的问题怎么可能是“为什么...”的重复(尽管我毫不怀疑它是某件事的重复;其他人一定会问这个问题之前,也许它只是不显示在一个快速搜索。) – mathguy