当前位置: 首页 > news >正文

网站建设品牌策划软件网站排行榜

网站建设品牌策划,软件网站排行榜,哪个网站可以做高像素动图,苏州大写的网站建设问题描述 JDK8使用ojdbc8驱动操作oracle11g数据库,使用JDBC复用 PreparedStatement 对象执行Insert操作时,报错java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值。,经测试发现,是预编译对象某个占位符号被赋…

问题描述

JDK8使用ojdbc8驱动操作oracle11g数据库,使用JDBC复用 PreparedStatement 对象执行Insert操作时,报错java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值。,经测试发现,是预编译对象某个占位符号被赋值为NULL后,再次尝试赋值为2个汉字,执行时就会报错:

Caused by: java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:702)at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:608)at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1248)at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:1041)at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:443)at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:518)at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:251)at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1181)at oracle.jdbc.driver.OracleStatement.executeSQLStatement(OracleStatement.java:1571)at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1345)at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3728)at oracle.jdbc.driver.OraclePreparedStatement.executeLargeUpdate(OraclePreparedStatement.java:3905)at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3880)at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:993)at com.p6spy.engine.wrapper.PreparedStatementWrapper.executeUpdate(PreparedStatementWrapper.java:94)at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeUpdate(DruidPooledPreparedStatement.java:241)

问题复现

测试表DDL

CREATE TABLE "TEST_TABLE" ("TEST_COLUMN" VARCHAR2(255 BYTE)
)

java代码

   @Testpublic void testOracleChineseInsert() {try (Connection oracleConnection = getOracleConnection()) {Statement statement = oracleConnection.createStatement();statement.execute("truncate table TEST_TABLE");PreparedStatement preparedStatement = oracleConnection.prepareStatement("INSERT INTO TEST_TABLE VALUES (?)");List<String> list = new ArrayList<>();list.add("你好");list.add(null);list.add("你好");for (String data : list) {try {preparedStatement.setString(1, data);preparedStatement.executeUpdate();} catch (SQLException e) {throw new RuntimeException(e);}}} catch (SQLException e) {throw new RuntimeException(e);}}

ORACLE数据库字符集

-- 查询字符集
SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
-- 查询结果
NLS_CHARACTERSET	ZHS16GBK
NLS_NCHAR_CHARACTERSET	AL16UTF16

依赖版本

<dependency><groupId>com.oracle.database.jdbc</groupId><artifactId>ojdbc8</artifactId><version>23.2.0.0</version>
</dependency>

执行结果

前两条记录能新增成功,第三条记录报错 ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值

解决办法

更换驱动版本后发现该BUG已被修复,更新驱动版本(推荐)

<dependency><groupId>com.oracle.database.jdbc</groupId><artifactId>ojdbc8</artifactId><version>23.6.0.24.10</version>
</dependency>

或者代码中避免复用预编译对象,每个语句新建一个预编译对象(不推荐)

   @Testpublic void testOracleChineseInsert() {try (Connection oracleConnection = getOracleConnection()) {Statement statement = oracleConnection.createStatement();statement.execute("truncate table TEST_TABLE");List<String> list = new ArrayList<>();list.add("你好");list.add(null);list.add("你好");for (String data : list) {try {PreparedStatement preparedStatement = oracleConnection.prepareStatement("INSERT INTO TEST_TABLE VALUES (?)");preparedStatement.setString(1, data);preparedStatement.executeUpdate();} catch (SQLException e) {throw new RuntimeException(e);}}} catch (SQLException e) {throw new RuntimeException(e);}}
http://www.ds6.com.cn/news/69361.html

相关文章:

  • 动态网站开发案例实训总结网络推广关键词优化公司
  • 网站弹出框怎么做网站seo置顶
  • 网站界面设计的主要内容东莞网站推广宣传
  • 做网站用突发性实例可以吗爱站网关键词长尾挖掘工具
  • 网络运维主要做什么seo外包大型公司
  • 佛山网站代运营搜索引擎最佳化
  • 如何做统计信息的网站网络销售平台排名
  • wordpress如何调整文章位置北京seo课程培训
  • 电商网站前后台模板爱站网站seo查询工具
  • 深圳做网站报价怎么做手工
  • seo快速排名网站优化seo中文意思是
  • 如何将一台电脑做网站空间短视频seo营销
  • 重庆网站制作那家好免费网站推广软文发布
  • 做一的同志小说网站快速网站搭建
  • synology建设网站长沙seo就选智优营家
  • 教育公司 网站建设安徽seo
  • 阿里网 网站备案流程微信搜一搜seo优化
  • wordpress建站行吗黄金网站软件app大全下载
  • 苏州建站公司精选苏州聚尚网络代做百度收录排名
  • 自己做的网站怎么取sql数据库活动策划公司
  • 济南做网站0531soso网址提交入口
  • 云阳网站建设公司91关键词
  • 中小企业网站的建设实践报告爱站网长尾关键词挖掘工具下载
  • 长清区网站建设宣传seo站长综合查询
  • wordpress 页脚链接奉节县关键词seo排名优化
  • 广州独立站建站企业关键词推广
  • 做美食的视频网站google关键词
  • 做网站为什么一定要留住用户制作网站要多少费用
  • 简述网站开发设计流程河北关键词seo排名
  • 哪些网站是中文域名苏州seo门户网