[PL/SQL] Récupérer l'erreur

Récupérer l'erreur [PL/SQL] - SQL/NoSQL - Programmation

Marsh Posté le 28-12-2005 à 12:13:37    

Voilà voilà, j'ai ce script :
 

Code :
  1. -- TRAITEMENT DES FK
  2.    sAction := 'FK ';
  3.    p_WriteTrace('Traitement des clés étrangères' || chr(10), clTrace, bSend_Mail);
  4.    sSql := 'Select FK_NOM, FK_SCR, TAB_NOM From STD_FK Where FK_USE = ''O'' Order by TAB_NOM, FK_NOM';
  5.    Open CurFk For sSql;
  6.     Loop
  7.       Fetch CurFk Into sFK_NOM, sFK_SCR, sTAB_NOM;
  8.        Exit When CurFk%NotFound;
  9.              Select count(1) into nExists from user_tables where table_name = sTAB_NOM;
  10.              If (nExists = 1) AND (INSTR(sFK_SCR,'create',1) = 0) Then
  11.           sAction := 'Create FK '||sFK_NOM;
  12.                
  13.                 Begin
  14.                       Execute Immediate sFK_SCR;
  15.                 Exception
  16.                      When Others Then
  17.                        p_WriteTrace('Erreur d''Oracle ' || SQLERRM || ' ('|| SQLCODE || ')'||CHR(10), clTrace, bSend_Mail);
  18.                 End;


 
Or, je n'arrive pas a récupérer la trace de l'erreur :x
 
Merci de votre aide  [:ocube]  

Reply

Marsh Posté le 28-12-2005 à 12:13:37   

Reply

Marsh Posté le 28-12-2005 à 13:52:53    

que fait p_writetrace ?

Reply

Marsh Posté le 28-12-2005 à 14:44:02    

Vala :)
 

Code :
  1. PROCEDURE P_WriteTrace(aText In Varchar2, aClTrace In Out Nocopy Clob, abMail  In Boolean);
  2.       IS
  3.    Buff Varchar2(32767) := substrb(aText,1,32000);
  4.   Begin
  5.  
  6.     ma_base.ma_table.p_ins(substrb(aText, 1, 4000), True);
  7.     If abMail = True Then
  8.       Dbms_Lob.WriteAppend(aClTrace, Length(to_char(Sysdate, 'HH24:MI:SS')||' : '),to_char(Sysdate, 'HH24:MI:SS')||' : ');
  9.       Dbms_Lob.WriteAppend(aClTrace, Length(Buff),Buff);
  10.     End If;
  11. END P_WriteTrace;


Message édité par dajay le 28-12-2005 à 14:48:20
Reply

Marsh Posté le 28-12-2005 à 15:06:22    

apparemment l'erreur est inscrite dans une table, pour savoir où, regarde le code de ma_table.p_ins :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed