mysql - 从 PL SQL 错误 ORA-28536 : error in processing Heterogeneous Services initialization parameters 更新 mysql 表

标签 mysql oracle heterogeneous-services

没有 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/

相关文章:

android - Oracle 数据库移动服务器与 Couchdb

sql-server - 通过数据库链接将 Oracle 连接到 SQL Server

MySql 准备语句 - 是否可以参数化列名或函数名?

php - 为什么我的password_verify函数与我输入的正确密码不匹配并且知道数据库中的密码是什么

sql - 在 Oracle 中使用数据透视表的建议

mysql - 如何连接 Oracle 中的三个表,其中一个表的外键列中有空值?

php - 如何用 Eloquent 方式在数据透视表中获取具有特定属性的所有项目?

php - 如何使用 PHP 从 MYSQL 中选择特定的行?

c++ - 语言整合

java - 使用 PL/SQL 调用使用 JDBC 连接到 SQL Server 数据库的 java 方法