[MDEV-27504] sql_mode="oracle" cannot commit or rollback in stored code 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   

COMMIT/ROLLBACK statement is not allowed in package, procedure or function

CREATE  FUNCTION UPD_NEXT_EXPIRE_DT(in_info_group  INTEGER,
in_use_term  NUMBER) RETURN NUMBER AS
 
    CURSOR sel_auto_client IS
        SELECT CLIENT_CD, EXPIRE_DT FROM SERVICE_COMMISSION_CHARGE
        WHERE INFO_GROUP = in_info_group AND USED_STS IN (1,2) AND
        FREE_EXTENSION_FLG = 1 AND EXPIRE_DT != '02-12-31';
 
 
    out_trade_dt DATE;
    out_contract_dt DATE;
    out_expire_dt DATE;
    today_dt VARCHAR2(10);
    out_upd_count NUMBER;
 
BEGIN
 
    FOR S_REC IN sel_auto_client LOOP
 
        SELECT TO_CHAR(S_REC.EXPIRE_DT+1,'YYYYMMDD') INTO today_dt FROM DUAL;
        INFO_CHARGE_PKG.GET_CONTRACT_DT( in_info_group, in_info_group, today_dt,
          600, out_trade_dt, out_contract_dt );
 
 
        SELECT ADD_MONTHS(out_contract_dt, in_use_term)-1 INTO
          out_expire_dt FROM DUAL;
 
        UPDATE SERVICE_COMMISSION_CHARGE SET NEXT_EXPIRE_DT = out_expire_dt,
          LST_UPD_DT = SYSDATE
            WHERE INFO_GROUP = in_info_group AND CLIENT_CD = S_REC.CLIENT_CD;
 
 
        out_upd_count := sel_auto_client%ROWCOUNT;
 
    END LOOP;
    COMMIT;
 
    RETURN out_upd_count;
 
EXCEPTION
 
        WHEN OTHERS THEN
            ROLLBACK;
            raise_application_error(-20201,SQLERRM);
 
END UPD_NEXT_EXPIRE_DT;
 
 
/

errors with:
ERROR 1422 (HY000): Explicit or implicit commit is not allowed in stored function or trigger



 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:25 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.