Skip to Main Content

Java Database Connectivity (JDBC)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

how to run a PL/SQL block from java application

User8710670-OracleAug 20 2014 — edited Oct 15 2014


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?

This post has been answered by Antonio Navarro on Aug 20 2014
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Sep 17 2014
Added on Aug 20 2014
2 comments
720 views