从Java插入时ORA-06502错误但在TOAD中正常工作

时间:2014-09-02 15:26:00

标签: java sql oracle ora-06502

我在Java表格中插入一行,下面出现以下错误。 但是在TOAD中执行的相同sql查询插入我的数据没有问题。

插入:

INSERT INTO TRAVAUX_FICHE(date1, date2, description, cie , work_id) 
VALUES(TO_DATE('2014-08-15','yyyy-MM-dd'), TO_DATE('2014-08-15','yyyy-MM-dd'), 'test', 'test','test');

错误

ORA-20999: TAPI--6502:ORA-06502: PL/SQL: numeric or value error: character string buffer too small
TAPI--6502:ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "PILOTAGE.CG$ERRORS", line 87
ORA-06512: at "PERMIS.CG$TRAVAUX_FICHE", line 557
ORA-06512: at "PERMIS.CG$BIR_TRAVAUX_FICHE", line 51
ORA-04088: error during execution of trigger 'PERMIS.CG$BIR_TRAVAUX_FICHE'

为TRIGGER CODE编辑(我没有编写触发器代码,我认为它是生成的):

CREATE OR REPLACE TRIGGER cg$BIR_TRAVAUX_FICHE

BEFORE INSERT ON TRAVAUX_FICHE FOR EACH ROW
DECLARE
cg$rec cg$TRAVAUX_FICHE.cg$row_type;
cg$ind cg$TRAVAUX_FICHE.cg$ind_type;
BEGIN
--  Application_logic Pre-Before-Insert-row <<Start>>
--  Application_logic Pre-Before-Insert-row << End >>

--  Load cg$rec/cg$ind values from new

cg$rec.NO_TRAV_FICHE_SQ := :new.NO_TRAV_FICHE_SQ;
cg$ind.NO_TRAV_FICHE_SQ := TRUE;
cg$rec.DATE_DEBUT := :new.DATE_DEBUT;
cg$ind.DATE_DEBUT := TRUE;
cg$rec.DATE_FIN := :new.DATE_FIN;
cg$ind.DATE_FIN := TRUE;
cg$rec.DESCRIPTION := :new.DESCRIPTION;
cg$ind.DESCRIPTION := TRUE;
cg$rec.COMPAGNIE := :new.COMPAGNIE;
cg$ind.COMPAGNIE := TRUE;
cg$rec.NUM_APPEL_OFFRE := :new.NUM_APPEL_OFFRE;
cg$ind.NUM_APPEL_OFFRE := TRUE;
cg$rec.DATE_CREATION := :new.DATE_CREATION;
IF (:new.DATE_CREATION IS NULL) THEN
    cg$ind.DATE_CREATION := FALSE;
ELSE
    cg$ind.DATE_CREATION := TRUE;
END IF;
cg$rec.USAGER_CREATION := :new.USAGER_CREATION;
IF (:new.USAGER_CREATION IS NULL) THEN
    cg$ind.USAGER_CREATION := FALSE;
ELSE
    cg$ind.USAGER_CREATION := TRUE;
END IF;
cg$rec.DATE_MODIFICATION := :new.DATE_MODIFICATION;
IF (:new.DATE_MODIFICATION IS NULL) THEN
    cg$ind.DATE_MODIFICATION := FALSE;
ELSE
    cg$ind.DATE_MODIFICATION := TRUE;
END IF;
cg$rec.USAGER_MODIFICATION := :new.USAGER_MODIFICATION;
IF (:new.USAGER_MODIFICATION IS NULL) THEN
    cg$ind.USAGER_MODIFICATION := FALSE;
ELSE
    cg$ind.USAGER_MODIFICATION := TRUE;
END IF;

if not (cg$TRAVAUX_FICHE.called_from_package) then
    cg$TRAVAUX_FICHE.validate_arc(cg$rec);
    cg$TRAVAUX_FICHE.validate_domain(cg$rec);

    cg$TRAVAUX_FICHE.ins(cg$rec, cg$ind, FALSE);
    cg$TRAVAUX_FICHE.called_from_package := FALSE;
end if;

cg$TRAVAUX_FICHE.cg$table(cg$TRAVAUX_FICHE.idx).NO_TRAV_FICHE_SQ := cg$rec.NO_TRAV_FICHE_SQ;
cg$TRAVAUX_FICHE.cg$tableind(cg$TRAVAUX_FICHE.idx).NO_TRAV_FICHE_SQ := cg$ind.NO_TRAV_FICHE_SQ;

cg$TRAVAUX_FICHE.cg$table(cg$TRAVAUX_FICHE.idx).DATE_DEBUT := cg$rec.DATE_DEBUT;
cg$TRAVAUX_FICHE.cg$tableind(cg$TRAVAUX_FICHE.idx).DATE_DEBUT := cg$ind.DATE_DEBUT;

cg$TRAVAUX_FICHE.cg$table(cg$TRAVAUX_FICHE.idx).DATE_FIN := cg$rec.DATE_FIN;
cg$TRAVAUX_FICHE.cg$tableind(cg$TRAVAUX_FICHE.idx).DATE_FIN := cg$ind.DATE_FIN;

cg$TRAVAUX_FICHE.cg$table(cg$TRAVAUX_FICHE.idx).DESCRIPTION := cg$rec.DESCRIPTION;
cg$TRAVAUX_FICHE.cg$tableind(cg$TRAVAUX_FICHE.idx).DESCRIPTION := cg$ind.DESCRIPTION;

cg$TRAVAUX_FICHE.cg$table(cg$TRAVAUX_FICHE.idx).COMPAGNIE := cg$rec.COMPAGNIE;
cg$TRAVAUX_FICHE.cg$tableind(cg$TRAVAUX_FICHE.idx).COMPAGNIE := cg$ind.COMPAGNIE;

cg$TRAVAUX_FICHE.cg$table(cg$TRAVAUX_FICHE.idx).NUM_APPEL_OFFRE := cg$rec.NUM_APPEL_OFFRE;
cg$TRAVAUX_FICHE.cg$tableind(cg$TRAVAUX_FICHE.idx).NUM_APPEL_OFFRE := cg$ind.NUM_APPEL_OFFRE;

cg$TRAVAUX_FICHE.cg$table(cg$TRAVAUX_FICHE.idx).DATE_CREATION := cg$rec.DATE_CREATION;
cg$TRAVAUX_FICHE.cg$tableind(cg$TRAVAUX_FICHE.idx).DATE_CREATION := cg$ind.DATE_CREATION;

cg$TRAVAUX_FICHE.cg$table(cg$TRAVAUX_FICHE.idx).USAGER_CREATION := cg$rec.USAGER_CREATION;
cg$TRAVAUX_FICHE.cg$tableind(cg$TRAVAUX_FICHE.idx).USAGER_CREATION := cg$ind.USAGER_CREATION;

cg$TRAVAUX_FICHE.cg$table(cg$TRAVAUX_FICHE.idx).DATE_MODIFICATION := cg$rec.DATE_MODIFICATION;
cg$TRAVAUX_FICHE.cg$tableind(cg$TRAVAUX_FICHE.idx).DATE_MODIFICATION := cg$ind.DATE_MODIFICATION;

cg$TRAVAUX_FICHE.cg$table(cg$TRAVAUX_FICHE.idx).USAGER_MODIFICATION := cg$rec.USAGER_MODIFICATION;
cg$TRAVAUX_FICHE.cg$tableind(cg$TRAVAUX_FICHE.idx).USAGER_MODIFICATION := cg$ind.USAGER_MODIFICATION;

cg$TRAVAUX_FICHE.idx := cg$TRAVAUX_FICHE.idx + 1;

:new.NO_TRAV_FICHE_SQ := cg$rec.NO_TRAV_FICHE_SQ;
:new.DATE_DEBUT := cg$rec.DATE_DEBUT;
:new.DATE_FIN := cg$rec.DATE_FIN;
:new.DESCRIPTION := cg$rec.DESCRIPTION;
:new.COMPAGNIE := cg$rec.COMPAGNIE;
:new.NUM_APPEL_OFFRE := cg$rec.NUM_APPEL_OFFRE;
:new.DATE_CREATION := cg$rec.DATE_CREATION;
:new.USAGER_CREATION := cg$rec.USAGER_CREATION;
:new.DATE_MODIFICATION := cg$rec.DATE_MODIFICATION;
:new.USAGER_MODIFICATION := cg$rec.USAGER_MODIFICATION;

--  Application_logic Post-Before-Insert-row <<Start>>
--  Application_logic Post-Before-Insert-row << End >>
END;
/

你有什么想法吗?

由于

0 个答案:

没有答案