URGENTE SENTENCIA MERGE!!
Publicado por KARINA (53 intervenciones) el 07/11/2005 21:37:34
Hola estoy haciendo una carga de datos desde unas tablas externas a otras fijas tengo un script sql muy sencillo, que sin embargo me da un error y no lo detecto, alguien con un poco más de experiencia en pl/sql quizá lo pueda ver, lo agradecería infinitamente, estoy bastante tiempo con esto:
----------------
-- si hay error sql retornar 1
WHENEVER SQLERROR EXIT 1;
--declaración de la fase
DECLARE
err_num NUMBER;
err_msg VARCHAR2(100);
--inicio de la fase
BEGIN
MERGE INTO EBPAISTO FIJ
USING /*+ ROWID*/ EBPAISEO EXT
ON (FIJ.CO_PAIS = EXT.CO_PAIS)
WHEN MATCHED THEN UPDATE
SET FIJ.NO_PAIS = EXT.NO_PAIS,
FIJ.CO_OPERACION = EXT.CO_OPERACION,
FIJ.CO_USUARIO = EXT.CO_USUARIO,
FIJ.IT_TIMESTAMP = SYSDATE )
WHEN NOT MATCHED THEN
INSERT /*+ APPEND*/ (
FIJ.CO_PAIS,
FIJ.NO_PAIS,
FIJ.CO_OPERACION,
FIJ.CO_USUARIO,
FIJ.IT_TIMESTAMP
)
VALUES
(
EXT.CO_PAIS,
EXT.NO_PAIS,
EXT.CO_OPERACION,
EXT.CO_USUARIO,
SYSDATE )
END;
/
QUIT;
------------------
el error que me da es :
SYSDATE )
*
ERROR at line 29:
ORA-06550: line 29, column 44:
PL/SQL: ORA-00933: SQL command not properly ended
ORA-06550: line 7, column 2:
PL/SQL: SQL Statement ignored
ORA-06550: line 30, column 4:
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 d ... y se queda allí
por favor es muy urgente
Gracias
Karina
----------------
-- si hay error sql retornar 1
WHENEVER SQLERROR EXIT 1;
--declaración de la fase
DECLARE
err_num NUMBER;
err_msg VARCHAR2(100);
--inicio de la fase
BEGIN
MERGE INTO EBPAISTO FIJ
USING /*+ ROWID*/ EBPAISEO EXT
ON (FIJ.CO_PAIS = EXT.CO_PAIS)
WHEN MATCHED THEN UPDATE
SET FIJ.NO_PAIS = EXT.NO_PAIS,
FIJ.CO_OPERACION = EXT.CO_OPERACION,
FIJ.CO_USUARIO = EXT.CO_USUARIO,
FIJ.IT_TIMESTAMP = SYSDATE )
WHEN NOT MATCHED THEN
INSERT /*+ APPEND*/ (
FIJ.CO_PAIS,
FIJ.NO_PAIS,
FIJ.CO_OPERACION,
FIJ.CO_USUARIO,
FIJ.IT_TIMESTAMP
)
VALUES
(
EXT.CO_PAIS,
EXT.NO_PAIS,
EXT.CO_OPERACION,
EXT.CO_USUARIO,
SYSDATE )
END;
/
QUIT;
------------------
el error que me da es :
SYSDATE )
*
ERROR at line 29:
ORA-06550: line 29, column 44:
PL/SQL: ORA-00933: SQL command not properly ended
ORA-06550: line 7, column 2:
PL/SQL: SQL Statement ignored
ORA-06550: line 30, column 4:
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 d ... y se queda allí
por favor es muy urgente
Gracias
Karina
Valora esta pregunta


0