【发布时间】:2021-03-02 00:26:28
【问题描述】:
我有一个创建的存储过程,它有一个输入参数和两个输出参数。
我想在匿名 PL/SQL 块中显示存储过程。
代码
CREATE OR REPLACE PROCEDURE task_one
(coun_id IN countries.country_id%TYPE,
coun_name OUT countries.country_name%TYPE,
reg_name OUT regions.region_name%TYPE) IS
BEGIN
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Error! No data found!');
END;
在这里你可以看到我的桌子
当我尝试在匿名块中执行该过程时,我收到一个错误,即行数过多。 为了阻止错误,我认为我可以使用 for 循环。但是,它也没有奏效。也许我尝试的方式根本不对。
这是尝试显示存储过程的匿名块
DECLARE
c_name countries.country_name%TYPE;
r_name regions.region_name%TYPE;
BEGIN
FOR c IN (SELECT country_name, region_name INTO c_name, r_name FROM Countries, Regions) LOOP
(task_one('CA', c_name, r_name)
DBMS_OUTPUT.PUT_LINE(c.c_name || ' ' || c.r_name);
END LOOP;
END;
【问题讨论】: