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