[MDEV-27503] sql_mode="oracle" EXECUTE IMMEDIATE statement with USING IN is not supported Created: 2020-05-14  Updated: 2024-01-12

Status: Open
Project: MariaDB Server
Component/s: None
Fix Version/s: None

Type: Task Priority: Major
Reporter: Manjot Singh (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: Compatibility, Oracle


 Description   

EXECUTE IMMEDATE ... USING IN var1, var2, var3; is not supported

CREATE OR REPLACE PROCEDURE         SP_UPDRSPRESULT(
    I_RSP_NO  VARCHAR2,
    I_RESULT  VARCHAR2,
    I_POINT   VARCHAR2,
    I_LEVEL   VARCHAR2
)
IS
    VSQL    VARCHAR2(1000);
BEGIN
    VSQL := '';
    VSQL := VSQL || 'UPDATE /* APL-020000140 */ HAPPY_ASSIGN_CLNT A ';
    VSQL := VSQL ||  'SET A.ASSIGN_POINT = :1 ';
    VSQL := VSQL ||    ', A.ASSIGN_LEVEL = :2 ';
    VSQL := VSQL ||    ', A.RESULT_CD    = :3 ';
    VSQL := VSQL ||    ', A.RECEIVE_DT   = SYSDATE ';
    VSQL := VSQL ||    ', A.UPDATE_DT    = SYSDATE ';
    VSQL := VSQL ||    ', A.UPDATE_PRG_ID = ''RB_RSPRESULT'' ';
    VSQL := VSQL || 'WHERE A.RSP_ASSIGN_NO = :4 ';
    VSQL := VSQL || '';
 
    EXECUTE IMMEDIATE VSQL USING IN I_POINT, I_LEVEL, I_RESULT, I_RSP_NO ;
 
    IF SQL%ROWCOUNT <> 1 THEN
      DBMS_OUTPUT.PUT_LINE('WARN:·ë²Ì¹¹¿·ÂоÝ̵¤· RSP_NO=' || I_RSP_NO ||' ·ë²ÌCD=' || I_RESULT);
    END IF;
 
EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('WARN:ORACLE_ERROR RSP_NO=' || I_RSP_NO ||' ·ë²ÌCD=' || I_RESULT);
    RAISE;
END;



 Comments   
Comment by Julien Fritsch [ 2020-06-02 ]

manjot We only support the most important subset of PL/SQL so far. This MENT is a features which is outside of the currently supported subset.

Generated at Thu Feb 08 09:53:24 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.