Oracle将“”变为NULL

时间:2014-10-21 11:19:14

标签: java oracle mybatis

我从java检索数据然后插入Oracle,问题是oracle接受""值然后转换它 进入表中的NULL。

这是不受欢迎的行为,当我再次从oracle中检索它时会导致问题 我期待""而不是NULL

我更喜欢在oracle服务器端设置一些优雅的解决方案。全局配置或其他东西 而不是将数百万条if语句放入我的Java代码中。

2 个答案:

答案 0 :(得分:3)

正如评论中所述,你无能为力。 Oracle将空字符串视为与NULL无异,并在为空字符串提供空字符串时将其存储到varchar2列中。 如果你真的想在那里有东西,你可以做什么,而是存储一个空间。

答案 1 :(得分:1)

在Oracle中将空字符串视为空值。

如上所述, only 解决方案用于区分空值和&空字符串是要记住null值是唯一的,因为你不能在空值上使用常用的操作数(=,<,>等)。

相反,您必须使用IS NULLIS NOT NULL条件来检查Oracle中的空值。

此外,为了选择列为空格不是空字符串且不为空的记录,可以使用以下内容。

WHERE DATALENGTH(COLUMN) > 0 

如果你想选择任何完全由空格组成的字符串为空。

WHERE COLUMN <> '' 

希望这会对你有所帮助。