没有 WHERE 子句的 UPDATE 查询工作正常。但是当我使用 WHERE 子句时它显示错误
ORA-28536: error in processing Heterogeneous Services initialization parameters
ORA-28507: error in data dictionary view sys.hs$_class_init
ORA-02063: preceding 2 lines from MYSQL_ATULSSO
ORA-00604: error occurred at recursive SQL level 1
ORA-02067: transaction or savepoint rollback required
ORA-00604: error occurred at recursive SQL level 1
ORA-02067: transaction or savepoint rollback required.
我的代码:
DECLARE
A NUMBER(15) := 70;
B NUMBER(15) := 69;
BEGIN
UPDATE ATL1_SSO_ACCESS_REQ_DETAILS A SET A.REQ_ID = B;
DBMS_OUTPUT.PUT_LINE('done11');
UPDATE ATL1_SSO_ACCESS_REQ_DETAILS A SET A.REQ_ID = B WHERE A.REQ_ID = A;
COMMIT;
DBMS_OUTPUT.PUT_LINE('done');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('not done1');
COMMIT;
END;
输出: 完成1 未完成
最佳答案
我认为在 where 子句中使用表别名 A 可能是问题所在 尝试下面的代码
DECLARE
A NUMBER(15) := 70;
B NUMBER(15) := 69;
BEGIN
UPDATE ATL1_SSO_ACCESS_REQ_DETAILS A SET
A.REQ_ID = B;
DBMS_OUTPUT.PUT_LINE('done11');
UPDATE ATL1_SSO_ACCESS_REQ_DETAILS A SET
A.REQ_ID = B WHERE A.REQ_ID = 70;
DBMS_OUTPUT.PUT_LINE('done');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('not done1');
END;
关于mysql - 从 PL SQL 错误 ORA-28536 : error in processing Heterogeneous Services initialization parameters 更新 mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50885338/