tutorial salida resueltos procedimientos procedimiento parametros funciones example ejemplos ejecutar developer con almacenado sql spring oracle11g spring-test

salida - executeSqlScript falla con Spring para bloquear PL/SQL



pl sql tutorial (1)

Parece que está intentando usar funciones de PL / SQL en su secuencia de comandos.

Los executeSqlScript(..) en AbstractTransactionalJUnit4SpringContextTests delegan internamente en ScriptUtils.executeSqlScript(..) entre bastidores, y ScriptUtils solo es compatible con scripts SQL puros.

Por lo tanto, es probable que deba cambiar a declaraciones SQL simples y encontrar un mecanismo diferente para recuperar el valor del account__id de la account__id .

Otra opción (que no he probado) sería cambiar el separador de declaración a algo que no sea ";" (por ejemplo, "end;" ), pero no puede hacerlo a través de AbstractTransactionalJUnit4SpringContextTests.executeSqlScript . En cambio, necesitaría invocar ScriptUtils.executeSqlScript(..) o (quizás preferiblemente) usar ResourceDatabasePopulator .

Estoy tratando de poblar mi base de datos usando la función incorporada executeSqlScript de AbstractTransactionalJUnit4SpringContextTests usando el siguiente archivo SQL externo.

declare id number; begin insert into table1 (field1) values (''V1'') returning account__id into id; insert into table2 (my_id, field2) VALUES (id, ''Value3''); end;

Sin embargo estoy recibiendo el siguiente error. No estoy seguro de lo que se me permite hacer en un archivo SQL que me gustaría ejecutar usando executeSqlScript .

org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement at line 1 of resource class path resource [testdata.sql]: declare id number; nested exception is java.sql.SQLException: ORA-06550: line 1, column 17: PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: := . ( @ % ; not null range default character Caused by: java.sql.SQLException: ORA-06550: line 1, column 17: PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: := . ( @ % ; not null range default character

Entonces mis preguntas son: ¿Qué puedo expresar en el archivo SQL para executeSqlScript ? ¿Cuál es la causa del error que estoy recibiendo?