Oracle
 sql >> Base de données >  >> RDS >> Oracle

executeSqlScript échoue avec Spring pour le bloc PL/SQL

Il semble que vous essayez d'utiliser les fonctionnalités de PL/SQL dans votre script.

Le executeSqlScript(..) méthodes dans AbstractTransactionalJUnit4SpringContextTests déléguer en interne à ScriptUtils.executeSqlScript(..) dans les coulisses et ScriptUtils ne prend en charge que les scripts SQL purs.

Vous devrez donc probablement passer à des instructions SQL simples et trouver un mécanisme différent pour récupérer la valeur de account__id de table1 .

Une autre option (que je n'ai pas essayé) serait de changer le séparateur d'instructions en autre chose que ";" (par exemple, "end;" ), mais vous ne pouvez pas le faire via AbstractTransactionalJUnit4SpringContextTests.executeSqlScript . Au lieu de cela, vous devrez invoquer ScriptUtils.executeSqlScript(..) ou (peut-être de préférence) utiliser un ResourceDatabasePopulator .