暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

SUNDB中 ''与null和空格的区别

原创 科蓝SUNDB编辑部 2022-12-27
461

1. 操作系统版本及内核发行版本 :

CentOS 7.6–3.10.0-693.el7.x86_64

2. 数据库版本及架构 :

数据库架构 单机, 数据库版本为Release 5.0 22.1.0 revision(8bbaa88)

3. 问题描述 :

应用程序执行sql报错
错误代码 :

create table "PUBLIC"."TEST2" (id int,name varchar(20) not null default 'a');
insert into test2 values(1,''); 
ERR-22004(16056): cannot insert NULL into "PUBLIC"."TEST2"."NAME"

4. 原因 :

由于SUNDB数据库中,没有空字符串(’’)的概念,只有null和数据,占用长度也仅为null和相应的数据空间。
解决方案 :
如果字段类型为非空,需要写入默认值,则请忽略此字段或者直接写入默认值。如果不是非空,则自动写入null

--  ---------------------------------------------  
id int,name varchar(20) not null default '1' -- 写入1
insert into test_null(id) values(1);  
--  ---------------------------------------------  
id int,name varchar(20)   --写入null
insert into test_null(id,if_null) values (1,null);   
--  ---------------------------------------------  
gSQL> select length(null),length(''),length(' ') from dual;

LENGTH(NULL) LENGTH('') LENGTH(' ')
------------ ---------- -----------
        null       null           1

1 row selected.
最后修改时间:2023-07-17 15:04:24
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论