以下のように表示されます。
(日本語)
ORA-06502: PL/SQL: 数値または値のエラー:
文字列バッファが小さすぎます。
文字列バッファが小さすぎます。
(英語)
ORA-06502: PL/SQL: numeric or value error:
character string buffer too small
character string buffer too small
発生パターン
このエラーは以下のような場合に発生します。
- 指定したサイズが、型の最大サイズを超えている
- エラー例
- SQL> SELECT dbms_lob.substr(col1, 5000, 1) FROM testtable; SELECT dbms_lob.substr(col1, 5000, 1) FROM testtable; * 行1でエラーが発生しました。: ORA-06502: PL/SQL: 数値または値のエラー: 文字列バッファが小さすぎます。が発生しました ORA-06512: 行1 SQL>
5000がVARCHAR2のサイズを超えているためエラーになっています。
対処法
- サイズ指定する時は、型の最大サイズ以下とする。
(VARCHAR2の場合は4000バイト以下にするなど) - データ型のさいずについては以下記事をご覧ください。
[ORACLE] データ型一覧