Oracle
 sql >> Database >  >> RDS >> Oracle

executeSqlScript non riesce con Spring per il blocco PL/SQL

Sembra che tu stia tentando di utilizzare le funzionalità di PL/SQL nel tuo script.

Il executeSqlScript(..) metodi in AbstractTransactionalJUnit4SpringContextTests delegare internamente a ScriptUtils.executeSqlScript(..) dietro le quinte e ScriptUtils supporta solo script SQL puri.

Quindi probabilmente dovrai passare a semplici istruzioni SQL e trovare un meccanismo diverso per recuperare il valore di account__id da table1 .

Un'altra opzione (che non ho non provato) sarebbe cambiare il separatore di istruzioni in qualcosa di diverso da ";" (ad esempio, "end;" ), ma non puoi farlo tramite AbstractTransactionalJUnit4SpringContextTests.executeSqlScript . Dovresti invece invocare ScriptUtils.executeSqlScript(..) o (forse preferibilmente) usa un ResourceDatabasePopulator .