我已经了解了INSERT ALL语法,只要我不想检索插入的id值,它就可以正常工作。
与INSERT ALL语法相反,我可以在事务中使用多个INSERT INTO语句,这将起作用,但不利于性能,如下所述:在Oracle中进行多行插入的最佳方法?。
这是我当前的代码:
//Creation of INSERT INTO statement
//...
Statement statement = dbConnection.createStatement();
statement.executeUpdate(INSERT_SQL, new String[] {"someIDColumn"});
ResultSet idResulSet = statement.getGeneratedKeys();
//Usage of the generated keys
它适用于单行,但如果我尝试插入所有语法,我会得到一个:
Java . SQL . sqlsyntaxerrorexception:ORA-00933:SQL命令未正确结束
由以下原因引起:错误:933,位置:187,Sql=将所有值插入到bpos(artnr,bstnr,menge)值(3,31,4)中,将bpos(RTNR,bstnr,menge)值(5,31,6)插入到BPO(artnr,BSTN,Menges)值(1,31,2)中,从双返回artnr值中选择*将其插入:1,OriginalSql=将所有值插入BPO(artnr、bstnr、menge)值(3、31、4)中,将BPO(artnr、bstnr、menge)值插入bpos(5、31、6)中,并将所有值(1、31、2)从对偶中选择*并将artnr返回到?,错误Msg=ORA-00933:SQL命令未正确结束
是否可以在INSERT ALL语句之后检索所有插入的id?
使用:
statement.executeBatch
不是:
statement.executeUpdate
嗯,据我所知,这是可能的,但不是直接的(因为你可以用更新或删除);必须使用一点变通方法。
这里有一个例子:
SQL> create table test (id number, name varchar2(20));
Table created.
SQL> declare
2 type tt_test is table of test%rowtype index by binary_integer;
3 l_test tt_test;
4 l_id sys.odcinumberlist;
5 begin
6 select id, name
7 bulk collect into l_test
8 from (select 111 id, 'Little' name from dual union all
9 select 222 id, 'Foot' name from dual
10 );
11
12 forall i in l_test.first .. l_test.last
13 insert into test (id, name) values (l_test(i).id, l_test(i).name)
14 returning l_test(i).id bulk collect into l_id;
15
16 for i in l_id.first .. l_id.last loop
17 dbms_output.put_line('Inserted ID = ' || l_id(i));
18 end loop;
19 end;
20 /
Inserted ID = 111
Inserted ID = 222
PL/SQL procedure successfully completed.
SQL>
我不知道,虽然,你可以用它在你的(Java?)代码,因为我不会说那种语言。
本文向大家介绍用一条mysql语句插入多条数据,包括了用一条mysql语句插入多条数据的使用技巧和注意事项,需要的朋友参考一下 假如有一个数据表A: id name title addtime 如果需要插入n条数据 : 之前我的想法会是,通过数据构造多条插入语句,循环调用 。如: 之后发现了sql的insert语句可以一次插入多条:
如本文所示,此功能在MySQL中可用,根据Sybase文档,它也应该得到支持,但是Sybase没有提供工作示例,因此您必须解释以下内容: 语法1使用指定的表达式列值插入单行或多行。如果指定,多行由附加括号分隔 因此,我将“附加括号”解释为期望下面的代码能够工作 然而,它错误地 我使用的是Sybase ASE 15,在INSERT语句的支持页面上看不到任何关于插入多行的引用 这个功能在赛贝斯可用吗?
问题内容: 我是Web服务的新手。请提出建议,如何在Java中使用Jersey JAX-RS从数据库中插入和检索数据? 问题答案: 下面是一个示例 JAX-RS 服务的示例,该示例使用 JPA 进行持久性而使用 JAXB 进行消息传递时,实现为会话Bean 。 客户服务 顾客 以下是其中一个实体的示例。它包含JPA和JAXB批注。 想要查询更多的信息 第1部分-数据模型 第2部分-JPA 第3部分
问题内容: 我正在尝试编写一个docker文件,该文件将运行RUN命令以在package.json文件中搜索单词并对其执行操作: 这是我简单的dockerfile: 如您所见,我只想要一个简单的if语句,但它得到此错误: 我应该如何运行命令?谢谢。 问题答案: 就像在shell上键入内容一样,您需要在前面加上换行符或分号:
我想向数据库中插入值,但它无法工作,尽管我的代码在用作存储过程时运行良好。我需要使用按钮点击来存储值。请告诉我代码有什么问题。它没有显示任何错误或异常,但表中的数据没有更新
下面是准备好的语句代码的片段: 它完成工作,但只有在数百次插入之后。是否有方法将列表或数组绑定到bind_param()参数,只需运行$stmtability->execute one time或其他可以提高性能的方法。 抱歉,如果这是问和回答之前。我四处看了一会儿,发现了一些类似的问题,但没有什么能明确地回答我的要求。