首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MyBatis操作Oracle批量插入 ORA-00933: SQL 命令未正确结束

最近在使用MyBatis操作Oracle数据库的时候,进行批量插入数据,思路是封装一个List集合通过Myabtis 的foreach标签进行循环插入,可是搬照Mysql的批量插入会产生 异常 ###...Cause: Java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束 错误的写法如下 <insert id="insertExpenseItem...), 1(String), 1111.0(Double), 2(String), 11(Integer), 3(String), 1111.0(Double), 2222(String) 即使在pl/sql...这样分析大概就是Oracle语法的问题了 首先在度娘上找了MyBatis 之foreach插入的相关资料 具体如下:         foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合...又查了MyBatis操作Oracle的相关资料 得到结论:在Oracle的版本中,有几点需要注意的:         1.SQL中没有VALUES;         2.

3.4K20

MyBatis操作Oracle批量插入 ORA-00933: SQL 命令未正确结束

最近在使用MyBatis操作Oracle数据库的时候,进行批量插入数据,思路是封装一个List集合通过Myabtis 的foreach标签进行循环插入,可是搬照Mysql的批量插入会产生 异常   ##...Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束 错误的写法如下 <insert id="insertExpenseItem...}, #{item.amount}, #{item.itemDesc} ) 捕捉到的SQL...语句如下 首先在度娘上找了MyBatis 之foreach插入的相关资料 具体如下: foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。...又查了MyBatis操作Oracle的相关资料 得到结论:在Oracle的版本中,有几点需要注意的: 1.SQL中没有VALUES; 2.

2.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    oracle sql 字符串拼接_mysql将字符串和数字拼接

    CONCAT函数, CONCAT函数支持一个或者多个参数,参数类型可以为字符串类型也可以是非字符串类型,对于非字符串类型的参数MySQL将尝试 将其转化为字符串类型,CONCAT函数会将所有参数按照参数的顺序拼接成一个字符串做为返回值...可以在待拼接的字符串之间加入指定的分隔符,第一个参数为要设置的分隔符, 而剩下的参数则为待拼接的字符串值 Demo4 SELECT CONCAT_WS(‘-‘,NAME,’考了’,score) FROM...test; 执行结果: Oracle中使用”||”进行字符串拼接 Demo5 select name||’hello’ from test; 执行结果: 除了”||”,Oracle还支持使用CONCAT...()函数进行字符串拼接 Demo6 执行结果: 如果CONCAT中连接的值不是字符串,Oracle会尝试将其转换为字符串,与MySQL的CONCAT()函数不同,Oracle的CONCAT()函数只支持两个参数...,不支持两个以上字符串的拼接。

    3.4K30

    【DB笔试面试806】在Oracle中,如何查找未使用绑定变量的SQL语句?

    ♣ 题目部分 在Oracle中,如何查找未使用绑定变量的SQL语句?...like 'select e.ename,e.sal from scott.emp e where e.empno%'; & 说明: 有关查找未使用绑定变量的SQL的更多内容可以参考我的...⊙ 【DB笔试面试586】在Oracle中,什么是自适应游标共享(4)?⊙ 【DB笔试面试586】在Oracle中,什么是自适应游标共享(3)?...⊙ 【DB笔试面试585】在Oracle中,什么是常规游标共享?⊙ 【DB笔试面试584】在Oracle中,如何得到已执行的目标SQL中的绑定变量的值?...⊙ 【DB笔试面试583】在Oracle中,什么是绑定变量分级?⊙ 【DB笔试面试582】在Oracle中,什么是绑定变量窥探(下)?

    6.4K20

    Navi.Soft31.代码生成器(含下载地址)

    图2-2 定义通用的配置项,如:生成C#代码时,需引用的DLL文件列表, 命名空间定义等 2.2Db连接字符串管理 ?...图3-1-6 描述:连接Oracle数据库 ?...图3-4-2-1 生成脚本,是指生成整个数据库的脚本,包括表,视图和命令,生成结果如下图所示 ?...图4-1 l 运行:是指直接执行SQL语句.注:此处执行的是选中SQL语句,如果未选中,则执行全部 l 停止:用于多线程执行SQL语句时使用,暂未开发 l 执行计划:仿SQLServer查询分析器中的执行计划....目前支持:SQLServer和MySql l 新建:是指基于指查询分析Db连接串,新创建一个查询分析器 l 打开:是指打开sql文件,读取文件内容 l 另存为:是指将查询分析器内容保存为sql文件 l

    1.4K80

    Navi.Soft31.代码生成器(含下载地址)

    图2-2 定义通用的配置项,如:生成C#代码时,需引用的DLL文件列表, 命名空间定义等 2.2Db连接字符串管理 ?...图3-1-6 描述:连接Oracle数据库 ?...图3-4-2-1 生成脚本,是指生成整个数据库的脚本,包括表,视图和命令,生成结果如下图所示 ?...图4-1 l 运行:是指直接执行SQL语句.注:此处执行的是选中SQL语句,如果未选中,则执行全部 l 停止:用于多线程执行SQL语句时使用,暂未开发 l 执行计划:仿SQLServer查询分析器中的执行计划....目前支持:SQLServer和MySql l 新建:是指基于指查询分析Db连接串,新创建一个查询分析器 l 打开:是指打开sql文件,读取文件内容 l 另存为:是指将查询分析器内容保存为sql文件 l

    1.5K90

    事务隔离级别和脏读的快速入门

    提交读的实现通过在读取时暂时性地获取锁,并持有写入锁直至事务提交。 如果在一个事务中需要多次重复同一读取,并想要“合理地确定”所有的读取总是会得到同样的结果,这要在整个过程期间持有读取锁。...因此为了改进读取性能,一些数据库还支持未提交读。该事务隔离级别将无视锁的存在(事实上其在SQL Server中被称为“NOLOCK”),因此该级别下可执行脏读。...类似于PostgreSQL,Oracle并不提供未提交读,永不允许脏读。 可重复读并不在Oracle的支持列表中。如果你需要在Oracle中具有该行为,你的事务隔离级别需要被设置为可序列化。...对其它两种事务隔离级别的更多信息,参见Oracle官方文档第13章“数据并发和一致性”。 DB2中的事务隔离级别 DB2具有四种隔离级别,分别称为可重复读、读稳定性、游标稳定性和未提交读。...而在9.7的前期版本中,DB2使用类似于SQL Server的锁机制。 未提交读在很大程度上类似于SQL Server中的未提交读,也允许脏读。

    1.4K10

    「数据库架构」三分钟搞懂事务隔离级别和脏读

    在ANSI SQL中,有四个标准隔离级别:可序列化,可重复读取,已提交读取和未提交读取。 许多数据库的默认设置为“读取已提交”,它仅保证在进行该事务时您不会看到过渡中的数据。...它通过在读取期间短暂地获取锁来实现此目的,同时保持写入锁直到事务被提交。 如果您需要在一个事务中多次重复相同的读取操作,并且想要合理地确定它总是返回相同的值,则需要在整个持续时间内保持读取锁定。...因此,为了提高读取性能,某些数据库还支持“读取未提交”。此隔离级别忽略锁(实际上在SQL Server中称为NOLOCK)。结果,它会执行脏读。...像PostgreSQL一样,Oracle不提供“读未提交”。绝对不允许脏读。 列表中还缺少“可重复读取”。如果您在Oracle中需要这种行为,则需要将隔离级别设置为Serializable。...以前,它将使用类似于SQL Server的锁。 未提交读允许进行脏读,就像SQL Server的未提交读一样。该手册仅建议将其用于只读表,或者“在查看其他应用程序未提交的数据没有问题时”。

    1.4K30

    Oracle数据库相关经典面试题

    答∶ ORACLE中有两种事务 只读事务与读写事务。隔离级别 未提交读,提交读,可重复读,串行读,ORACLE支持提交读与串行读,默认隔离级别为提交读。 实例与数据库的关系 ?...可以回退整个事务,也可以会退部分事务,但是不能回退一个已经被提交的事务。...Oracle 悲观锁和乐观锁 答∶ 悲观锁是对数据的冲突采取一种悲观的态度,假设数据肯定会冲突,在数据开始读取的时候就把数据锁定住。...PL/SQL语句块包含哪些部分? 答∶ Pl/sql 的块结构包括:定义部分,执行部分,异常处理部分。 Oracle中字符串用什么符号链接?...答∶ Oracle中使用 || 这个符号连接字符串 如 ‘abc’ || ‘d’ Oracle是怎样分页的?

    2.2K20

    事务Transaction

    包括: 脏读 –dirty reads 一个事务读取了另一个事务未提交的数据,而这个数据是有可能回滚 ​ 不可重复读 –non-repeatable reads 在数据库访问中,一个事务范围内两个相同的查询却返回了不同数据...幻读 –Phantom(虚幻的) reads 事务1读取记录时事务2增加了记录并提交,事务1再次读取时可以看到事务2新增的记录。对事物1而言就好像出现了幻觉一样。...read N N Y Serializable N N N Oracle定义的事务隔离等级: 事务隔离等级 影响 Read commited Oracle默认的隔离等级,对一条SQL,可以保证数据的一致性...中锁作为数据块的一种属性存在 Oracle和Sql Server锁的区别 Sql Server Oracle 并发和读一致性不可兼得,必须牺牲一方 可兼得 因为锁实现方式,事务代价昂贵 没有真正的锁...PL/SQL 过程已成功完成。 从这个例子中,我们看到COMMIT和ROLLBACK的位置无论是在主匿名块中或者在子程序中,都会影响到整个当前事务.

    66310

    查询优化器基础知识—SQL语句处理过程

    SQL语句的哈希值与以下值不同: 语句的内存地址 Oracle 数据库使用 SQL ID 在查找表中执行键值读取。这样,数据库就可以获得语句的可能内存地址。...解析操作属于以下类别,具体取决于提交的语句类型和散列检查的结果: 硬解析 如果Oracle数据库无法重用现有代码,那么它必须构建应用程序代码的新可执行版本。 此操作称为硬解析或库高速缓存未命中。...数据库根据连接顺序完成整个步骤。数据库以 emp_name_ix 的索引范围扫描开始。使用它从索引中检索的 rowid,数据库将读取 employees 表中的匹配行,然后扫描 jobs 表。...Oracle 数据库检索数据以响应 fetch 调用,因此数据库读取的行越多,它执行的工作就越多。 对于某些查询,数据库会尽快返回第一行,而对于其他查询,它会在返回第一行之前创建整个结果集。...3.2.2 读取一致性 通常,查询使用 Oracle 数据库读取一致性机制检索数据,该机制可确保查询读取的所有数据块与单个时间点保持一致。 读取一致性使用 undo 数据来显示过去的数据版本。

    4K30

    WriteUp分享 | LCTF的一道padding oracle攻击+sprintf格式化字符串导致的SQL注入

    0x00题目 http://111.231.111.54/ 泄露了两个源码 .login.php.swp .admin.php.swp 源码丢在最下面,可用vim -r恢复 第一次接触padding oracle...乍看这两个参数都是做了预处理,再带入sql语句查询 但是看到sprintf(),是一个格式化字符串函数,传入的字符可覆盖自身参数 可参考文章 https://paper.seebug.org/386/...所以这里就能成功注入了,而且可以union注入,记得对payload进行url编码,毕竟太多乱七八糟的符号 给出相关payload(未url编码)和截图 id=3&title=%1$ 'union select...']); $title = sprintf("AND title='%s'", $title); }else{ $title = ''; } $sql...= sprintf("SELECT * FROM article WHERE id='%s' $title", $id); $result = mysql_query($sql,$con);

    1.2K80

    Java向Oracle数据库表中插入CLOB、BLOB字段

    在需要存储较长字符串到数据库中时往往需要使用一些特殊类型的字段,在Oracle中即blob和clob字段,一般而言:Clob字段存储字符信息,比如较长的文字、评论,Blob字段存储字节信息,比如图像的base64...(String,Integer) 在给出代码前,注意几点: Blob和Clob需要单独处理,即一个SQL语句无法完成上述需求 整个过程分为三部分:组装SQL语句、第一遍插入、第二次插入Blob和Clob...对象后强制转换为oracle.sql.CLOB oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob(cList.get(i))...对象后强制转换为oracle.sql.BLOB oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob(bList.get(i))...如何拼接SQL字符串 如何暂存特殊类型字段 如何在第一次插入时设置empty_blob() 如何通过主键值来进行第二次插入 如何插入Blob和Clob字段 如果你有更好的方法或者是对该文章有任何的疑问或想法

    6.7K10

    查看sql_mode_mysql命令行执行sql脚本

    1,执行SQL查看 select @@session.sql_mode; 全局级别: 查看 select @@global.sql_mode; 2,修改 set @@session.sql_mode='...'xx_mode'; session均可省略,默认session,仅对当前会话有效 全局修改的话,需高级权限,仅对下次连接生效,不影响当前会话,且MySQL重启后失效,因为MySQL重启时会重新读取配置文件里对应值...如 果未给出该模式,那么数据被零除时MySQL返回NULL update table set num = 5 / 0 ; 设置该模式后会报错,不设置则修改成功,num的值为null NO_AUTO_CREATE_USER...禁止GRANT创建密码为空的用户 NO_ENGINE_SUBSTITUTION 如果需要的存储引擎被禁用或未编译,那么抛出错误。...不设置此值时,用默认的存储引擎替代,并抛出一个异常 PIPES_AS_CONCAT 将”||”视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似

    2.2K20

    手把手教你搭建一个 Python 连接数据库,快速取数工具

    具体思路: 一、数据库连接类 此处利用 pandas 读写操作 oracle 数据库 二、主函数模块 1)输入参数模块,外部输入条件参数,建立数据库关键字段映射 --注:读取外部 txt 文件,将筛选字段可能需要进行键值对转换...本文主要介绍一下 Pandas 中 read_sql_query 方法的使用 1:pd.read_sql_query() 读取自定义数据,返还DataFrame格式,通过SQL查询脚本包括增删改查。...=None) sql:要执行的sql脚本,文本类型 con:数据库连接 index_col:选择返回结果集索引的列,文本/文本列表 coerce_float:非常有用,将数字形式的字符串直接以float...型读入 parse_dates:将某一列日期型字符串转换为datetime型数据,与pd.to_datetime函数功能类似。...到此整个数据库取数工具开发流程介绍完毕,就差最后一步分享给小伙伴使用了,做成 GUI 应用此处不做详细介绍,构建独立的 python 环境,快速发布你的应用

    1.4K30

    手把手教你搭建一个Python连接数据库快速取数工具

    、输入参数模块,外部输入条件参数,建立数据库关键字段映射 --注:读取外部txt文件,将筛选字段可能需要进行键值对转换 2)、sql语句集合模块,将待执行的业务sql语句统一存放到这里 3)、数据处理函数工厂...1:pd.read_sql_query() 读取自定义数据,返还DataFrame格式,通过SQL查询脚本包括增删改查。...=None) sql:要执行的sql脚本,文本类型 con:数据库连接 index_col:选择返回结果集索引的列,文本/文本列表 coerce_float:非常有用,将数字形式的字符串直接以float...型读入 parse_dates:将某一列日期型字符串转换为datetime型数据,与pd.to_datetime函数功能类似。...2:pd.read_sql_table() 读取数据库中的表,返还DataFrame格式(通过表名) import pandas as pd pd.read_sql_table(table_name,

    1.1K10
    领券