반응형
ORA-14551 cannot perform a DML operation inside a query
Cause: DML operation like insert, update, delete or select-for-update cannot be performed inside a query or under a PDML slave.
Action: Ensure that the offending DML operation is not performed or use an autonomous transaction to perform the DML operation within the query or PDML slave.
Function 내부에서 DML 이 사용된 경우 발생하는 오류입니다.
함수에서 DML이 필요한 경우 다음으로 처리합니다.
FUNCTION myFunc (
V_PARAM IN VARCHAR2
) RETURN NVARCHAR2 AS
PRAGMA AUTONOMOUS_TRANSACTION; -- 추가 필요
V_RETURN NVARCHAR2(10);
BEGIN
V_RETURN := 'SUCCESS';
INSERT INTO EMP(EMPNO, EMP_NAME) VALUES (1, 'EMP');
UPDATE EMP SET EMP_NAME = 'EMP' WHERE EMPNO = '1';
DELETE EMP WHERE EMPNO = '1';
COMMIT; -- 추가 필요
RETURN V_RETURN;
END;
반응형
'Dev > DataBase' 카테고리의 다른 글
[MariaDB] ERROR 1406 (22001): Data too long for column 'id' at row 1 (1) | 2023.01.13 |
---|---|
ORACLE/MYSQL timestamp 구하기 (0) | 2022.08.18 |
MySQL ERROR 1231 "NO_AUTO_CREATE_USER" (0) | 2022.04.06 |
MySQL/MariaDB SQL_MODE 설정 (0) | 2022.04.06 |
MariaDB 덤프 생성 definer 제거 (0) | 2022.03.21 |