【发布时间】:2019-05-21 18:44:05
【问题描述】:
调用过程时出现此错误。我正在尝试做这个练习。
创建一个名为 find_region_and_currency 的过程来获取和返回一个国家所在的货币和地区。 将 COUNTRY_NAME 作为 IN 参数传递,并使用用户定义的记录作为 OUT 参数,返回国家名称、地区和货币。
我从这里尝试了旧答案,但我没有这样做。你能帮帮我吗?
CREATE OR REPLACE PACKAGE traveler_assistance_package
IS
TYPE country_rec IS RECORD (
country_name COUNTRIES.COUNTRY_NAME%TYPE,
region COUNTRIES.REGION_ID%TYPE,
currency COUNTRIES.CURRENCY_CODE%TYPE);
PROCEDURE find_region_and_currency
(p_country_name IN COUNTRIES.country_name%TYPE,
p_country_rec OUT country_rec);
END traveler_assistance_package;
CREATE OR REPLACE package body traveler_assistance_package
IS
PROCEDURE find_region_and_currency
(p_country_name IN countries.country_name%TYPE,
p_country_rec OUT country_rec)
IS
BEGIN
SELECT country_name, region_id, currency_code INTO p_country_rec
FROM COUNTRIES
where COUNTRY_NAME = p_country_name;
DBMS_OUTPUT.PUT_LINE('Country Name:'||p_country_rec.country_name ||
'Region:' || p_country_rec.region ||
'Currency:' || p_country_rec.currency);
END;
END traveler_assistance_package;
【问题讨论】:
-
由于在您尝试调用该过程时会发生错误,因此显示执行调用的代码会很有帮助。
-
我正在调用这样的包裹“开始 traveler_assistance_package.find_region_and_currency('Republic of Bolivia'); end”,因为“Republic of Bolivia”是我的输入参数。然后我在调用“FIND_REGION_AND_CURRENCY”错误时得到错误数量或类型的参数。
-
嗯..这个过程有两个参数,你只传递一个。似乎错误的含义很清楚。 Littlefoot 的回答显示了如何使用两个参数调用过程的示例。
标签: oracle stored-procedures plsql