日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

大意导致Java访问DB2库时导出SQLCODE=-301, SQLSTATE=07006错误

發(fā)布時(shí)間:2023/12/31 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大意导致Java访问DB2库时导出SQLCODE=-301, SQLSTATE=07006错误 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本人在寫(xiě)一個(gè)java模塊,目的是把數(shù)據(jù)插入到DB2庫(kù)中,由于自己在建模時(shí)不知何時(shí)將表中一個(gè)字段由varchar修改成decimal,并且將此表重新建到開(kāi)發(fā)庫(kù)中,為此導(dǎo)致以前寫(xiě)好的功能模塊報(bào)錯(cuò),本人很納悶,但又不知道什么原因,雖然知道可能是自己造成的,但具體原因卻無(wú)論如何也想不起來(lái),只能通過(guò)一個(gè)個(gè)可能的問(wèn)題排查,最終找出是由于修改表的字段類型所致,以下,是建表語(yǔ)句、JAVA代碼、和拋出的異常:


java代碼:

in = new FileInputStream(uploadedFile); pstm = con.prepareStatement("insert into TEST.YSB(XH,YSBNR,JGXH) values((select value(MAX(XH),0)+1 FROM ZJZX.ZJZX_SCYSB),?,?)",pstm.RETURN_GENERATED_KEYS);pstm.setBlob(1, getBlob(in));pstm.setNull(2, Types.VARCHAR);pstm.execute();


???????????

表結(jié)構(gòu)如下:

create table TEST.YSB( XH DECIMAL(18) not null generated by default as identity, YSBNR BLOB(5242880), JGXH DECIMAL(18),);

以上軟件運(yùn)行時(shí),會(huì)拋出如下異常:

com.ibm.db2.jcc.b.SqlException: DB2 SQL Error: SQLCODE=-301, SQLSTATE=07006, SQLERRMC=9, DRIVER=3.50.152
?at com.ibm.db2.jcc.b.wc.a(wc.java:55)
?at com.ibm.db2.jcc.b.wc.a(wc.java:126)
?at com.ibm.db2.jcc.b.tk.b(tk.java:1593)
?at com.ibm.db2.jcc.b.tk.c(tk.java:1576)
?at com.ibm.db2.jcc.t4.db.k(db.java:353)
?at com.ibm.db2.jcc.t4.db.a(db.java:59)
?at com.ibm.db2.jcc.t4.t.a(t.java:50)
?at com.ibm.db2.jcc.t4.tb.b(tb.java:200)
?at com.ibm.db2.jcc.b.uk.Gb(uk.java:2355)
?at com.ibm.db2.jcc.b.uk.e(uk.java:3129)
?at com.ibm.db2.jcc.b.uk.Bb(uk.java:1842)
?at com.ibm.db2.jcc.b.uk.execute(uk.java:1826)
?at com.pdcss.court.zjzx.servlet.UploadExcelServlet.saveZip(UploadExcelServlet.java:318)
?at com.pdcss.court.zjzx.servlet.UploadExcelServlet.saveYsb(UploadExcelServlet.java:294)
?at com.pdcss.court.zjzx.servlet.UploadExcelServlet.processRequest(UploadExcelServlet.java:94)
?at com.pdcss.court.zjzx.servlet.UploadExcelServlet.doPost(UploadExcelServlet.java:143)
?at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
?at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
?at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
?at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
?at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:124)
?at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
?at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
?at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
?at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
?at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
?at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
?at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
?at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
?at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)
?at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
?at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
?at java.lang.Thread.run(Thread.java:619)

如果將上述java代碼的第4行修改為

pstm.setNull(2, Types.DECIMAL);

就可以正確無(wú)誤了,當(dāng)然解決辦法你也可以將表的字段類型修改回varchar。

總結(jié)

以上是生活随笔為你收集整理的大意导致Java访问DB2库时导出SQLCODE=-301, SQLSTATE=07006错误的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。