欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

db2批改表结构最好的方式是什么

更新时间: 2014-01-05 02:23:31 责任编辑: Author_N1

 

DB2修改表结构最好的方式是什么?
数据库是DB2,一个字段原来是decimal(9,2),我想改成decimal(13,2),修改后报错全部信息如下:

--------------------------------

[IBM][CLI Driver][DB2/NT] SQL0443N  例程 "ALTOBJ"(特定名称 "")返回错误 
SQLSTATE,且诊断文本为 "SQL0204 Token: SYSTOOLS.ALTOBJ_INFO_V          
               "。  SQLSTATE=38553

说明: 
SQLSTATE 与消息正文 "<正文>" 一起由例程 "<例程名>"(特定名称 "<特定名
称>")返回给 DB2。例程可以是用户定义的函数或用户定义的方法。

用户响应: 
用户需要理解该错误的含意。咨询数据库管理员,或例程的程序设计者。
由 IBM 提供的函数在 SYSFUN 模式中检测到的错误全都返回 SQLSTATE 38552。
消息的消息正文部分的格式是:
SYSFUN:nn

其中 nn 是原因码,它表示: 

01       数值超出范围

02       被零除

03       算术溢出或下溢

04       日期格式无效

05       时间格式无效

06       时间戳记格式无效

07       时间戳记持续时间的字符表示法无效

08       时间间隔类型无效(必须是 1、2、4、8、16、32、64、128、256 之一
         )

09       字符串太长

10       字符串函数中的长度或位置超出范围

11       浮点数的字符表示法无效

12       内存不足

13       意外错误

由 IBM 提供的例程在 SYSIBM 或 SYSPROC 模式中以及 IBM 提供的过程在 SYSFUN
模式中检测到的错误全都返回 SQLSTATE 38553。消息的消息正文部分一个包含可
能是 SQLCODE 的消息号(例如,SQL0572N),一个 DBA 错误消息(例如,
DBA4747)或例程的其他一些指示(例如,遇到了什么错误)。注意,如果该消息
号的消息正常地包含标记,那么这些标记值仅在 db2diag.log 文件中可用。
  sqlcode:  -443
  sqlstate: (例程返回的 SQLSTATE)。

--------------------------



请江湖上的朋友帮帮忙,能否给解释下报错原因?不知怎样修改DB2表结构才是最好的方式?




--参考方法--
最好的方式是drop后重建 但如果有数据的话就有些麻烦
--参考方法--
你怎么改的?

CREATE TABLE test(id INT,price DECIMAL(9,2))
ALTER TABLE test ALTER COLUMN price SET DATA TYPE DECIMAL(13,2)

--参考方法--
你用alter直接改的吗?正常情况下,长度短的变长,应该不会报错,不行你就只能导出数据,删掉重建表了
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:23:31
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9244/
本文WWW.DOC100.NET DOC100.NET版权所有。