- Categorias:
Funções de dados semiestruturados e estruturados (Matriz/objeto)
OBJECT_DELETE¶
Retorna um objeto com o conteúdo do objeto de entrada (ou seja, de origem) com uma ou mais chaves removidas.
Sintaxe¶
OBJECT_DELETE( <object>, <key1> [, <key2>, ... ] )
Argumentos¶
object
O objeto de origem.
key1
,key2
Chave a ser omitida do objeto retornado.
Notas de uso¶
Para OBJECTs estruturados:
Para os argumentos que são chaves, você deve especificar constantes.
Se a chave especificada não fizer parte da definição do tipo OBJECT, a chamada falhará. Por exemplo, a chamada a seguir falha porque OBJECT não contém a chave especificada
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.
A função retorna um OBJECT estruturado. O tipo de OBJECT exclui a chave excluída. Por exemplo, suponha que você remova a chave
city
:SELECT OBJECT_DELETE( {'city':'San Mateo','state':'CA'}::OBJECT(city VARCHAR,state VARCHAR), 'city' ) AS new_object, SYSTEM$TYPE_OF(new_object);
A função retorna um OBJECT do tipo
OBJECT(state VARCHAR)
, que não inclui a chavecity
.+-----------------+--------------------------------------+ | NEW_OBJECT | SYSTEM$TYPEOF(NEW_OBJECT) | |-----------------+--------------------------------------| | { | OBJECT(state VARCHAR(16777216))[LOB] | | "state": "CA" | | | } | | +-----------------+--------------------------------------+
Se a função remover todas as chaves do objeto, a função retornará um OBJECT estruturado vazio do tipo 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] | +------------+---------------------------+
Quando o tipo de um OBJECT estruturado inclui pares chave-valor, os nomes e tipos desses pares são incluídos entre parênteses no tipo (por exemplo, OBJECT(cidade VARCHAR)). Como um OBJECT estruturado vazio não contém pares chave-valor, os parênteses estão vazios.
Exemplos¶
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 | } | -------------------------------------------------------------------+