Executing PL/SQL Begin/End procedure from Oracle JDBC thin driver -



Executing PL/SQL Begin/End procedure from Oracle JDBC thin driver -

i trying create oracle pl/sql procedures , execute them via oracle jdbc (thin driver). here total pl/sql script:

begin in (select owner, constraint_name, table_name all_constraints owner = 'schema' , status = 'enabled') loop execute immediate 'alter table schema.'||i.table_name||' disable constraint schema.'||i.constraint_name||''; end loop; end; / begin in (select table_name all_tables owner = 'schema') loop execute immediate 'truncate table schema.'||i.table_name||''; end loop; end; / begin in (select owner, constraint_name, table_name all_constraints owner = 'schema' , status = 'disabled') loop execute immediate 'alter table schema.'||i.table_name||' enable constraint schema.'||i.constraint_name||''; end loop; end; /

in java splitting on '/' each begin end block executed in separate statement. java code execute statement is:

callablestatement c = dbc.getconnection().preparecall(sqlstatement); c.executeupdate();

i'm receiving next error:

java.sql.sqlsyntaxerrorexception: ora-00933: sql command not ended ora-06512: @ line 3

how format , execute pl/sql in jdbc?

updated: clarify, 3 statements executed without '/' delimiter split on.

updated: oracle server next version: oracle database 11g release 11.2.0.1.0 - 64bit production

in "enable /diable" constraint shouldn't add together schema name (your'schema).

from manual: alter table

your example:

begin in (select owner, constraint_name, table_name all_constraints owner = 'schema' , status = 'enabled') loop execute immediate 'alter table schema.' || i.table_name || ' disable constraint ' || i.constraint_name; end loop; end;

test query

select ac.constraint_name, ac.table_name, ac.status, ac.owner all_constraints ac ac.owner = 'hr' , ac.constraint_name = 'emp_salary_min'

result

constraint_name table_name status owner ------------------------------ ------------------------------ -------- -------------------------------------------------------------------------------- emp_salary_min employees enabled hr

correct dynamic sql

begin execute immediate 'alter table hr.employees disable constraint emp_salary_min'; end;

previous query result

constraint_name table_name status owner ------------------------------ ------------------------------ -------- -------------------------------------------------------------------------------- emp_salary_min employees disabled hr

oracle jdbc plsql ora-00933

Comments

Popular posts from this blog

iphone - Dismissing a UIAlertView -

intellij idea - Update external libraries with intelij and java -

javascript - send data from a new window to previous window in php -