Sql Oracle:使用表类型输入变量执行存储过程
当我试图调试一个现有的应用程序时,我发现了一个方法,它是执行一个显示错误的存储过程。我想在Oracle SQLDeveloper上执行存储过程,给定过程:Sql Oracle:使用表类型输入变量执行存储过程,sql,oracle,stored-procedures,oracle11g,Sql,Oracle,Stored Procedures,Oracle11g,当我试图调试一个现有的应用程序时,我发现了一个方法,它是执行一个显示错误的存储过程。我想在Oracle SQLDeveloper上执行存储过程,给定过程: type numTableType is table of NUMBER index by binary_integer; PROCEDURE up_correction_status(p_exp_check_id IN numTableType, p_status_id NUMBER, p_user_id NUMBER, p_return
type numTableType is table of NUMBER index by binary_integer;
PROCEDURE up_correction_status(p_exp_check_id IN numTableType, p_status_id NUMBER, p_user_id NUMBER, p_return OUT NUMBER);
但是,如何声明numTableType
的值
我试图:
var p_return NUMBER;
execute "PKG_PDM_DASHBOARD".up_approved_corr_status(1, 2, 11, :p_return);
print p_return;
发现此错误:
从命令中的第2行开始出错:
执行“包装PDM仪表板”。向上批准更正状态(1,2,11,:p\U返回)
错误报告:
ORA-06550:第1行第8列:
PLS-00306:调用“UP_APPROVED_CORR_STATUS”时参数的数量或类型错误
ORA-06550:第1行第8列:
PL/SQL:忽略语句
只需要执行它并获取返回值,您的
类型
可以在包中使用。在包外部,您必须创建类型
对于具有此类复杂类型参数的过程的执行,请使用pl/sql匿名块。执行模板:
declare
X tableType;
begin
X(1) := 1;
P(X);
end;
程序的主体在哪里?对不起,添加了一些信息。您能告诉我如何执行这种程序吗