用户的一个IQ数据库需要从HP UX的12.7 GA版的数据库迁移到 HP ITANIUM 12.7 的ESD 3,使用backup/restore方法迁移之后,正常启动了数据库。在运行sp_iqwho存储过程时报如下错误:
ASA Error -195: Column 'BlockUserid' in table 't_conn_info' cannot be NULL
造成问题的原因是用户在restore之后虽然执行了alter database upgrade对Catalog DB中的数据字字典表进行了升级,但使用了Open Client isql工具执行的这一语句。在用isql连接到IQ时,对于open client连接IQ Server会把ALLOW_NULLS_BY_DEFAULT数据库选项设为‘OFF’,这样一来如果建表时字段没有显示说明是NULL或NOT NULL时,缺省是NOT NULL。而sp_iqwho存储过程建立t_conn_info表时并没有显示指定字段是否为NULL,所以造成了问题。
解决问题的办法是在单用户方式下,使用dbisql执行再次ALTER DATABASE UPGRADE命令。
阅读(2471) | 评论(0) | 转发(0) |