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