标榜天下 发表于 2011-1-13 16:01:00

IQ12.7 GA版和IQ15.2#ESD1 insert into 问题

create table test1(id int,name char(10),age tinyint)
然后执行insert into test1 values(1,'1111111111aa',30)
15上为什么不能执行成功? 12.7可以执行成功。
求问题原因?

tiger123 发表于 2011-1-13 16:08:37

这是因为IQ的一个数据库选项STRING_RTRUNCATION 的缺省值在IQ 12.7和IQ 15发生了改变。先说说这个选项的作用:
Determines whether an error is raised when an INSERT or UPDATE truncates a CHAR or VARCHAR string. When STRING_RTRUNCATION is OFF, the
exception is not raised and the character string is silently truncated. If the option is ON and an error is raised, a ROLLBACK occurs.
IQ 12.7缺省是OFF,而IQ 15是ON

标榜天下 发表于 2011-1-13 16:12:30

怎么在IQ数据库中看这个选项设置?。。右截断字符会造数据的不一致性吧?

tiger123 发表于 2011-1-13 16:15:28

可以使用下面的查询看到这个数据库选项当前设定的值:
select * from sysoptions where upper("option") like '%rtruncation%'

tiger123 发表于 2011-1-13 16:16:21

贴错了,应该是下面的
select * from sysoptions where upper("option") like '%RTRUNCATION%'

tiger123 发表于 2011-1-13 20:23:25

如果STRING_RTRUNCATION设置为OFF,那么允许截断字符串,这样会导致数据丢失。
页: [1]
查看完整版本: IQ12.7 GA版和IQ15.2#ESD1 insert into 问题

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com