如何在PLSQL中获得一个超过4000个字符的字符串作为存储过程的输入



我在oracle中有一个存储过程,它通过varchar2类型的输入参数进行字符串输入,我相信4000字节是我们可以通过该参数的最大长度,我需要在输入中有更多的字符,什么是可行的解决方案?

一种选择是使用CLOB数据类型。

不过,你确定你在说什么吗?它是11g,并且在传递超过4000个字符的参数时没有问题:

SQL> create or replace procedure p_test (par_str in varchar2)
2  is
3    l_len number;
4  begin
5    l_len := length(par_str);
6    dbms_output.put_line('length of l_len = ' || l_len);
7  end;
8  /
Procedure created.
SQL> set serveroutput on
SQL> declare
2    l_val varchar2(5000);
3  begin
4    l_val := lpad('x', 5000, 'x');
5    dbms_output.put_line('length of l_val = ' || length(l_val));
6
7    p_test(l_val);
8  end;
9  /
length of l_val = 5000
length of l_len = 5000
PL/SQL procedure successfully completed.
SQL>

在PL/SQL中,varchar2的最大长度为32767

您可以将上述长度的字符串传递给过程。

最新更新