I wanna run a PL/SQL block from java application. I got solution as below url:
jdbc - Execute anonymous pl/sql block and get resultset in java - Stack Overflow
Now I just finished below code:
------------------------------------------------------------
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Types;
import oracle.jdbc.OracleTypes;
import java.util.Date;
import java.text.SimpleDateFormat;
public class JDBCTest {
public static void main(String[] args) throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
final Connection c = DriverManager.getConnection("jdbc:oracle:thin:@10.130.182.143:1521:test", "system", "oracle");
String plsql = "" +
"BEGIN" +
"dbms_lock.sleep(100);" +
"END;";
CallableStatement cs = c.prepareCall(plsql);
System.out.println("Begin time: " + df.format(new Date()));
cs.execute();
System.out.println("End time: " + df.format(new Date()));
cs.close();
c.close();
}
}
------------------------------------------------------------
Then I got below errors:
Begin time: 2014-08-20 17:47:20
Exception in thread "main" java.sql.SQLException: ORA-00900: invalid SQL statement
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:212)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1116)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1270)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3415)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3520)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:5090)
at JDBCTest.main(JDBCTest.java:55)
Can you plz let me know how to result this issue?