- Kategorien:
Funktionen für semistrukturierte und strukturierte Daten (Array/Objekt)
OBJECT_DELETE¶
Gibt ein Objekt zurück, das den Inhalt des Eingabe-Objekts (d. h. des Quellobjekts) enthält, wobei ein oder mehrere Schlüssel entfernt werden.
Syntax¶
OBJECT_DELETE( <object>, <key1> [, <key2>, ... ] )
Argumente¶
object
Das Quellobjekt.
key1
,key2
Schlüssel, der aus dem zurückgegebenen Objekt weggelassen werden soll.
Nutzungshinweise¶
Für die Argumente, die Schlüssel sind, müssen Sie Konstanten angeben.
Wenn der angegebene Schlüssel nicht Teil der OBJECT-Typdefinition ist, schlägt der Aufruf fehl. Der folgende Aufruf schlägt zum Beispiel fehl, weil OBJECT nicht den angegebenen Schlüssel
zip_code
enthält: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.
Die Funktion gibt ein strukturiertes OBJECT zurück. Der Typ des OBJECT schließt den gelöschten Schlüssel aus. Angenommen, Sie entfernen den Schlüssel
city
:SELECT OBJECT_DELETE( {'city':'San Mateo','state':'CA'}::OBJECT(city VARCHAR,state VARCHAR), 'city' ) AS new_object, SYSTEM$TYPE_OF(new_object);
Die Funktion gibt ein OBJECT vom Typ
OBJECT(state VARCHAR)
zurück, das den Schlüsselcity
nicht enthält.+-----------------+--------------------------------------+ | NEW_OBJECT | SYSTEM$TYPEOF(NEW_OBJECT) | |-----------------+--------------------------------------| | { | OBJECT(state VARCHAR(16777216))[LOB] | | "state": "CA" | | | } | | +-----------------+--------------------------------------+
Wenn die Funktion alle Schlüssel aus dem Objekt entfernt, gibt die Funktion ein leeres strukturiertes OBJECT vom Typ OBJECT() zurück.
SELECT OBJECT_DELETE( {'state':'CA'}::OBJECT(state VARCHAR), 'state' ) AS new_object, SYSTEM$TYPEOF(new_object);
+------------+---------------------------+ | NEW_OBJECT | SYSTEM$TYPEOF(NEW_OBJECT) | |------------+---------------------------| | {} | OBJECT()[LOB] | +------------+---------------------------+
Wenn der Typ eines strukturierten OBJECT Schlüssel-Wert-Paare enthält, werden die Namen und Typen dieser Paare in Klammern in den Typ aufgenommen (zum Beispiel OBJECT(Stadt VARCHAR)). Da ein leeres strukturiertes OBJECT keine Schlüssel-Wert-Paare enthält, sind die Klammern leer.
Beispiele¶
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 | } | -------------------------------------------------------------------+