Estoy tratando de usar el sql-maven-plugin para ejecutar una secuencia de comandos PL/SQL en una base de datos Oracle 11. Aunque el guión es válida PL/SQL (por lo que puedo decir), la ejecución me da una PLS-00103 error:Maven: la secuencia de comandos PL/SQL con sql-maven-plugin arroja el error PLS-00103
La secuencia de comandos SQL: (drop_all_tables.sql)
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE MY_TABLE';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -942 THEN
RAISE;
END IF;
END;
Y mi plug-in configuración:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.5</version>
<dependencies>
<dependency>
<groupId>oracle</groupId>
<artifactId>jdbc</artifactId>
<version>11.2.0.2.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>create-schema</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>${jdbc.url}</url>
<username>${jdbc.username}</username>
<password>${jdbc.password}</password>
<autocommit>true</autocommit>
<srcFiles>
<srcFile>src/main/resources/sql/drop_all_tables.sql</srcFile>
</srcFiles>
</configuration>
</execution>
</executions>
</plugin>
Y esta es la salida de la ejecución Maven:
[ERROR] Failed to execute: BEGIN
EXECUTE IMMEDIATE 'DROP TABLE MY_TABLE';
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] ORA-06550: line 2, column 43:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
(begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
<an identifier> <a double-quoted delimited-identifier>
<a bind variable> << continue close current delete fetch lock
insert open rollback savepoint set sql execute commit forall
merge pipe purge
El resultado del código en su mensaje de error Maven no coincide exactamente con el código que publicó en la parte superior de su hilo. – APC
Oh, lo siento mucho, edité el nombre de la tabla para ser genérico, olvidé hacerlo en el resultado del error - hecho ahora :) – Guillaume
el punto es que el código que estás * ejecutando * es diferente de lo que * eres mostrándonos *. ¿Cómo espera que interpretemos un error de sintaxis si no nos muestra el código real? – APC