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