Pregunta

Utilizamos org.springframework.batch.test.DataSourceInitializer clase con el fin de init DB en base a las secuencias de comandos .sql.

Init se falló, después del disparo se había añadido a .SQL.

Después de la depuración, se descubrió que la causa del error, mientras que aquí:

try {
scripts = StringUtils.delimitedListToStringArray(stripComments(IOUtils.readLines(scriptResource.getInputStream())), ";");
}

ocurrió este error, porque delimitador es ";" símbolo, así disparador fue splittet en varias partes sobre la base de ";". y tratada uncorrectly

Puede usted aconsejarme más avanzada inicializador fuente de datos, que voy a entender los factores desencadenantes correctamente?

Gracias.

¿Fue útil?

Solución 2

se resolvió mediante la escritura propia DataSourceInitilaizer, que trata ';' dependientemente sobre gatillo o no

Otros consejos

La sentencia CREATE TRIGGER es un bloque PL / SQL y bloques PL / SQL se debe terminar con un solo / como el primer carácter de una fila.
Esto debería funcionar:

CREATE OR REPLACE TRIGGER "ACCOUNT_BIU" 
  BEFORE INSERT OR UPDATE ON ACCOUNT 
  REFERENCING OLD AS OLD NEW AS NEW 
  FOR EACH ROW 
BEGIN 
  IF (:NEW.ESKONTOTYPE_ID   IS NULL) THEN 
    IF (:NEW.KONTOTYPE_ID    ='NP') THEN 
      :NEW.ESKONTOTYPE_ID   := 311; 
    ELSIF (:NEW.KONTOTYPE_ID ='MT') THEN 
      :NEW.ESKONTOTYPE_ID   := 320; 
    ELSIF (:NEW.KONTOTYPE_ID ='NL') THEN 
      :NEW.ESKONTOTYPE_ID   := 330; 
    END IF; 
  END IF; 
  :NEW.ENDRETBRUKER := SUBSTR(USER,1,7); 
  :NEW.ENDRETDATO   := SYSDATE; 
END; 
/

ALTER TRIGGER "ACCOUNT_BIU" ENABLE; 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top