我在Oracle数据库10g中有一个存储过程,我的输入是一个varchar2,但是当输入字符串很长时(我不知道确切的长度可能> 8000),我遇到了问题。
我的想法是'intext varchar2'(如下所示)默认是太小了。在我需要更长字符串的其他情况下,我可能将varchar2定义为“intext2 VARCHAR2(32767);”我尝试在下面的代码中类似地定义大小,但我的语法不正确。
create or replace PROCEDURE TESTPROC ( intext IN VARCHAR2
) AS ....
intext varchar2的(默认)大小是什么?
是否可以定义(增加)该大小?
感谢
答案 0 :(得分:34)
您无法为过程指定VARCHAR2参数的大小。
该过程应该很乐意接受最大32k的字符串(PL / SQL中VARCHAR2的最大大小)。如果它是从SQL而不是PL / SQL调用的函数,那么限制将是4k,因为SQL中VARCHAR2的最大大小只有4k。