mk
14-08-12, 14:11
Hallo zusammen,
ich suche gerade eine Möglichkeit einen Fehler
( eine Bedingung ) im SQL abzufangen.
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 ASQLMSG CHAR(32740) ;
DECLARE SQLCODE INTEGER ;
DECLARE SQLSTATE CHAR(5) ;
if ( aDbaction = 'GO') THEN
-- CALL QCMDEXC('dltf mk/stpsum', 000000015.00000);
--drop table mk/stpsum ;
--if ( SQLSTATE = '42704') then
-- set io_code = 'y999' ;
--End if;
create table mk/stpsum
as( select grp as GRPSUM,
dec( sum(QTY) , 10 , 0) as SumQty ,
dec( sum(AMT) , 10 , 2) as SumAMt
FROM mk/stp GROUP BY grp)
with data ;
set IO_Code='001' ;
return 0 ;
End if;
set io_code = 'xxxx' ;
set io_Msg = 'aDbAction code ' concat adbaction concat '=';
END ;
COMMENT ON SPECIFIC PROCEDURE MK/prc_atest
IS 'SQL Procedure MK/prc_atest ' ;
Mit dieser SQL Prozedur soll die Tabelle mk/stpsum ( später weitere Tabellen )
erstellt werden.
Ich muss die Tabellen vorher Löschen
Also eine Drop Table verwenden.
Der Drop Table läuft auf eine Exception wenn die Tabelle schon da ist.
Damit das Programm weiterläuft muss diese
Bedingung abgefangen werden.
Weiß jemand wie das geht ?
Gruß
Michael
ich suche gerade eine Möglichkeit einen Fehler
( eine Bedingung ) im SQL abzufangen.
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 ASQLMSG CHAR(32740) ;
DECLARE SQLCODE INTEGER ;
DECLARE SQLSTATE CHAR(5) ;
if ( aDbaction = 'GO') THEN
-- CALL QCMDEXC('dltf mk/stpsum', 000000015.00000);
--drop table mk/stpsum ;
--if ( SQLSTATE = '42704') then
-- set io_code = 'y999' ;
--End if;
create table mk/stpsum
as( select grp as GRPSUM,
dec( sum(QTY) , 10 , 0) as SumQty ,
dec( sum(AMT) , 10 , 2) as SumAMt
FROM mk/stp GROUP BY grp)
with data ;
set IO_Code='001' ;
return 0 ;
End if;
set io_code = 'xxxx' ;
set io_Msg = 'aDbAction code ' concat adbaction concat '=';
END ;
COMMENT ON SPECIFIC PROCEDURE MK/prc_atest
IS 'SQL Procedure MK/prc_atest ' ;
Mit dieser SQL Prozedur soll die Tabelle mk/stpsum ( später weitere Tabellen )
erstellt werden.
Ich muss die Tabellen vorher Löschen
Also eine Drop Table verwenden.
Der Drop Table läuft auf eine Exception wenn die Tabelle schon da ist.
Damit das Programm weiterläuft muss diese
Bedingung abgefangen werden.
Weiß jemand wie das geht ?
Gruß
Michael