2011-01-12 5 views
13

私は入力がvarchar2であるOracle Database 10gのストアド・プロシージャを持っていますが、入力文字列が長い場合(正確な長さが8000を超えている可能性が高いとは限りません)に実行することに問題があります。Oracleストアドプロシージャのvarchar2入力のデフォルトサイズは何ですか?また、変更できますか?

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

create or replace PROCEDURE TESTPROC (intext IN VARCHAR2 

) AS .... 

intext varchar2の(デフォルト)サイズは?

このサイズは定義できますか(増加しますか)?

ありがとう

答えて

30

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

プロシージャは、最大32k(PL/SQLのVARCHAR2の最大サイズ)までのストリングをうまく受け入れる必要があります。 PL/SQLではなくSQLから呼び出された関数の場合、SQLでのVARCHAR2の最大サイズはわずか4kであるため、制限は4kになります。

関連する問題