web-dev-qa-db-ja.com

Oracleのvarchar2PL / SQLサブプログラム引数のサイズ制限は何ですか?

Oracle PL/SQLでプロシージャ(または関数)を作成する場合、varchar2引数の最大長を指定することはできず、データ型のみを指定できます。例えば

create or replace procedure testproc(arg1 in varchar2) is
begin
  null;
end;

Oracleでこのプロシージャにarg1引数として渡すことができる文字列の最大長を知っていますか?

PL/SQLプロシージャでは、最大32KBになる場合があります。

詳細はこちら: http://it.toolbox.com/blogs/Oracle-guide/learn-Oracle-sql-and-plsql-datatypes-strings-10804

15
Gravstar

Testproc(lpad( ''、32767、 ''))で試してみましたが、動作します。

32768バイトでは失敗するため、32K-1バイトになります

PL/SQLでは、VARCHAR2データ型の最大サイズは10gR2以降32767バイトです(おそらくそれ以前ですが、そのリリースまでのドキュメントを確認しました)。

ドキュメントの参照:

3
user272735