[英]Insert in Oracle data from Java loop
I tried to execute this code in order to generate random data in Oracle table: 我试图执行以下代码以便在Oracle表中生成随机数据:
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
// Connect to the database
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "admin", "qwerty");
PreparedStatement pstmt
= conn.prepareStatement("BEGIN "
+ "FOR loop_counter IN 1..10 "
+ "LOOP "
+ "INSERT INTO EVENTS (EVENTID, SOURCE, TYPE, EVENT_DATE, DESCRIPTION) "
+ "VALUES (loop_counter, loop_counter, 'warning', "
+ "TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_CHAR(DATE '2000-01-01','J') ,TO_CHAR(DATE '9999-12-31','J'))),'J'), "
+ "DBMS_RANDOM.string('x',15)); "
+ "END LOOP; "
+ "COMMIT; "
+ "END; ");
pstmt.execute();
pstmt.close();
conn.close();
This code is successfully executed in PL/SQL deloper but for some reason it hangs in JUnit test execution. 该代码已在PL / SQL deloper中成功执行,但由于某种原因它挂在JUnit测试执行中。 Do you have any idea why? 你知道为什么吗?
It would be simpler if you did your looping in Java and performed a batch insert. 如果您使用Java进行循环并执行批处理插入,将会更简单。 This existing answer should help you: 现有的答案应该可以帮助您:
Efficient way to do batch INSERTS with JDBC 使用JDBC进行批处理INSERTS的有效方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.