18

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

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

create or replace PROCEDURE TESTPROC ( intext IN VARCHAR2

) AS ....

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

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

谢谢

4

1 回答 1

39

您不能为过程指定 VARCHAR2 参数的大小。

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

于 2011-01-13T00:02:09.880 回答