Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I have a Java webapp with an Oracle DB, and I try to execute this statement at the end of a data migration script:

EXEC DBMS_STATS.GATHER_TABLE_STATS (ownname => 'MY_SCHEMA', tabname => 'MY_TABLE', estimate_percent => dbms_stats.auto_sample_size);

It works in sql*plus, but not via JDBC:

"Error: ORA-00900: invalid SQL statement"

What am I doing wrong?

share|improve this question

migrated from serverfault.com Sep 12 '13 at 12:33

This question came from our site for system and network administrators.

    
EXEC (EXECUTE) is a SQL*Plus native command (just like SHUTDOWN, HELP, SET, etc.), and not a part of SQL itself. –  kubanczyk Sep 29 '13 at 21:43

2 Answers 2

up vote 2 down vote accepted

Instead of EXEC, you should put it between begin ... end, or use the { call } syntax. Here is an example, in the documentation:

http://docs.oracle.com/cd/E11882_01/java.112/e16548/getsta.htm#i1014127

share|improve this answer
    
Thanks, that did the trick. –  Buddy Casino Sep 10 '13 at 17:17
CallableStatement cs = connection.prepareCall("{call MYPROCEDURE }");
cs.execute();
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.