- カテゴリ:
半構造化データ関数と構造化データ関数 (配列/オブジェクト)
OBJECT_DELETE¶
1つ以上のキーが削除された入力(ソース)オブジェクトのコンテンツを含むオブジェクトを返します。
構文¶
OBJECT_DELETE( <object>, <key1> [, <key2>, ... ] )
引数¶
object
ソースオブジェクトです。
key1
、key2
返されるオブジェクトから省略されるキーです。
使用上の注意¶
構造化 OBJECTs の場合:
キーとなる引数には、定数を指定する必要があります。
指定されたキーが OBJECT 型定義の一部でない場合、呼び出しは失敗します。例えば、次の呼び出しは OBJECT に指定されたキー
zip_code
が含まれていないため、失敗します。SELECT OBJECT_DELETE( {'city':'San Mateo','state':'CA'}::OBJECT(city VARCHAR,state VARCHAR), 'zip_code' );
093201 (23001): Function OBJECT_DELETE: expected structured object to contain field zip_code but it did not.
この関数は構造化 OBJECT を返します。OBJECT の型は削除されたキーを除外します。例えば、
city
キーを削除するとします。SELECT OBJECT_DELETE( {'city':'San Mateo','state':'CA'}::OBJECT(city VARCHAR,state VARCHAR), 'city' ) AS new_object, SYSTEM$TYPE_OF(new_object);
この関数は、
city
キーを含まないOBJECT(state VARCHAR)
型の OBJECT を返します。+-----------------+--------------------------------------+ | NEW_OBJECT | SYSTEM$TYPEOF(NEW_OBJECT) | |-----------------+--------------------------------------| | { | OBJECT(state VARCHAR(16777216))[LOB] | | "state": "CA" | | | } | | +-----------------+--------------------------------------+
この関数がオブジェクトからすべてのキーを削除した場合、 OBJECT() 型の空の構造化 OBJECT を返します。
SELECT OBJECT_DELETE( {'state':'CA'}::OBJECT(state VARCHAR), 'state' ) AS new_object, SYSTEM$TYPEOF(new_object);
+------------+---------------------------+ | NEW_OBJECT | SYSTEM$TYPEOF(NEW_OBJECT) | |------------+---------------------------| | {} | OBJECT()[LOB] | +------------+---------------------------+
構造化 OBJECT の型にキーと値のペアが含まれる場合、それらのペアの名前と型は型の括弧内に含まれます(例えば、 OBJECT(city VARCHAR))。空の構造化 OBJECT はキーと値のペアを含まないため、括弧は空です。
例¶
SELECT OBJECT_DELETE(OBJECT_CONSTRUCT('a', 1, 'b', 2, 'c', 3), 'a', 'b'); -------------------------------------------------------------------+ OBJECT_DELETE(OBJECT_CONSTRUCT('A', 1, 'B', 2, 'C', 3), 'A', 'B') | -------------------------------------------------------------------+ { | "c": 3 | } | -------------------------------------------------------------------+