SQL к синтаксису IBMDB2 - PullRequest
       46

SQL к синтаксису IBMDB2

0 голосов
/ 03 марта 2020

Я пытаюсь выполнить следующий сценарий SQL внутри IBMDB2, но не могу получить синтаксически правильный сценарий для IBMDB2;

BEGIN TRY

    BEGIN TRANSACTION

    if not exists (select * from AAA.BBBB WHERE COL1='[Param.1]' and COL2=[Param.2] and COL3='[Param.3]')
    begin
        INSERT INTO PRODFILE.MESUPPF (COL1, COL2, COL3, COL4,  COL5, COL6)
        VALUES( '[Param.1]', [Param.2], '[Param.3]', '[Param.4]' , '[Param.5]', '[Param.6]' )
    end
    else
    begin
        update AA.BB set COL1='[Param.4]',COL2='[Param.5]',COL3='[Param.6]'  WHERE COL4='[Param.1]' and COL5=[Param.2] and COL6='[Param.3]')
    end
    Select  'Success'  as Message, 'S' as MessageType

END TRY
BEGIN CATCH

    ROLLBACK TRANSACTION

    INSERT INTO ERROR_LOG (LOGTM,LOGTX) VALUES (getdate(),CAST(ERROR_LINE()AS VARCHAR(4)) + ERROR_MESSAGE())
    Select  'Error'  as Message, 'E' as MessageType

END CATCH

1 Ответ

0 голосов
/ 03 марта 2020

DB2 для IBM i не позволяет выполнять составные sql операторы вне SQL подпрограмм.
См. CREATE PROCEDURE (SQL) о том, как создать такую ​​подпрограмму с диалектом высказываний DB2 внутри.

...