[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Code:
    Create procedure MK/prc_atest    (
    INOUT IO_CODE CHAR(5) ,           
    INOUT IO_MSG  CHAR(132) ,         
    IN ADBACTION  CHAR(3 )            
                            )         
    LANGUAGE SQL                      
    SPECIFIC MK/prc_atest             
    ..
    ..
    
    Begin 
    DECLARE CONTINUE HANDLER FOR 2
    SQLSTATE '23505';
    (Wobei 23505 für den zu ersetzenden Code steht)
    oder
    Code:
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION 1
    SET vsqlcode = SQLCODE;
    lg Andreas

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Ein Continue Handler ist der richtige Weg.
    Es gibt allerdings auch die Quick und Dirty-Lösung, nämlich, dass man prüft ob die Tabelle in der Catalog View SYSTABLES vorhanden ist.
    Ist sie vorhanden, dann Löschen ansonsten nicht.

    Code:
    Declare isFound Integer;
    ....
    
    Set isFound = 0;
    
    Select 1 into isFound
    From SysTables
    Where     System_Table_Name   = 'STPSUM'
          and System_Table_Schema = 'MK';
    
    If isFound = 1 Then Drop Table MK/STPSUM;
    End If;
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Jan 2001
    Beiträge
    850

    Thumbs up

    Hallo zusammen

    so klappt es:

    PHP-Code:
    ...
    ...                                                
    DECLARE CONTINUE 
    HANDLER FOR SQLEXCEPTION       
      Begin                                         
       set IO_Code
    =SQLCODE ;                        
      
    End;
    ...
    ..
     
    drop table mk/stpsum  ;                      
        
    set IO_Code='001'   ;                     
        
    set io_Msg  'table delete ' ;           
                                                  
     
    create table mk/stpsum                       
        
    as(  select grp as GRPSUM,                
              
    decsum(QTY) , 10 0) as SumQty 
              
    decsum(AMT) , 10 2) as SumAMt   
         FROM mk
    /stp GROUP BY grp)                
         
    with  data   ;                           
                                                  
        
    set IO_Code='002'   ;                     
        
    set io_Msg  'table erstellt ' 
    Dieses Forum und die fachliche Kompetenz ist einfach Spitze

    Vielen Dank

Similar Threads

  1. SQL Stored Procedure / Bibliotheksliste
    By olbe in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 19-08-08, 13:35
  2. SQL-Fehler -514 beim Aufruf eines variablen SQL über Stored Procedure
    By HDPSTANEKE in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 21-06-07, 14:33
  3. Berechtigung für Stored Procedure
    By rebe in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 12-10-06, 11:22
  4. SQL Stored Procedure verschwindet
    By florian in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 17-05-06, 16:08
  5. Stored Procedure SQL Cursor Update
    By Jenne in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 14-06-05, 14:00

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •