首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Oracle中插入空字符串

在Oracle中插入空字符串
EN

Stack Overflow用户
提问于 2018-04-06 01:26:14
回答 1查看 12.1K关注 0票数 5

我试图在Oracle中的非空列中插入空字符串,但失败了。下面是这个案例:

代码语言:javascript
复制
create table trademark (
  name varchar2(100) not null
);

insert into trademark (name) values ('Kodak');

insert into trademark (name) values (' '); -- one space

insert into trademark (name) values (''); -- empty string
Error: ORA-01400: cannot insert NULL into ("USER1"."TRADEMARK"."NAME")

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-06 01:27:04

在Oracle中,空字符串等效于NULL

在几乎所有其他数据库中,这两个数据库是不同的,但这就是Oracle为字符串定义NULL值的方式(默认情况下)。

documentation中解释了这一点,以及这条诱人的注释:

备注:

Oracle数据库当前将长度为零的字符值视为null。但是,在将来的版本中,这种情况可能不会继续存在,Oracle建议您不要将空字符串视为nulls。

突出显示的部分是我的。我不确定你应该如何遵循这个建议。我认为这意味着当您打算使用''时,显式地使用NULL,而不是NULL

请注意,在SQL中,NULL表示未知值,而不是空值。没有字符的字符串(完全有效的字符串)和未知的NULL值之间有很大的区别。实际上,NULL通常用来表示缺失,但这更像是一种约定,而不是一种定义。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49678159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档