本記事では、OceanBaseにおけるデータベース使用時のSQL作成に関する制限について説明します。
主キーを持つテーブルは、以下のルールを満たす必要があります:
各データテーブルは、最大で1つの主キー列セットを持つことができます。
主キー値はNULLまたは空の文字列にすることはできません。
主キーの値は変更できません。
主キー列の数は64列を超えてはなりません。
主キーデータの総長は16KBを超えてはなりません。
VARCHAR、VARCHAR2列を作成する際は、列の最大長を指定する必要があり、その長さは少なくとも1バイト以上である必要があります。
NUMBERは可変長かつ正確な数値型であり、4~40バイトのストレージ容量を占有します。ゼロ、浮動小数点数、正の固定小数点数、負の固定小数点数を格納でき、データの正確性に優れ、汎用性と移植性が高いです。ただし、演算効率は浮動小数点型よりも低い傾向があります。
オブジェクト型のプロパティやメソッドをインポートする場合:
SQLステートメント内でオブジェクト型のプロパティやメソッドをインポートするには、テーブルエイリアスを使用して完全に限定する必要があります。
パラメータを受け取らないメンバーメソッドをインポートするには、空の括弧を提供する必要があります。
パーティション拡張テーブル名およびサブパーティション拡張テーブル名の使用には、以下の制限があります:
名前にリモートテーブルが含まれていない場合:パーティション拡張テーブル名およびサブパーティション拡張テーブル名には、データベースリンクや、データベースリンクを持つテーブルへのシノニムを含めることはできません。
名前にシノニムが含まれていない場合:パーティションまたはサブパーティションの拡張名を指定するには、ベーステーブルを使用する必要があり、シノニム、ビュー、またはその他のオブジェクトを使用することはできません。
PARTITION FORおよびSUBPARTITION FOR句では、キーワードDEFAULT、MAXVALUE、またはpartition_key_valueまたはsubpartition_key_valueの値にバインドされた変数を指定することはできません。
PARTITIONおよびSUBPARTITION句では、パーティションまたはサブパーティション名にバインド変数を指定することはできません。
ゴミ箱のオブジェクトに対しては、書き込み操作(DMLまたはDDL操作)を一切行うことができず、読み取り専用操作(SELECT)のみを実行できます。
SELECT...FOR UPDATE SKIP LOCKEDは単一テーブルクエリのみをサポートします。