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

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

最近在使用MyBatis操作Oracle数据库时候,进行批量插入数据,思路是封装一个List集合通过Myabtis foreach标签进行循环插入,可是搬照Mysql批量插入会产生 异常   ##...Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令正确结束 错误写法如下 <insert id="insertExpenseItem...close表示以什么<em>结束</em>,在使用foreach<em>的</em>时候最关键<em>的</em>也是最容易出错<em>的</em>就是collection属性,该属性是必须指定<em>的</em>,但是在不同情况 下,该属性<em>的</em>值是不一样<em>的</em>,主要有一下3种情况:...又查了MyBatis操作<em>Oracle</em><em>的</em>相关资料 得到结论:在<em>Oracle</em><em>的</em>版本中,有几点需要注意<em>的</em>: 1.<em>SQL</em>中没有VALUES; 2....按照我<em>的</em><em>正确</em>写法进行照葫芦画瓢即可 ?

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

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

Cause: Java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令正确结束 错误写法如下 <insert id="insertExpenseItem...这样分析大概就是<em>Oracle</em>语法<em>的</em>问题了 首先在度娘上找了MyBatis 之foreach插入<em>的</em>相关资料 具体如下:         foreach<em>的</em>主要用在构建in条件中,它可以在<em>SQL</em>语句中进行迭代一个集合...close表示以什么<em>结束</em>,在使用foreach<em>的</em>时候最关键<em>的</em>也是最容易出错<em>的</em>就是collection属性,该属性是必须指定<em>的</em>,但是在不同情况 下,该属性<em>的</em>值是不一样<em>的</em>,主要有一下3种情况:        ...又查了MyBatis操作<em>Oracle</em><em>的</em>相关资料 得到结论:在<em>Oracle</em><em>的</em>版本中,有几点需要注意<em>的</em>:         1.<em>SQL</em>中没有VALUES;         2....按照我<em>的</em><em>正确</em>写法进行照葫芦画瓢即可

2.8K20

使用 SQL NOWAIT 最佳方式

如果出现数据一致性问题,数据库系统必须能够成功回滚所有提交更改,并将所有已经修改记录还原到其之前一致状态。...AliceUPDATE锁定了表记录,因此当 Bob 想要使用FOR UPDATE子句获取锁时,他锁获取请求将阻塞,直到 Alice 交易结束或锁获取超时。...使用 SELECT 查询FOR UPDATE子句可以模拟相同行为,如下图所示: 通过获取并保持独占锁直到事务结束,关系数据库系统避免了脏写,从而保证了事务原子性。...不同数据库系统NOWAIT 子句并不相同,见下表: 数据库 独占锁NOWAIT子句 Oracle FOR UPDATE NOWAIT SQL Server WITH (UPDLOCK,HOLDLOCK...时,开发人员无需编写针对特定数据库SQL语句即可获取正确NOWAIT 子句,因为框架会根据底层数据库生成正确SQL 语法。

76010

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

♣ 题目部分 在Oracle中,如何查找使用绑定变量SQL语句?...♣ 答案部分 利用V$SQL视图FORCE_MATCHING_SIGNATURE字段可以识别可能从绑定变量或CURSOR_SHARING获益SQL语句。...换句话说,如果两个SQL语句除了字面量值之外都是相同,它们将拥有相同FORCE_MATCHING_SIGNATURE,这意味着如果为它们提供了绑定变量或者CURSOR_SHARING,它们就成了完全相同语句...like 'select e.ename,e.sal from scott.emp e where e.empno%'; & 说明: 有关查找使用绑定变量SQL更多内容可以参考我...⊙ 【DB笔试面试585】在Oracle中,什么是常规游标共享?⊙ 【DB笔试面试584】在Oracle中,如何得到已执行目标SQL绑定变量值?

6.2K20

SQL优化:一篇文章说清楚Oracle Hint正确使用姿势

此时,语句本身是无感知,必须人工测试并修正。 4、Hint与注释关系 提示是Oracle为了不破坏和其他数据库引擎之间对SQL语句兼容性而提供一种扩展功能。...Oracle决定把提示作为一种特殊注释来添加。它特殊性表现在提示必须紧跟着DELETE、INSERT、UPDATE或MERGE关键字。 换句话说,提示不能像普通注释那样在SQL语句中随处添加。...3、提示数据字典 Oracle在11g版本中提供了一个数据字典—V$SQL_HINT。通过这个数据字典可以看到提示出现版本、概要数据版本、SQL特性以及相反提示等。...但是当优化器没能做出正确判断时,或者像从嵌套视图中所获得结果集合那样不具备统计信息时,可以使用该提示。 6、和并行相关 PARALLEL 指定SQL执行并行度,这个值将会覆盖表自身设定并行度。...本地视图应该有where子句,从而视图可以在将行发送回本地数据库之前限制从远程数据库返回行。 DYNAMIC_SAMPLING 提示SQL执行时动态采样级别。

5.4K340

Oracle数据库相关经典面试题

隔离级别 提交读,提交读,可重复读,串行读,ORACLE支持提交读与串行读,默认隔离级别为提交读。 实例与数据库关系 ?...答∶ 实例管理一个数据库内存空间与一组进程,一个实例必须对应一个数据库,一个数据库起码包含一个实例。 事务理解,如事务特点,oracle中何时开始,何时结束?...答∶ ORACLE事务在执行第一条可执行SQL语句时开始,到一条COMMIT、ROLLBACK语句或退出数据库时事务结束。 利用ROLLBACK语句可以在COMMIT命令前随时撤消或回退一个事务。...答∶ Pl/sql 块结构包括:定义部分,执行部分,异常处理部分。 Oracle中字符串用什么符号链接?...sql语句执行顺序? 答∶ FROM:对FROM子句前两个表执行笛卡尔积(Cartesian product)(交叉联接),生成虚拟表VT1 ON:对VT1应用ON筛选器。

2.2K20

oracle 下一些零散命令sql 语句

以前学过一些数据库相关知识,回想起来刚入门还是看了传智播客视频,杨忠科老师sql语句教程。...现在已经好多年了,中间自己也不断在用,但是一直没有提高,只是会简单增删改查,今天学 cast..then..等等都没怎么用过,所以记录一下没有学到过内容,以后备用。...for a20(字符串) col 列名 for 99999(数字) // 修改错误sql语句 跳转到指定错误行 1 修改指定数据 c /form/from 使用ed命令,弹出系统默认编辑器 // 去重...select distinct job from emp; // 表达式中使用可能为NULL值处理办法 在表达式中如果使用了带有NULL操作数,那么整个表达式结果也是NULL,如果想避免这种情况...// 查询带有下划线字段 select * from emp where ename like ‘%\_%’ escape ‘\‘     // 重要是escape告诉sql语句是用\转义 // sql

16420

第一章 Oracle Database In-Memory 相关概念(续)(IM-1.2)

完全支持诸如SQL * Plus,SQL Developer和Oracle企业管理器(企业管理器)之类管理工具。...Oracle 数据泵和 IM 列存储 您可以使用 impdp 命令 TRANSFORM=INMEMORY:y 选项导入为IM列存储启用数据库对象。...该顾问程序还生成一个SQL * Plus脚本,通过 INMEMORY 子句更改推荐对象。 In-Memory Advisor 程序不包括在存储PL / SQL包中。...Oracle 数据泵和 IM 列存储 您可以使用 impdp 命令 TRANSFORM=INMEMORY:y 选项导入为IM列存储启用数据库对象。...(本章结束,第二章:IM 列存储体系结构(IM-2)) 山东Oracle用户组(Shandong Oracle User Group),简称:SDOUG,是一个充满朝气、年轻非营利性组织,旨在为济南及周边地区技术爱好者提供一个交流平台

1K20

这是我见过最有用Mysql面试题,面试了无数公司总结(内附答案)

SQL中有哪些不同DML命令? DML命令用于管理数据库中存在数据。...Where子句不能与Aggregate函数一起使用,但是Haveing子句可以。 68. SQL聚合函数是什么? SQL聚合函数返回单个值,该值是根据列中值计算得出。...如果与交叉联接一起使用WHERE子句,则交叉联接将产生一个结果集 该结果集是第一个表中行数乘以第二个表中行数。 这种结果称为笛卡尔积。...在上述问题中,我们可以看到null = null不是比较null值正确方法。为了将一个值与null进行比较,我们在SQL中使用IS运算符。...101.描述SQL注释? 单行注释:单行注释以两个连续连字符(–)开头,并以该行结尾结束。 多行注释:多行注释以/*开头,并以*/结尾。/*和*/之间任何文本都将被忽略。 102.

27K20

检查绑定变量语句(硬解析状况)

上节我们介绍了如何通过Django获取Oracle 执行次数等于一语句,而这些语句很有可能是使用绑定变量导致,这节讲如何获取其具体信息 ---- 开发环境 操作系统:CentOS 7.3 Python...commandresult/$',views.commandresult, name='commandresult'), ] oracle_command为执行Oracle命令页面 commandresult...为执行完Oracle命令显示结果页面 ---- views.py 下面为commandresult对应函数在views.py里面的写法 ?...这个SQL获取v$sql视图中使用绑定变量语句情况 select sql_text, hash_value, module , first_load_time, last_load_time from...从上面结果我们可以看到这个select语句where子句使用绑定变量,从模块中可以看到其来自哪里,载入时间也可以判断其执行非常频繁。

1.9K30

Oracle事务和对象详解

1、事务开始是从一条SQL语句开始,结束于下面的几种情况: 1)显示提交:输入commit指令,事务完成提交 2)显示回滚:输入rollback指令,提交事务丢掉,回滚到事务开始时状态。...1)频繁检索列 2)经常排序、分组列 3)主键/外键 4)大型索引使用nologing子句创建 5)需定期进行组织索引、碎片整理 5、维护索引命令 1)重建索引 alter index i_table...1、而在Oracle中,同义词可用来: 1)简化Oracle中输入SQL语句,通过给对象建立同义词,我们可以简化复杂SQL语句,方便记忆和操作 2)隐藏对象名称和所有者,给对象建立了同义词,如scott...1、事务开始是从一条SQL语句开始,结束于下面的几种情况: 1)显示提交:输入commit指令,事务完成提交 2)显示回滚:输入rollback指令,提交事务丢掉,回滚到事务开始时状态。...1)频繁检索列 2)经常排序、分组列 3)主键/外键 4)大型索引使用nologing子句创建 5)需定期进行组织索引、碎片整理 5、维护索引命令 1)重建索引 alter index i_table

1.1K20

Java 技术篇 - java同时连接多种数据库执行sql语句兼容性验证,数据库类型包括:oracle、sqlserver、DB2、人大金仓、达梦、PG、瀚高、polardb

Java 操作多类型数据库下兼容性验证 第一章:数据库测试 ①【 oracle 数据库不支持分号】ORA-00933: SQL 命令正确结束 ② 【sqlserver 数据库不支持 commit】COMMIT...③ 测试驱动和 JDK 版本 第一章:数据库测试 ①【 oracle 数据库不支持分号】ORA-00933: SQL 命令正确结束 报错:OriginalSql = delete from org_reportcombinestru...where code = '报表合并体系2';, Error Msg = ORA-00933: SQL 命令正确结束 java.sql.SQLSyntaxErrorException: ORA-00933...: SQL 命令正确结束 at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509) at oracle.jdbc.driver.T4CTTIoer11...命令正确结束 at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:513) ... 33 more ② 【sqlserver

1.9K31

SQL语句执行原理清空缓存方法

如果在SQL计划缓存中没有对应执行计划,服务器首先会对用户请求SQL语句进行语法效验,如果有语法错误,服务器会结束查询操作,并用返回相应错误信息给调用它应用程序。...语法符合后,就开始验证它语义是否正确,例如,表名,列名,存储过程等等数据库对象是否真正存在,如果发现有不存在,就会报错给应用程序,同时结束查询。...DBCC FREESYSTEMCACHE 从所有缓存中释放所有使用缓存条目。SQL Server 2005 数据库引擎会事先在后台清理使用缓存条目,以使内存可用于当前条目。...但是,可以使用此命令从所有缓存中手动删除使用条目。 这只能基本消除SQL缓存影响,目前好像没有完全消除缓存方案,如果大家有,请指教。 执行顺序: FROM 子句返回初始结果集。...WHERE 子句排除不满足搜索条件行。 GROUP BY 子句将选定行收集到 GROUP BY 子句中各个唯一值组中。 选择列表中指定聚合函数可以计算各组汇总值。

2K50

Oracle 错误总结及问题解决 ORA「建议收藏」

ORA-00921: 预期 SQL 命令结尾 ORA-00922: 缺少或无效选项 ORA-00923: 未找到预期 FROM 关键字 ORA-00924: 缺少 BY 关键字 ORA-00925...: 要求 得到却是 ORA-00933: SQL 命令正确结束 ORA-00934: 此处不允许使用分组函数 ORA-00935: 分组函数嵌套太深 ORA-00936: 缺少表达式 ORA-00937...ORA-01077: 背景进程初始化失败 ORA-01078: 处理系统参数失败 ORA-01079: ORALCE 数据库正确创建,操作中止 ORA-01080: 关闭 ORACLE 时出错 ORA...ORA-01756: 括号内字符串没有正确结束 说明:如果中文某些字引起这个错误,是由于编码引起,可以用类似Notepad软件对文本进行转码。...” ORA-01952: 系统权限授予” ORA-01953: 命令不再有效,请参阅 ALTER USER ORA-01954: DEFAULT ROLE 子句对 CREATE USER 无效 ORA

18.7K20

SQL语句执行过程详解

也就是说,Oracle 客户端是不会做任何操作,他主要任务就是把客户端产生 一些 SQL 语句发送给服务器端。...二是绝大部分 SQL 语句都是按照这个处理过程处理。我们 DBA 或者基于 Oracle 数据库开发人员了解这些语句处理过程,对于我们进行涉及到 SQL 语句开发与调试,是非常有帮助。...DBCC FREESYSTEMCACHE 从所有缓存中释放所有使用缓存条目 SQL语句中函数、关键字、排序等执行顺序: 1. FROM 子句返回初始结果集。 2....WHERE 子句排除不满足搜索条件行。 3. GROUP BY 子句将选定行收集到 GROUP BY 子句中各个唯一值组中。 4. 选择列表中指定聚合函数可以计算各组汇总值。 5....1.用户执行 commit 命令 只有当 sql 语句所影响所有行所在最后一个块被读入 db buffer 并且重做信息被写入 redo log buffer(仅指日志缓冲区,而不包括日志文件)之后

3.9K60
领券