最近在做一个项目,测试修改人家的代码,然后用到PreparedStatement把数据插入数据库,死活不成功,报错,无效的列索引。

代码是这样的:

1、拼成一个sql:insert into tableName(A,B,C,D) values(a,b,?,?)

2、ps = conn.prepareStatement(sql);

3、然后实参是两个map,一个map里保存了{A=a,B=b},叫map1吧;另外一个map里保存了?的实参,叫map2吧{C=c,D=d}。然后调用一个方法根据数据类型,set相应类型的参数,然后分别调用了两次,第一次传入map1,第二次传入map2。

然后在第一次调用时报错,死活不对,网上搜了,说是参数个数不对,我一想也是,字段名是4个,实参是两个。然后我把两个map组成一个map,哪知道还是不对。写这个代码人的本意是,根据数据类型,把已经有的参数也处理一下,我也以为没问题。后来突然想起来,这个预处理,只是对?进行处理,然后把第一次调用注释掉,果然对了。

注意:参数预处理只是处理?部分。已经有实参的,要自己根据参数类型自己处理。

引起无效列索引的常见原因:

1、sql串里?数量和提供的变量数目不一致

2、sql串里的?号书写不对,中英文区分。

3、sql串里的?用单引号''引起来了,去掉单引号。

PreparedStatement 往oracle插入数据时报无效的列索引相关推荐

  1. 操作数据库时报“无效的列索引”错误

    "无效的列索引"其实是个低级的错误,原因无非几个: 1.sql串的?号数目和提供的变量数目不一致: 例如:jdbcTemplate.update(sql, new Object[] ...

  2. 关于向数据库中插入数据时报“An explicit value for the identity column in table can only be specified when ...“的错误

    关于向数据库中插入数据时报"An explicit value for the identity column in table 'tm_o365_11' can only be speci ...

  3. 【python解决SQLAlchemy+MySQL插入数据时报警告Warning: (1366, “Incorrect string value: ‘\\xD6\\xD0\\xB9\\xFA\\xB】

    python解决SQLAlchemy+MySQL插入数据时报警告Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\ ...

  4. Excel 通过plsql 向oracle导入数据时报错:variant conversion error for variable:V8

    Excel 通过plsql 向oracle导入数据时报错:variant conversion error for variable : V8 原因-:Excel中的某列字段类型与数据库表中字段数据类 ...

  5. 【JDBC】PreparedStatement实现批量插入数据

    题目:[JDBC]PreparedStatement实现批量插入数据 前言: PreparedStatement除了解决Statement的拼串.sql注入问题之外,还可以实现以下操作 Prepare ...

  6. mysql设置主键自增长,插入数据时报错,解决

    mysql设置主键自增长,插入数据时报错,解决 创建一个可以自增长的表 create table user ( sid int not null primary key auto_inrement, ...

  7. Oracle 插入数据

    Oracle 插入数据 顾名思义,INSERT用于向数据库插入(添加行). 可以以多种方式使用插入操作: 插入单个完整的行; 插入单个部分行: 插入多行: 插入查询的结果. 提示:insert 和系统 ...

  8. oracle插入数据脚本

    这篇主要讲oracle插入数据的两种方式,一种是.sql文件,一种是shell脚本本文数据是在linux环境下测试的 一.sql文件方式 1.新建.sql文件vi test_insert.sql 2. ...

  9. python如何往oracle写入数据_python3向oracle插入数据

    1.保证与oracle服务器版本统一 2.python3 ,oracle服务器,oracle client统一使用64位或者32位 2.先解压缩instantclient-basic-linux.x6 ...

最新文章

  1. python笔试题奥特曼打怪兽_python笔试做错的题目
  2. 深入理解Java:注解(Annotation)自定义注解入门
  3. 【学术相关】博士毕业也会看第一学历吗?
  4. boost::geometry模块Linestring相关的测试程序
  5. 【软件质量】变更管理与可追踪性
  6. JSON与Delphi Object的互换
  7. 解析身份证_你需要知道的与身份证相关的7个函数,让你的工作效率快速提升!...
  8. 职场伦语-感悟职场,分享心得
  9. 【贴图操作】怎么用sp啊?
  10. H5实现移动端,PC端页面分享
  11. 【Sinclair/记录】Rainmeter在电脑桌面添加GIF
  12. python学习笔记(8)
  13. 共阳极数码管与共阴极数码管联合使用来循环显示数字00-99。
  14. 软件需求收集、挖掘和分析方法
  15. UEFI——protocol服务详解
  16. 中科大2021计算机考研分数线,中国科学技术大学2021年考研复试各科分数线_中国科大考多少分能进复试-聚创中国科大考研网...
  17. Nginx介绍及原理简单分析
  18. 信号(signal,kill,raise)
  19. 光纤模式分布 matlab,matlab计算单模光纤模式分布(公布源代码及参考文献)
  20. 【PyTorch深度学习项目实战100例】—— 基于聚类算法完成航空公司客户价值分析任务 | 第18例

热门文章

  1. 王者荣耀新24赛季服务器维护,《王者荣耀》s24赛季改动内容分享 s24新赛季更新公告...
  2. Date与DateFormat
  3. 单片机 题库 分章节 c语言,单片机题库分章节答案C语言
  4. Linux logrotate 使用详解
  5. 使用S7-200SMART定时器直接控制四相八拍步进电机
  6. 微信开发者工具黑屏问题解决办法
  7. 树莓派2B安装TP-Link usb无线wifi驱动
  8. TMT行业入门级的书目
  9. mysql hql查询语句_查询hql语句
  10. hibernate的Hql语句