【发布时间】: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