- Categorias:
Funções de dados semiestruturados e estruturados (Matriz/objeto)
OBJECT_INSERT¶
Retorna um valor OBJECT que consiste no valor OBJECT de entrada com um novo par chave-valor inserido (ou uma chave existente atualizada com um novo valor).
Sintaxe¶
Argumentos¶
Obrigatório:
objectA valor OBJECT de origem no qual o novo par chave-valor é inserido ou no qual um par chave-valor existente é atualizado.
keyA nova chave a ser inserida no valor OBJECT ou uma chave existente cujo valor está sendo atualizado. A chave especificada deve ser diferente de todas as chaves existentes no valor OBJECT, a menos que
updateFlagesteja definido como TRUE.valueO valor associado à chave.
Opcional:
updateFlagUm sinalizador booliano que, quando definido como TRUE, especifica que o valor de entrada atualiza o valor de uma chave existente no valor OBJECT, em vez de inserir um novo par chave-valor.
O padrão é FALSE.
Retornos¶
Esta função retorna um valor que tem o tipo de dados OBJECT.
Notas de uso¶
A função é compatível com os valores JSON nulos, mas não com os valores ou chaves SQL NULL:
Se
keyfor qualquer cadeia de caracteres diferente de NULL evaluefor um JSON nulo (por exemplo,PARSE_JSON('null')), o par chave-valor será inserido no valor OBJECT retornado.Se
keyouvaluefor um SQL NULL, o par chave-valor será omitido do valor OBJECT retornado.
Se o argumento opcional
updateFlagfor definido como TRUE, a entrada existentekeyserá atualizada para a entradavalue. SeupdateFlagfor omitido ou definido como FALSE, chamar essa função com uma chave de entrada que já existe no valor OBJECT resultará em um erro.Se o sinalizador de atualização estiver definido como TRUE, mas a chave correspondente ainda não existir no valor OBJECT, o par chave-valor será adicionado.
Para valores OBJECT estruturados:
Para os argumentos que são chaves, você deve especificar constantes.
Quando o argumento
updateFlagé FALSE (quando você está inserindo um novo par chave-valor):Se você especificar uma chave que já exista no valor OBJECT, ocorrerá um erro.
A função retorna um valor OBJECT estruturado. O tipo do valor OBJECT inclui a chave recém-inserida. Por exemplo, suponha que você adicione a chave
zipcodecom o valor VARCHAR94402:O tipo do valor inserido determina o tipo adicionado à definição de tipo OBJECT. Nesse caso, o valor de
zipcodeé um valor convertido em VARCHAR, portanto, o tipo dezipcodeé VARCHAR.
Quando o argumento
updateFlagé TRUE (quando você está substituindo um par chave-valor existente):Se você especificar uma chave que não existe no valor OBJECT, ocorrerá um erro.
A função retorna um valor OBJECT estruturado do mesmo tipo.
O tipo do valor inserido é imposto ao tipo da chave existente.
Exemplos¶
Os exemplos a seguir chamam a função OBJECT_INSERT:
Adicionar e atualizar pares chave-valor¶
Os exemplos utilizam a seguinte tabela:
Como adicionar um novo par chave-valor a um valor OBJECT¶
Insira um terceiro par chave-valor em um valor OBJECT que tenha dois pares chave-valor:
Insira dois novos pares chave-valor no valor OBJECT, omitindo um par chave-valor:
dconsiste em um valor JSON nulo.
econsiste de um valor SQL NULL e é, portanto, omitido.
fconsiste em uma cadeia de caracteres contendo “nulo”.
Atualizar um par chave-valor em um valor OBJECT¶
Atualize um par chave-valor existente ("b": "value2") no valor OBJECT com um novo valor ("valuex"):
Adicionar e atualizar valores OBJECT aninhados¶
Os exemplos usam a tabela a seguir com valores OBJECT aninhados:
Adicionar novos pares chave-valor aninhados aos valores OBJECT aninhados¶
O exemplo a seguir adiciona novos pares chave-valor aninhados aos valores OBJECT aninhados na tabela. Ele usa uma expressão CASE para especificar o par chave-valor adicionado para cada linha:
Atualizar os pares chave-valor nos valores OBJECT aninhados¶
O exemplo a seguir atualiza os pares chave-valor aninhados nos valores OBJECT na tabela: