Bonjour,
Je souhaite exécuter la procédure PL/SQL suivante à partir d'un programme JAVA.
Je ne peux pas la stocker en base et l'appeler depuis le programme java.
Soit je réussi à l'exécuter directement à partir du programme ou sinon je devrais utiliser un Runtime.exec. Ce que je préférerais ne pas faire.

DECLARE
v_dynam varchar2(1000);
cursor fk_cursor is
select table_name, constraint_name from user_constraints where constraint_name like 'FK_%';

BEGIN

for c_row in fk_cursor loop
v_dynam := 'ALTER TABLE '||c_row.table_name||' DROP CONSTRAINT '||c_row.constraint_name;
execute immediate v_dynam;
end loop;

END;
/

show errors;

J'ai essayé ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
m_dbConnection = DriverManager.getConnection(m_strConnectURL, m_strLogin, m_strPassword);
String strProc =  
         "DECLARE \n" +
         "   v_dynam varchar2(1000);\n" +
         "   cursor fk_cursor is\n" +
         "      select table_name, constraint_name from user_constraints where constraint_name like 'FK_%';\n" +
         "" +
         "BEGIN\n" +
         "" +
         "   for c_row in fk_cursor loop\n" +
         "      v_dynam := 'ALTER TABLE '||c_row.table_name||' DROP CONSTRAINT '||c_row.constraint_name;\n" +
         "      execute immediate v_dynam;\n" +
         "   end loop;\n" +
         "" +
         "END;\n" +
         "/\n" +
         "" +
         " show errors;\n" +
         "" +
         "exit\n";
PreparedStatement psProcToexecute = m_dbConnection.prepareStatement(strProc);
psProcToexecute.execute();
mais j'obtiens toujours l'erreur :
java.sql.SQLException: ORA-06550: line 11, column 1:
PLS-00103: Encountered the symbol "/"

Quelqu'un aurait-il une suggestion?