【问题标题】:oracle proc to update one table using another via dblinkoracle proc 通过 dblink 使用另一个表更新一个表
【发布时间】:2019-11-27 00:58:00
【问题描述】:

我在运行我的存储过程时一直遇到这个执行错误。它应该从表 1 中选择一些值到几个变量中,在使用数据库链接的选择中使用这些值,并从链接的数据库表 2 中获取值,然后更新第一个表。

[错误] 执行 (1:2): ORA-01403: 未找到数据 ORA-06512: 在“ASSGN_OF_ID”第 24 行 ORA-06512: 在第 1 行

CREATE OR REPLACE PROCEDURE ASSGN_OF_ID
IS
  v_transID varchar2 (30);
  v_person_id NUMBER (12);
  v_long_id NVARCHAR2 (15);
  v_tranactions_date date;
  v_assgn_id varchar2 (30);
  v_t_emp_id varchar2 (30);
BEGIN
  select max(transID) into v_transID from tranactions;
--
  select personid, tranactionsdtm into v_person_id, v_tranactions_date
  from tranactions
  where transID = v_transID;
--
  select lirrnum into v_long_id
  from ptsadmin.person
  where personid = v_person_id;
--
  select emp_mstr_id into v_t_emp_id
  from wok.emp_mstr@T_DBLINK
  where emp_nbr = v_long_id;
--
  select asgn_id into v_assgn_id
  from wok.slip_mstr@T_DBLINK
  where emp_mstr_id = v_t_emp_id
  and trunc(v_tranactions_date) = trunc(eff_date_time);
--
  update tranactions set t_asgn_id = v_assgn_id where transID = v_transID;
--
  COMMIT;
END;

在这一行停止

select emp_mstr_id into v_t_emp_id
from wok.emp_mstr@T_DBLINK
where emp_nbr = v_long_id;

如果运行之前的行以及如果我使用预定义的值运行语句它们可以工作,我看不出如何没有数据。

【问题讨论】:

  • 我建议使用DBMS_OUTPUT.PUT_LINE() 打印分配给变量的值。
  • 您为 MySQL 标记了这个,但似乎没有在任何地方使用 MySQL。这看起来是 Oracle 中的 PL/SQL 过程。 “它停止了”是什么意思?那代码块?它会引发错误吗?如果是这样,什么错误?
  • 我发誓我真的知道一些东西,直到我来这里问,我用那个输出线想通了,谢谢!

标签: mysql sql oracle debugging


【解决方案1】:

DBMS_OUTPUT.PUT_LINE() 告诉我出了什么问题,愚蠢的我,谢谢大家

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多