无法执行存储过程出现错误[重复]
Posted
技术标签:
【中文标题】无法执行存储过程出现错误[重复]【英文标题】:unable to execute a store procedure getting error [duplicate] 【发布时间】:2013-12-16 06:41:12 【问题描述】:谁能帮我在 PL/SQL 中执行以下过程。我收到错误
declare
TYPE c_charge_code_arra IS TABLE OF VARCHAR2(20) INDEX BY PLS_INTEGER;
myarray c_charge_code_arra;
out_val number := 12;
begin
myarray(0) := 'hg';
BRANCH_BKK.air_pkg.airinvoice_pd('01','13070410012','4610032','A','IN','bkkrp_bkk','Asia/Bangkok','56YUSEN',null,myarray,null,'B',out_val);
end;
Error at line 1
ORA-06550: line 7, column 2:
PLS-00306: wrong number or types of arguments in call to 'AIRINVOICE_PD'
ORA-06550: line 7, column 2:
PL/SQL: Statement ignored
下面是包声明。当我尝试执行以下过程时,出现上述错误。提前致谢
CREATE OR REPLACE PACKAGE BRANCH_BKK.air_pkg AS
TYPE c_charge_code_arra IS TABLE OF VARCHAR2(20) INDEX BY PLS_INTEGER;
PROCEDURE airinvoice_pd (in_company IN varchar2,
in_file_no IN varchar2,
c_reference IN varchar2,
in_run_option IN varchar2,
in_invoice_type IN varchar2,
in_user IN varchar2,
c_time_zone in varchar2,
in_payor_code IN varchar2,
in_payor_reference IN varchar2,
i_charge_code IN c_charge_code_arra,
in_invoice_number IN varchar2,
in_invoice_against IN varchar2,
out_message OUT varchar2);
【问题讨论】:
你甚至不告诉 use 错误是什么。 抱歉问题不完整。我已经编辑了这个问题。你能帮帮我吗 【参考方案1】:问题在于您声明 myarray.您试图在调用脚本中重新声明表类型,而您需要声明包规范中定义的表类型的变量:
DECLARE
myarray BRANCH_BKK.air_pkg.c_charge_code_arra;
out_val NUMBER := 12;
BEGIN
myarray (0) := 'hg';
BRANCH_BKK.air_pkg.airinvoice_pd ('01',
'13070410012',
'4610032',
'A',
'IN',
'bkkrp_bkk',
'Asia/Bangkok',
'56YUSEN',
NULL,
myarray,
NULL,
'B',
out_val
);
END;
【讨论】:
以上是关于无法执行存储过程出现错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章