web-dev-qa-db-ja.com

Oracleストアドプロシージャへのvarchar2入力のデフォルトサイズはどのくらいですか?変更できますか?

私の入力がvarchar2であるOracle Database 10gにストアドプロシージャがありますが、入力文字列が長い(正確な長さがおそらく> 8000であるかどうかわからない)ときに実行するのに問題があります。

私の考えでは、「intext varchar2」(以下)はデフォルトでは小さすぎます。長い文字列が必要な他のケースでは、varchar2を "intext2 VARCHAR2(32767);"と定義する場合があります。以下のコードで同様にサイズを定義しようとしましたが、構文が正しくありません。

create or replace PROCEDURE TESTPROC ( intext IN VARCHAR2

) AS ....

Intext varchar2の(デフォルトの)サイズは何ですか?

そのサイズを定義(拡大)できますか?

ありがとう

16
Gern Blanston

プロシージャにVARCHAR2パラメータのサイズを指定することはできません。

プロシージャは、最大32kの文字列(PL/SQLのVARCHAR2の最大サイズ)を問題なく受け入れます。 PL/SQLではなくSQLから呼び出された関数の場合、SQLのVARCHAR2の最大サイズは4kしかないため、制限は4kになります。

38
Justin Cave