Oracle ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小,使用shell脚本

Oracle ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小,使用shell脚本,oracle,shell,plsql,Oracle,Shell,Plsql,对于同一个查询,我看到了很多答案,但没有发现我的代码有任何问题。我在declare块中遇到此错误。p_pid是4位长的进程id。仅供参考,我使用bash脚本将一些参数传递给sql块 PL/Sql块 declare v_errorseq number := ${p_pid}; begin log_table_pkg.set_stamp_num(v_errorseq); log\u table\u pkg gv_stamp_n

对于同一个查询,我看到了很多答案,但没有发现我的代码有任何问题。我在declare块中遇到此错误。p_pid是4位长的进程id。仅供参考,我使用bash脚本将一些参数传递给sql块

PL/Sql块

      declare
          v_errorseq number := ${p_pid};
      begin
          log_table_pkg.set_stamp_num(v_errorseq);
log\u table\u pkg

    gv_stamp_num  number;
    gv_host_name  varchar2;
    gv_seq_num    varchar2;

    procedure set_stamp_num(p_stamp_num   number)
    is
    begin
    if p_stamp_num is null
    then
     raise_application_error(-20001,'Null stamp number.');
     end if;
     gv_stamp_num := p_stamp_num;
    end;

它无法构造,请提供正在传递的bash脚本所在的上下文!我像这样调用pl/sql脚本lf_execute_plsql-l$temp_log \-s“${v_plsql_string}”(一些查询)-p$C_PID(进程ID)它是一个大约2页的完整生产代码,所以不可能将它粘贴到这里。