oracle insert into select 大数据量_Oracle数据库操作基本命令(一)
最近因工作需要,需要将一些数据同步到oracle数据库,我以为语法应该差不多,没想到真的踩了几个坑,今天分享出来,供大家借鉴。准备一张测试表test,字段有id、name和创建时间。添加数据INSERT INTO "ROOT"."test"("id", "name", "create_time") VALUES (1, '添加1', '2020-11-26...
最近因工作需要,需要将一些数据同步到oracle数据库,我以为语法应该差不多,没想到真的踩了几个坑,今天分享出来,供大家借鉴。
准备一张测试表test,字段有id、name和创建时间。
添加数据
INSERT INTO "ROOT"."test"("id", "name", "create_time") VALUES (1, '添加1', '2020-11-26 20:00:00');
反手就是添加一条语句,你以为没问题?结果:
报错:日期格式不能转换为字符串
重点1:添加日期数据需要使用TO_DATE
INSERT INTO "ROOT"."test"("id", "name", "create_time") VALUES (1, '添加1', TO_DATE('2020-11-26 20:00:00','yyyy-mm-dd hh24:mi:ss'));
可以看到已经添加成功,我们查询一下。
查询数据
批量添加数据
@Insert( " )
直接运行,wow竟然又出问题。
报错:bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束
不明所以,直接把sql放在工具里执行。
insert into "ROOT"."test"("id","name","create_time")values( 2,'添加2',TO_DATE('2020-11-26 20:10:00', 'yyyy-mm-dd hh24:mi:ss')),( 3,'添加3',TO_DATE('2020-11-26 20:20:00', 'yyyy-mm-dd hh24:mi:ss')),( 4,'添加4',TO_DATE('2020-11-26 20:30:00', 'yyyy-mm-dd hh24:mi:ss'))
百度搜索:
提示我的语句未正常结束,不可能啊,检查了几遍也完整了啊。
开始怀疑:难道不支持这个语句?先执行一条:
冷笑,一条竟然可以成功,那就是oracle批量添加的语法有问题了。
批量添加数据正确语法
insert allinto "ROOT"."test"("id","name","create_time") values (3,'添加3',TO_DATE('2020-11-26 20:20:00', 'yyyy-mm-dd hh24:mi:ss'))into "ROOT"."test"("id","name","create_time") values (4,'添加4',TO_DATE('2020-11-26 20:30:00', 'yyyy-mm-dd hh24:mi:ss'))select 1 from dual;
注意:最后的select是固定语法。
上面,讲了Oracle的添加和批量添加的语法。后面会继续讲博主遇到的其他问题哦!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)