对Oracle存储过程的varchar2输入的默认大小是多少,是否可以更改?

Ger*_*ton 16 oracle stored-procedures varchar2

我在Oracle数据库10g中有一个存储过程,我的输入是varchar2,但是当输入字符串很长时(我不确定精确长度可能> 8000),我遇到了问题.

我的想法是'intext varchar2'(如下所示)默认是太小了.在我需要更长字符串的其他情况下,我可能将varchar2定义为"intext2 VARCHAR2(32767);" 我尝试在下面的代码中类似地定义大小,但我的语法不正确.

create or replace PROCEDURE TESTPROC ( intext IN VARCHAR2

) AS ....
Run Code Online (Sandbox Code Playgroud)

intext varchar2的(默认)大小是多少?

可以定义(增加)该大小吗?

谢谢

Jus*_*ave 36

您无法为过程指定VARCHAR2参数的大小.

该过程应该很乐意接受最大32k的字符串(PL/SQL中VARCHAR2的最大大小).如果它是从SQL而不是PL/SQL调用的函数,则限制为4k,因为SQL中VARCHAR2的最大大小仅为4k.