0

我在我的 shell 脚本中调用了一个 SP。下面提到的是输入参数,它们的数据类型通过 SP 传递:-

p_1 IN VARCHAR2   
p_2 IN VARCHAR2      
p_3 IN NUMBER DEFAULT 0    
p_4 IN VARCHAR2 DEFAULT 'A'    
p_5 IN NUMBER DEFAULT NULL     
p_6 OUT NUMBER
p_7 OUT VARCHAR2

我传递变量的shell脚本中的片段如下所示: -

echo "var p_6 number;" >> $output.txt
echo "var p_7 varchar2(5000);" >> $output.txt

echo "exec call_sp('p_1','p_2',0,'A',null,:p_6,:p_7);" >> $output.txt
echo "exit" >> $output.txt

当我执行 shell 脚本时,我在日志中收到以下错误:-

BEGIN CALL_SP('1','Art',0 ,'A' ,null ,:p_6,:p_7); END;
  *
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'CALL_SP'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

传递给变量的最终值是:-

p_1 -> '1'
p_2 -> 'Art'
p_3 -> 0
p_4 -> 'A'
p_5 -> null

此处的任何帮助将不胜感激,以快速解决我遇到的此错误。

谢谢。

4

0 回答 0