## import from d:/tobacco.del of del insert into g_tobacco
(用load的方式可以正常导入数据)
在导入数据时,发生如下错误
SQL3015N 处理期间发生 SQL 错误 "-805"。
SQL0805N 找不到程序包 "NULLID.SQLUFG13 0X4141414141594758"。 SQLSTATE=51002
提示说package NULLID.SQLUFG13 找不到,其中NULLID为package schema,SQLUFG13为package名字。
在网上找了下解决办法尝试了下问题没有解决,留着后续继续研究
以下是在网上找的方法:
DB2 SQL Error: SQLCODE=-805, SQLSTATE=51002 解决方法
在操作大量数据时如果发生这种错误,说明不是db2 使用的 package没有绑定,而是因为资源未释放,导致可以使用此package的资源不足,致使不能连接资源,这种情况有两种解决方法.当出现这样的错误时,不要尝试使用 DB2STOP FORCE 命令来强制停掉数据库,建议大家使用 FORCE APPLICATION 命令停掉引起这个错误的应用程序或者停掉所有的应用程序。也不建议大家使用 KILL 命令来杀掉任何 DB2 相关的进程。
【方法一】治标不治本,重新绑定package,然后为package的使用分配更多的资源
1、db2 connect to sample user XXX using password
2、db2 bind @db2ubind.lst blocking all 或者db2 bind @db2ubind.lst sqlerror continue grant public blocking all
3、db2 bind @db2cli.lst blocking all 或者db2 bind @db2cli.lst blocking all grant public sqlerror continue CLIPKG 5
说明:
1、XXX 为数据库用户名,password 为密码
2、要在db2安装目录 /opt/ibm/db2/V11.1/bnd 下执行以上脚本
【方法二】标本兼治,在程序中,对PreparedStatement ,Statement,CallableStatement,ResultSet,Connection这些对象使用完毕后一定要调用close()方法进行资源的释放,若不进行释放,在操作大量数据的时候,会出现一些问题,DB2 SQL Error: SQLCODE=-805, SQLSTATE=51002 错误就是其中的一种.这种错误只要在代码中将使用完毕的PreparedStatement ,Statement,CallableStatement,ResultSet,Connection对象全部关闭即可[即调用close()方法即可],关闭顺序最好是:1>ResultSet 2>PreparedStatement ,Statement,CallableStatement 3>Connection