SQLでサポートされているデータ型は、PLでも直接使用できますが、一部の変数の長さ制限はSQLと若干異なります。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
説明
SQLデータ型の詳細については、組み込みデータ型を参照してください。
次の表は、PLとSQLで最大長が異なるデータ型を示しています:
| データ型 | PLの長さ上限 | SQLの長さ上限 |
|---|---|---|
| VARCHAR2 | 32,767 bytes | 4,000 bytes |
| NVARCHAR2 | 32,767 bytes | 4,000 bytes |
| BLOB | 48 M | (4 GB - 1) * database_block_size |
| CLOB | 48 M | (4 GB - 1) * database_block_size |
代入する長さが変数定義の長さを超えると、データベースに例外が発生します。
obclient> DECLARE
mychar VARCHAR2(3 CHAR);
BEGIN
mychar := 'abc ';
END;
/
OBE-06502: PL/SQL: numeric or value error
文字列型のオブジェクトについては、関数RTRIM()を使用して文字列の後ろの連続するスペースを削除できます。以下の例を参照してください:
obclient> DECLARE
mychar VARCHAR2(3 CHAR);
BEGIN
mychar := rtrim('abc ');
END;
/
Query OK, 0 rows affected