db2常见错误
DB2故障处理的解决办法

解决问题的关键在于分清问题的种类,并清楚每种问题的解决办法。
另外很多的数据库的问题都是由于错误的操作,错误的配置引起的,所以本文在解释怎么样处理问题时也会给出一些好的建议,来避免产生问题。
本文重点介绍实用的方法。
对问题的分类有很多种方法,在本文中我我采用了两种分类方案。
第一种方案是是否有错误码。
即发生错误时是否同时返回了错误码,错误码既包括执行命令的返回码,也包扩应用程序的返回码。
有返回码的错误解决方案是,在db2 CLP中运行db2?SQLXXXX,然后根据对该问题的解释采取相应的解决方案。
对没有错误码的问题,如数据库hang,CPU使用率过高等问题,解决问题的经验将非常重要,在本文中会有详细的说明。
根据错误码解决问题举例(在下文中,再出现需要用这种方法解决问题时将不再重复):如在连接数据库时发生错误db2 connect to sampleSQL0332N There is no available conversion for the source codepage"1386" tothe target code page "819". Reason Code "1". SQLSTATE=57017错误码分为返回码(SQL0332N)和原因码(Reason Code "1"),针对不同的原因码有不同的解决方案运行db2 ? sql0332从输出种可以看到对于reason code 1的解释是……1 source and target code page combination is not supported bythedatabase manager.……所以可以通过设置代码页来解决这个问题db2set db2codepage=1386db2 terminatedb2 connect to sample就可以成功连接了。
DB2故障总结

1.还原数据库之后,客户端无法和服务器主机连接,SQL30081N 检测到通信错误。
正在使用的通信协议:"TCP/IP"。
正在使用的通信API:"SOCKETS"。
检测到错误的位置:"192.168.247.120"。
检测到错误的通信功能:"connect"。
特定于协议的错误代码:"10061"、"*" 和 "*"。
SQLSTATE=08001a.最可能是数据库没启动。
b.可能还原之后端口设置缺失的原因。
肯定和db2 dbm的svcename服务有关。
>>db2 get dbm cfg|grep SVCENAMETCP/IP Service name (SVCENAME) =SSL service name (SSL_SVCENAME)=这里TCP/IP端口设置时缺失了。
需要手动设置。
>>db2set DB2COMM=TCP/IP,NETBIOS设置通信方式>>db2set>>db2 update dbm cfg for tsbdw using svcename 50000DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully更新通信端口>>db2stop>>db2start>>db2 get dbm cfg |grep SVCENAMETCP/IP Service name (SVCENAME) = 50000SSL service name (SSL_SVCENAME) =重连数据库即可成功2.在忘记关闭数据库的情况下重启的服务器会导致实例挂起,数据库起不起来无法执行DB2的各种命令报错SQL6036N START or STOP DATABASE MANAGER command is already in progress.Kill alldb2_kill + ipclean to recycle the instancenote:kill db2 process force。
数据库db2错误代码大全

数据库db2错误代码⼤全sqlcode sqlstate 说明000 00000 SQL语句成功完成01xxx SQL语句成功完成,但是有警告+012 01545 未限定的列名被解释为⼀个有相互关系的引⽤+098 01568 动态SQL语句⽤分号结束+100 02000 没有找到满⾜SQL语句的⾏+110 01561 ⽤DATA CAPTURE定义的表的更新操作不能发送到原来的⼦系统+111 01590 为2型索引设置了SUBPAGES语句+117 01525 要插⼊的值的个数不等于被插⼊表的列数+162 01514 指定的表空间被置为检查挂起状态+203 01552 使⽤⾮唯⼀的名字来解决命名的限定列+204 01532 命名的对象未在DB2中定义+206 01533 命名的列不在SQL语句中指定的任何表中存在+218 01537 因为SQL语句引⽤⼀个远程对象,不能为该SQL语句执⾏EXPLAIN+219 01532 命名的PLAN TABLE不存在+220 01546 不正确定义PLAN TABLE,检查命名列的定义+236 01005 SQLDA中的SQLN的值⾄少应于所描述的列的个数⼀样⼤+237 01594 ⾄少有⼀个被描述的列应该是单值类型,因此扩展的SQLVAR条⽬需要另外的空间+238 01005 ⾄少应有⼀个被描述的列是⼀个LOB,因此扩展的SQLVAR条⽬需要另外的空间+239 01005 ⾄少应有⼀个被描述的列应是单值类型,因此扩展的SQLVAR条⽬需要另外的空间+304 01515 该值不能被分配给宿主变量,因为该值不再数据类型的范围之内+331 01520 不能被翻译的字符串,因此被设置为NULL+339 01569 由于与DB2 2.2版本的⼦系统连接,所以可能存在字符转换问题+394 01629 使⽤优化提⽰来选择访问路径+395 01628 设置了⽆效的优化提⽰,原因代码指定了为什么,忽略优化提⽰+402 01521 未知的位置+403 01522 本地不存在CREAT ALIAS对象+434 01608 在DB2未来发布的版本中将不⽀持指定的特性,IBM建议你停⽌使⽤这些特性+445 01004 值被CAST函数截取+462 01Hxx 由⽤户定义的函数或存储过程发出的警告+464 01609 命名的存储过程超出了它可能返回的查询结果集的个数限制+466 01610 指定由命名的存储过程返回的查询结果集的个数。
db2报错:[DB2NT]SQL0952N由于中断,处理被取消SQLSTATE=57014
![db2报错:[DB2NT]SQL0952N由于中断,处理被取消SQLSTATE=57014](https://img.taocdn.com/s3/m/19e826ef900ef12d2af90242a8956bec0975a52d.png)
db2报错:[DB2NT]SQL0952N由于中断,处理被取消
SQLSTATE=57014
DB2被中断,报错: [DB2/NT] SQL0952N 由于中断,处理被取消 SQLSTATE=57014
在DB2的开发过程中,今⽇运⾏了⼀个执⾏时间较为长的sql语句。
使⽤DB2服务端的控制台,运⾏该sql⼤约需要1分钟左右。
⽽,在开发的程序⾥,运⾏30秒后,就被打断了,爆出异常 [DB2/NT] SQL0952N 由于中断,处理被取消 SQLSTATE=57014。
找了⽹上好多的资料,都没有结果。
只在⼀篇ADO开发DB2的⽂章⾥找到了线索:
解决⽅法⼀:我们开发时,只注意到了connection的连接时长。
事实上,connection过期时间属性,已经被设置为0了,且只读。
所以默认是永不过期的。
⽽对于我们每次SQL语句的执⾏,事实上是和DB2.DBCommand直接相关的。
有意思的是,DBCommand也有个CommandTimeout 属性,且可读可写。
将其设置为0后,就不会爆出处理被中断的问题了。
呵呵!
解决⽅法⼆:db2cli.ini中添加
set QUERYTIMEOUTINTERVAL=0 in the db2cli.ini and try again。
DB2故障总结

1.还原数据库之后,客户端无法和服务器主机连接,SQL30081N 检测到通信错误。
正在使用的通信协议:"TCP/IP"。
正在使用的通信API:"SOCKETS"。
检测到错误的位置:"192.168.247.120"。
检测到错误的通信功能:"connect"。
特定于协议的错误代码:"10061"、"*" 和 "*"。
SQLSTATE=08001a.最可能是数据库没启动。
b.可能还原之后端口设置缺失的原因。
肯定和db2 dbm的svcename服务有关。
>>db2 get dbm cfg|grep SVCENAMETCP/IP Service name (SVCENAME) =SSL service name (SSL_SVCENAME)=这里TCP/IP端口设置时缺失了。
需要手动设置。
>>db2set DB2COMM=TCP/IP,NETBIOS设置通信方式>>db2set>>db2 update dbm cfg for tsbdw using svcename 50000DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully更新通信端口>>db2stop>>db2start>>db2 get dbm cfg |grep SVCENAMETCP/IP Service name (SVCENAME) = 50000SSL service name (SSL_SVCENAME) =重连数据库即可成功2.在忘记关闭数据库的情况下重启的服务器会导致实例挂起,数据库起不起来无法执行DB2的各种命令报错SQL6036N START or STOP DATABASE MANAGER command is already in progress.Kill alldb2_kill + ipclean to recycle the instancenote:kill db2 process force。
DB2安装出错及解决方法

DB2安装出错及解决方法1.在安装进度条到80%时,窗口直接关闭解决方法:检查杀软是否关闭,关闭后重装2.在安装进度条到80%时,出现错误提示为具有的端口"50000"的服务名称"DB2C_DB2"而更新系统上的服务文件时出错解决方法:打开C:\WINDOWS\system32\drivers\etc\,找到services用记事本打开写入如下信息DB2_DB2 60000/tcpDB2_DB2_1 60001/tcpDB2_DB2_2 60002/tcpDB2_DB2_END 60003/tcpdb2c_DB2 50000/tcp3.正常安装完毕,打开命令编辑器出现错误提示:DB2JA VIT:RC=9505解决方法:方法总结一:题记:WIN7下装DB2,启动任务中心、控制中心报DB2JA VIT:RC=9505。
解决方案:进入(计算机—>管理—>本地用户和组—>用户)把用户加入到DB2ADMNS或DB2USERS,即可解决。
方法总结二:DB2JA VIT : RC = 9505DB2JA VIT : RC = 9505 & SQL5005C System ErrorOn Windows Vista, if the "DB2JA VIT : RC = 9505" error occurs when DB2 starts. Try this to see if it resolves the issues for now: for the programs (CLP, CMD, CC), right click on the launching shortcut and select "Run as administrator".Upon reboot and logging in after the installation, this error might appear: SQL5005C System Error.To resolve this problem, add your user to the DB2ADMNS or the DB2USERS group.4.找不到SAMPLE正常安装完毕,一般会自动创建SAMPLE数据库,在命令行处理器中输入CONNECT TO SAMPLE时出现以下提示:SQL1013N 找不到数据库别名或数据库名称”SAMPLE”.SQlSTATE=42705解决方法:进入cmd命令提示符界面,然后进行如下操作后(这些命令的操作是删除残留的SAMPLE 数据库),你就可以重建SAMPLE数据库了D:\>;db2cmdD:\>;db2 drop db sampleSQL1013N 找不到数据库别名或数据库名"SAMPLE "。
db2报错Operationnotallowedforreason

db2报错Operationnotallowedforreason1.表操作错误SQL0668N Operation not allowed for reason code "1" on table "XXXX". SQLSTATE=57016的解决⽅法The table is in Check Pending state. The integrity of the table is not enforced and the content of the table may be invalid.An operation on a parent table or an underlying table that is not in a check pending state may also receive this error if a dependent table is in a check pending state.Execute the SET INTEGRITY statement with the IMMEDIATE CHECKED option on table table-name to bring the table out of the Check Pending state.For a user maintained materialized query table, execute the statement with the IMMEDIATE UNCHECKED option instead of the IMMEDIATE CHECKED option.:ERROR [57016] [IBM][DB2/AIX64] SQL0668N Operation not allowed for reason code "1" on table "XXXX". SQLSTATE=57016可能有⼀⾏或多⾏违反了对数据定义的约束。
DB2错误信息(按sqlcode排序)

DB2错误信息(按sqlcode排序)DB2错误信息(按sqlcode排序)sqlcode sqlstate 说明000 00000 SQL语句成功完成01xxx SQL语句成功完成,但是有警告+012 01545 未限定的列名被解释为一个有相互关系的引用+098 01568 动态SQL语句用分号结束+100 02000 没有找到满足SQL语句的行+110 01561 用DATA CAPTURE定义的表的更新操作不能发送到原来的子系统+111 01590 为2型索引设置了SUBPAGES语句+117 01525 要插入的值的个数不等于被插入表的列数+162 01514 指定的表空间被置为检查挂起状态+203 01552 使用非唯一的名字来解决命名的限定列+204 01532 命名的对象未在DB2中定义+206 01533 命名的列不在SQL语句中指定的任何表中存在+218 01537 因为SQL语句引用一个远程对象,不能为该SQL语句执行EXPLAIN+219 01532 命名的PLAN TABLE不存在+220 01546 不正确定义PLAN TABLE,检查命名列的定义+236 01005 SQLDA中的SQLN的值至少应于所描述的列的个数一样大+237 01594 至少有一个被描述的列应该是单值类型,因此扩展的SQLVAR条目需要另外的空间+238 01005 至少应有一个被描述的列是一个LOB,因此扩展的SQLVAR条目需要另外的空间+239 01005 至少应有一个被描述的列应是单值类型,因此扩展的SQLVAR条目需要另外的空间+304 01515 该值不能被分配给宿主变量,因为该值不再数据类型的范围之内+331 01520 不能被翻译的字符串,因此被设置为NULL+339 01569 由于与DB2 2.2版本的子系统连接,所以可能存在字符转换问题+394 01629 使用优化提示来选择访问路径+395 01628 设置了无效的优化提示,原因代码指定了为什么,忽略优化提示+402 01521 未知的位置+403 01522 本地不存在CREAT ALIAS对象+434 01608 在DB2未来发布的版本中将不支持指定的特性,IBM建议你停止使用这些特性+445 01004 值被CAST函数截取+462 01Hxx 由用户定义的函数或存储过程发出的警告+464 01609 命名的存储过程超出了它可能返回的查询结果集的个数限制+466 01610 指定由命名的存储过程返回的查询结果集的个数。
db2连接报错connect。ERRORCODE=-4499,SQLSTATE=08001(转载)

db2连接报错connect。
ERRORCODE=-4499,SQLSTATE=08001(转载)在使⽤data studio连接远程DB2数据库时报错如下:[jcc][Thread:main][SQLException@5b775b77] java.sql.SQLException[jcc][Thread:main][SQLException@5b775b77] SQL state = 08001[jcc][Thread:main][SQLException@5b775b77] Error code = -4499[jcc][Thread:main][SQLException@5b775b77] Message = [jcc][t4][2043][11550][4.13.111] 异常 .ConnectException:打开端⼝50,000 上服务器 192.168.1.107/192.168.1.107 的套接字时出错,消息为:Connection timed out: connect。
ERRORCODE=-4499, SQLSTATE=08001[jcc][Thread:main][SQLException@5b775b77] Stack trace followscom.ibm.db2.jcc.am.DisconnectNonTransientConnectionException: [jcc][t4][2043][11550][4.13.111] 异常 .ConnectException:打开端⼝ 50,000 上服务器 192.168.1.107/192.168.1.107 的套接字时出错,消息为:Connection timed out: connect。
ERRORCODE=-4499, SQLSTATE=08001com.ibm.db2.jcc.am.id.a(id.java:320)Cause:Error 1: DB2 return code is -4499Four problems might be the cause of this error.1、Firewall is not stopped2、DB2 is stopped.3、The wrong DB2 database listening port number is specified.4、The wrong database name is specified.solution:1、Check whether firewall is stopped.chkconfig iptables off 永久性关闭service iptables stop 重启主机后失效2、Check whether DB2 is started.db2 list db directory3、Check the DB2 listening portdb2 get dbm cfg |grep SVCENAME,查看TCP/IP服务名称和/etc/services中定义的db2服务名称是否匹配4、Check the DB2COMMdb2set -all 检查DB2COMM是否是TCPIP。
为什么db2频现“锁等待”或“911”错误

| Lock Intents
| | Table: Intent Exclusive
| | Row : Update
| Sargable Predicate(s)
| | #Predicates = 1
Update: Table Name = CWGLADM.T ID = 2,4
DB20000I UPDATE COMMAND OPTIONS 命令成功完成。
db2 => set current isolation = ur
DB20000I SQL 命令成功完成。
================================================================
| Index Prefetch: None
| Lock Intents
| | Table: Intent Exclusive
| | Row : Update
| Sargable Predicate(s)
| | #Predicates = 1
Update: Table Name = CWGLADM.T ID = 2,4
| | Start Key: Inclusive Value
| | | | 1: 00001
| | | | 2: 00001
| | Stop Key: Inclusive Value
| | | | 1: 00001
| | | | 2: 00001
| Data Prefetch: None
| | Index Colum | 2: ID2 (Ascending)
db2常见错误

DB2 SQLSTATE 消息异常二2008年04月25日星期五 14:51类代码 40 事务回滚表 31. 类代码 40:事务回滚 SQLSTATE 值含义40001 发生了伴随自动回滚的超时或死锁。
40003 语句完整性未知。
40504 由于系统错误导致工作单元被回滚。
40506 由于 SQL 错误,当前事务已回滚。
40507 由于创建索引时发生故障,因此当前事务已回滚。
类代码 42 语法错误或访问规则违例表 32. 类代码 42:语法错误或访问规则违例 SQLSTATE 值含义42501 授权标识不具有对标识对象执行指定操作的特权。
42502 授权标识不具有执行指定操作的特权。
42504 无法从指定的权限名撤销指定的特权、安全标号或免除凭证。
42506 发生所有者授权失败。
42508 不能将指定的数据库特权授予 PUBLIC。
42509 因为 STATICRULES 选项而未授权 SQL 语句。
42511 未能检索 DATALINK 值。
42512 授权标识对受保护列没有访问权。
42514 授权标识不具有对象的所有权需要的特权。
42516 用户映射存储库中的认证失败。
42519 不允许此授权标识对受保护表执行操作。
42520 由于此授权标识没有安全标号,所以无法执行内置函数。
42521 无法将权限或特权授予指定的授权标识。
42522 此授权标识没有凭证,因此无法保护列或者对该列除去保护。
42601 字符、标记或子句无效或丢失。
42602 检测到名称中有无效字符。
42603 检测到未终止的字符串常量。
42604 检测到无效数字或字符串常量。
42605 为标量函数指定的参数的数目无效。
42606 检测到无效十六进制常数。
42607 列函数的操作数无效。
42608 在 VALUES 中使用 NULL 或 DEFAULT 是无效的。
42609 运算符或谓词的所有操作数都是参数标记。
42610 不允许参数标记。
DB2报错参考解决方案

DB2报错:SQL10007N Message "-1390" could not be retrieved. Reason code:"3"2009-09-22 16:07问题现象:某人安装完DB2 9.7以后,发现db2inst1用户下无法运行一切db2命令,如果跑到d 会给出标题内的错误提示。
分析:开始以为是传统的PATH变量抽风了,后来发现不是。
偶然发现db2ilist可以运行,只是结没有建立instance造成的。
解决:回到root用户,运行db2icrt命令去创建instance,再切回db2inst,一切ok。
当然,不以下是引用了某位兄弟博客里的关于db2 创建instance的,蛮详细的这个问题解决了。
刚接触DB2不久,不知道要运行db2profile正确运行后,OK#find /home -name db2profile搜索出这个文件的路径以后,我的显示如下/home/db2inst1/sqllib/db2profile然后我执行一下这个语句#. /home/db2inst1/sqllib/db2profile这样上面出现的问题就可以解决了,这个文件涉及到了DB2数据库环境变量的问题,在具体的原因我也说不好,请大家在到网上查阅详细资-------------------------------------------------------------------------------------使用db2icrt 创建实例DB2® 实例是用来存储数据和运行应用程序的一种环境。
使用db2icrt 命令来创建实例。
在Linux® 或UNIX® 操作系统上,必须具有root 用户权限。
在Windows® 操作系统上,必须以本地管理员登录。
要使用db2icrt 创建实例:1. 使用适当权限登录。
2. 运行db2icrt 命令。
DB2 备份常见错误代码及含义

DB2 常见错误代码DB2 的错误信息分为4类:1: DB2错误信息: --> SQL<XXXX>N例如: SQL2062N该类错误信息可以通过DB2 命令查看详细描述:$db2 ? <SQLXXXXN>2: Error Code: →-XXX可以参考附件DB2_Code.PDF 查找.3: SQL STATE Code: →SQLSTATE: XXXXX该类错误信息一般会和Error Code 一同出现. 可在附件DB2_Code.PDF 查找错误描述. 4: Reason Code. →Reason code: "xxxx".出现该类通常是第三方API 或操作系统返回的错误信息. 可从系统层面查找原因.例如:在AIX 可以在如下文件找到该错误的描述:/usr/include/sys/ errno.h例如常见Reason Code#endif /* _ALL_SOURCE */#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#define ESRCH 3 /* No such process */#define EINTR 4 /* interrupted system call */#define EIO 5 /* I/O error */#define ENXIO 6 /* No such device or address */#define E2BIG 7 /* Arg list too long */#define ENOEXEC 8 /* Exec format error */#define EBADF 9 /* Bad file descriptor */#define ECHILD 10 /* No child processes */#define EAGAIN 11 /* Resource temporarily unavailable */#define ENOMEM 12 /* Not enough space */#define EACCES 13 /* Permission denied */#define EFAULT 14 /* Bad address */#define ENOTBLK 15 /* Block device required */#define EBUSY 16 /* Resource busy */#define EEXIST 17 /* File exists */#define EXDEV 18 /* Improper link */#define ENODEV 19 /* No such device */#define ENOTDIR 20 /* Not a directory */******************************************************************************* CV备份中常见的一些错误信息:1:SQL2426N The database has not been configured to allow the incremental backup operation. Reason code = "1".Reason Code= “1”从/usr/include/sys/ errno.h 查找Reason Code=”1” 的描述#define EPERM 1 /* Operation not permitted (操作不被允许)原因分析:此时1 代表某些操作不被允许., 配合SQL2426N 可以知道是因为没有更新TRACKMOD 参数为ON. 所以增量备份不备允许.2:SQL2062N An error occurred while accessing media"/opt/simpana/Base64/libDb2Sbt.so". Reason code: "11".Reason Code= "11"从/usr/include/sys/ errno.h 查找Reason Code=”11” 的描述#define EAGAIN 11 /* Resource temporarily unavailable (无法分配资源)原因分析:1: CommCell里面的DB2 子客户端没有关联相应的存储策略。
sqlcode=-19816的解决方法

SQLCODE=-xxx是DB2数据库中特定错误代码的表示。
这个错误代码通常意味着一个事务试图执行一个更新操作,但由于某种原因执行失败。
在本文中,我们将讨论SQLCODE=-xxx的可能原因以及解决方法。
让我们来看一下可能导致SQLCODE=-xxx错误的几种常见情况:1. 死锁:当多个事务同时试图获取对同一资源的排他访问权限时,可能会导致死锁。
这种情况下,DB2会选择一个事务作为死锁牺牲者,并回滚这个事务的更新操作,从而触发SQLCODE=-xxx错误。
2. 数据完整性约束冲突:如果一个事务试图插入或更新的数据违反了表的数据完整性约束,DB2会回滚这个事务并返回SQLCODE=-xxx错误。
3. 超出表空间限制:如果一个表空间的存储空间已经用完,DB2会阻止任何进一步的数据插入或更新操作,并返回SQLCODE=-xxx错误。
现在让我们来讨论一下解决SQLCODE=-xxx错误的可能方法:1. 识别问题:我们需要通过分析错误日志和数据库日志来识别导致SQLCODE=-xxx错误的具体原因。
这样可以帮助我们更好地定位问题并采取适当的解决措施。
2. 优化事务:如果错误是由于死锁或数据完整性约束冲突导致的,我们可以尝试优化事务的执行顺序或重新设计数据操作逻辑,以减少这些冲突的发生。
3. 扩展表空间:如果错误是由于表空间的存储空间用完导致的,我们可以尝试扩展相关的表空间来解决这个问题。
4. 清理无用数据:有时,SQLCODE=-xxx错误可能是由于数据库中存在大量无用数据导致的。
在这种情况下,我们可以尝试删除或归档这些无用数据,从而释放存储空间并减少数据操作的复杂度。
5. 通联DBA团队:如果我们无法确定错误的具体原因或无法解决这个问题,我们可以通联数据库管理员团队寻求帮助。
他们可能有更多的经验和技巧来解决这个问题。
SQLCODE=-xxx是一个常见的DB2数据库错误代码,可能由多种原因导致。
在面对这个错误时,我们首先需要识别问题的具体原因,然后采取相应的措施来解决。
db2错误总结

db2 => connect to ESBDBDB
SQL0956C Notenough storage is available in the database heap to process the statement. SQLSTATE=57011
db2 => ?sql0956cSQL0956C数据库堆中没有足够的存储器可用来处理语句。说明:使用了数据库的所有可用内存。不能处理该语句。用户响应:接收到此消息时,终止应用程序。增大数据库配置参数dbheap的值以允许更大的数据库堆。如果I/O服务器数接近最高限制,那么减小此数目可能也会有所帮助。如果dbheap数据库配置参数已设置为AUTOMATIC,您将需要增大DATABASE_MEMORY数据库配置设置的值,或者增大INSTANCE_MEMORY数据库管理器配置设置的值。更新配置参数时,建议更改这些参数的值。每次将它们增大当前大小的10%,直到错误情况得到解决为止。要更改dbheap,请输入一个类似如下的命令,该命令对数据库样本将dbheap设置为2400:db2 UPDATE DB CFG FOR sample USING DBHEAP 2400要在已与数据库断开连接的情况下更改dbheap,请输入一个类似如下的命令:db2 CONNECT RESET;db2 UPDATE DB CFG FOR sample USING DBHEAP 2400如果所有相关联的配置参数都设置为AUTOMATIC或COMPUTED,那么实例的内存需求将超过机器上配置的内存量。可以采用的解决方案包括减少数据库工作负载、启用连接集中器功能部件或者向机器添加更多内存。
序号错误描述处源自步骤备注1命令1:db2 => db2start
SQL1032N Nostart database manager command was issued. SQLSTATE=57019
db2中报SQLCODE=-530,SQLSTATE=23503错误

db2中报SQLCODE=-530,SQLSTATE=23503错误
今天在写⼀个增加操作时,报错信息如下:SQLCODE=-530, SQLSTATE=23503,该sqlcode说明:“对特定的约束名指定了⽆效的外健值”。
项⽬中⽤的框架是SSH,新增的主对象有多个外键,在新增时,我是根据id或name在数据库中找到外键对象,赋给该主对象的外键。
问题是出在当根据id或name没有找到外键对象时,就不赋值,但此时该主对象的外键对象不为空,不知道在哪⾥new的,所以错误就在此处,该外键对象不是持久化对象,所以报错,我的解决⽅法是在根据id没有找到对象时,给外键对象赋值为null。
当然这⾥前提是该外键可以为空。
DB2常见错误及解决办法

解决办法:db2 update db cfg for dbname using UTIL_HEAP_SZ 具体的数字(db2备份使用的内存是UTIL_HEAP_SZ,请使用以上命令调整)。
7、用JDBC往表批量插入数据时。报23502错误。如:
DB2常见错误及解决办法
文章分类:数据库
1、创建数据库的时候,报42704错误。如:
Sql代码
=>create database test
=>SQL0204N "SYSTEM_1386_US" is an undefined name. SQLSTATE=42704
解决办法:
解决办法:查看表定义,加大字段长度。
9、用JDBC往表批量插入数据时。报-4474错误。如:
Sql代码
非法转换:不能从“ng.String”转换到“byte[]” ERRORCODE=-4474, SQLSTATE=null
原因:表中某字段定义为‘ID CHAR(16) FOR BIT DATA NOT NULL’(这个是使用MTK从MS SQL迁移到DB2时,uniqueidentifier转换成的)。
Contents = Any data
State = 0x0020
Detailed explanation:
Backup pending
原因:在归档的数据库做过load或者改了参数重新启动了db
Sql代码
Error for batch element #0: DB2 SQL error: SQLCODE: -407, SQLSTATE: 23502, SQLERRMC: TBSPACEID=2, TABLEID=15, COLNO=2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DB2 SQLSTATE 消息异常二2008年04月25日星期五 14:51类代码 40 事务回滚表 31. 类代码 40:事务回滚 SQLSTATE 值含义40001 发生了伴随自动回滚的超时或死锁。
40003 语句完整性未知。
40504 由于系统错误导致工作单元被回滚。
40506 由于 SQL 错误,当前事务已回滚。
40507 由于创建索引时发生故障,因此当前事务已回滚。
类代码 42 语法错误或访问规则违例表 32. 类代码 42:语法错误或访问规则违例 SQLSTATE 值含义42501 授权标识不具有对标识对象执行指定操作的特权。
42502 授权标识不具有执行指定操作的特权。
42504 无法从指定的权限名撤销指定的特权、安全标号或免除凭证。
42506 发生所有者授权失败。
42508 不能将指定的数据库特权授予 PUBLIC。
42509 因为 STATICRULES 选项而未授权 SQL 语句。
42511 未能检索 DATALINK 值。
42512 授权标识对受保护列没有访问权。
42514 授权标识不具有对象的所有权需要的特权。
42516 用户映射存储库中的认证失败。
42519 不允许此授权标识对受保护表执行操作。
42520 由于此授权标识没有安全标号,所以无法执行内置函数。
42521 无法将权限或特权授予指定的授权标识。
42522 此授权标识没有凭证,因此无法保护列或者对该列除去保护。
42601 字符、标记或子句无效或丢失。
42602 检测到名称中有无效字符。
42603 检测到未终止的字符串常量。
42604 检测到无效数字或字符串常量。
42605 为标量函数指定的参数的数目无效。
42606 检测到无效十六进制常数。
42607 列函数的操作数无效。
42608 在 VALUES 中使用 NULL 或 DEFAULT 是无效的。
42609 运算符或谓词的所有操作数都是参数标记。
42610 不允许参数标记。
42611 列或参数定义无效。
42612 语句字符串是一条 SQL 语句,它在它所出现的上下文中是不可接受的。
42613 子句互斥。
42614 重复关键字无效。
42615 检测到无效备用项。
42616 指定了无效的选项。
42617 语句字符串是空白或空的。
42618 不允许主机变量。
42620 对 UPDATE 子句指定了只读 SCROLL。
42621 检查约束无效。
42622 名称或标号太长。
42623 不能指定 DEFAULT 子句。
42625 CASE 表达式无效。
42627 必须在使用 EXPRESSION AS 子句的谓词规范之前指定 RETURNS 子句。
42628 在变换定义中多次定义了 TO SQL 或 FROM SQL 变换函数。
42629 必须为 SQL 例程指定参数名。
42630 在嵌套复合语句中不能存在 SQLSTATE 或 SQLCODE 变量声明。
42631 SQL 函数或方法中的 RETURN 语句必须包括返回值。
42633 XMLATTRIBUTES 或 XMLFOREST 的参数需要 AS 子句。
42634 XML 名称无效。
42635 XML 名称空间前缀无效。
42636 缺少 BY REF 子句,或者不正确使用了该子句。
42637 无法在 DECLARE CURSOR 语句中指定 XQuery 表达式。
42701 在插入或更新操作或 SET 转换变量语句中检测到重复列名。
42702 由于名称重复,列引用有歧义。
42703 检测到一个未定义的列、属性或参数名。
42704 检测到未定义的对象或约束名。
42705 检测到未定义的服务器名。
42707 ORDER BY 内的列名不标识结果表中的列。
42709 在键列列表中指定了重复的列名。
42710 检测到重复的对象或约束名。
42711 在对象定义或 ALTER 语句中检测到重复列名或属性名。
42712 在 FROM 子句中检测到重复的表标志符。
42713 在对象列表中检测到重复对象。
42720 在节点目录内未找到远程数据库的节点名。
42723 模式中已经存在带有相同特征符的函数。
42724 不能访问用于用户定义的函数或过程的外部程序。
42725 直接引用了例程(不是通过特征符或者通过特定实例名进行引用),但是该例程有多个特定实例。
42726 检测到指定的派生表的名称重复。
42727 对新表来说,不存在缺省主表空间。
42728 在节点组定义中检测到重复节点。
42729 节点未定义。
42730 容器名已由另一表空间使用。
42731 容器名已由该表空间使用。
42732 在 SET CURRENT PATH 语句中检测到重复的模式名。
42734 检测到重复的参数名、SQL 变量名、游标名、条件名或标号。
42735 对缓冲池,未定义表空间的节点组。
42736 在 LEAVE 语句上指定的标号找不到或无效。
42737 未定义在处理程序中指定的条件。
42738 在 FOR 语句的 DECLARE CURSOR 语句中指定了重复的列名或未命名的列。
42739 检测到重复的变换。
42740 未找到指定类型的变换。
未删除任何变换。
42741 未对数据类型定义变换组。
42742 类型表或带类型视图层次结构中已存在同类子表或子视图。
42743 在索引扩展名中未找到搜索方法。
42744 在变换组中未定义 TO SQL 或 FROM SQL 变换函数。
42745 例程将用现有方法定义覆盖关系。
42746 在同一类型层次结构中,方法名不能与结构化类型名相同。
42748 存储路径对于数据库来说已存在或者被指定了多次。
42749 对于 XML 模式来说,已经存在具有相同目标名称空间和模式位置的 XML 模式文档。
4274A 在 XML 模式存储库中未找到 XSROBJECT。
4274B 在 XML 模式存储库中未找到唯一的 XSROBJECT。
4274F 在安全标号组件中未定义组件元素。
4274G 在给定安全标号所使用的安全标号策略中未定义安全标号组件。
4274H 指定的安全策略不存在指定的访问规则。
4274I 指定的安全策略不存在安全标号。
4274J 数据库分区组已被此缓冲池使用。
42802 插入或更新值的数目与列数不相同。
42803 在 SELECT 或 HAVING 子句中的列引用无效,因为它不是分组列;或者在GROUP BY 子句中的列引用无效。
42804 CASE 表达式中的结果表达式不兼容。
42805 ORDER BY 子句中的整数不标识结果表中的列。
42806 不能将某值赋予某主机变量, 因为数据类型不兼容。
42807 对该对象不允许执行 INSERT、UPDATE 或 DELETE。
42808 插入或更新操作中标识的列不可更新。
42809 标识的对象不是语句所应用的对象类型。
42810 FOREIGN KEY 子句中没有标识基本表。
42811 指定的列数与 SELECT 子句中的列数不相同。
42813 WITH CHECK OPTION 不能用于指定的视图。
42814 无法删除该列,因为它是表中唯一的列。
42815 数据类型、长度、小数位、值或 CCSID 无效。
42816 表达式中的日期时间值或持续时间无效。
42817 由于某个视图或约束依赖于该列,并且指定了 RESTRICT,或者由于该列包含在分区键中,或者由于该列是安全标号列,所以无法删除该列。
42818 运算符或函数的操作数不兼容或者不可比较。
42819 算术运算的操作数或需要数字的函数的操作数不是数字。
42820 数字常数太长,或其值不在该数据类型取值范围内。
42821 更新或插入值与列不兼容。
42823 从仅允许一列的子查询中返回了多列。
42824 LIKE 的操作数不是字符串,或第一个操作数不是列。
42825 UNION、INTERSECT、EXCEPT 或 VALUES 的行没有兼容列。
42826 UNION、INTERSECT、EXCEPT 或 VALUES 的行的列数不相同。
42827 UPDATE 或 DELETE 中标识的表与游标指定的表不相同。
42828 由 UPDATE 或 DELETE 语句的游标指定的表不能修改,或该游标是只读游标。
42829 FOR UPDATE OF 无效,因为由该游标指定的结果表不能修改。
42830 外键不符合父键的描述。
42831 主键或唯一键列不允许空值。
42832 不允许对系统对象执行该操作。
42834 不能指定 SET NULL,因为不能对外键的任何列指定空值。
42835 在指定的派生表之间不能指定循环引用。
42836 指定的递归派生表的规范无效。
42837 不能改变该列,原因是它的属性与当前的列属性不兼容。
42838 检测到无效使用了表空间。
42839 索引和长列不能处于与该表独立的表空间内。
42840 检测到无效使用了 AS CAST 选项。
42841 参数标记不能是用户定义的类型或引用类型。
42842 列定义无效,因为指定的选项与列描述不一致。
42845 检测到无效使用了 VARIANT 或 EXTERNAL ACTION 函数。
42846 不支持从源类型到目标类型的强制类型转换。
42849 外部例程不支持所指定的选项。
42852 在 GRANT 或 REVOKE 中指定的特权无效或不一致。
(例如,视图上的GRANT ALTER。
)42853 指定了选项的两个备用项,或者同一选项被指定了多次。
42854 选择列表中的结果列数据类型与在带类型视图或具体化查询表定义中定义的类型不兼容。
42855 不允许对此主机变量指定 LOB。
此游标的 LOB 值的所有访存的目标主机变量必须是定位器或 LOB 变量。
42858 不能将该操作应用于指定对象。
42863 检测到 REXX 中有未定义的主机变量。
42866 在 CREATE FUNCTION 语句的 CAST FROM 子句中的 RETURNS 子句的数据类型对于有源函数或函数体中的 RETURN 语句返回的数据类型不适合。
42867 指定了冲突的选项。
42872 FETCH 语句子句与游标定义不兼容。
42875 要在 CREATE SCHEMA 中创建的对象的限定符必须与模式名相同。
42877 不能限定该列名。
42878 无效的函数或过程名称与 EXTERNAL 关键字一起使用。
42879 在 CREATE FUNCTION 语句中一个或多个输入参数的数据类型对于源函数中相应的数据类型不适合。
42880 CAST TO 和 CAST FROM 数据类型不兼容,或总会导致固定字符串截断。
42881 使用基于行的函数无效。