1
resposta

CROSS JOIN com JSON_TABLE no MySQL dando erro 1064

Seguindo o seguinte exemplo do professor:

SELECT JSON_EXTRACT (tb_object_funcionario.`JSON`,"$.Cpf") AS Cpf_Funcionario, 
tb_object_dependente.Nome_Dependente,
tb_object_dependente.Sexo,
tb_object_dependente.Data_Nascimento,
tb_object_dependente.Parentesco
FROM tb_object_funcionario
CROSS JOIN
JSON_TABLE(JSON_EXTRACT (`JSON`,"$.Dependentes"), "$[*]"
COLUMNS (Nome_Dependente VARCHAR(20) PATH "$.Nome_Dependente",
Sexo VARCHAR(20) PATH "$.Sexo",
Data_Nascimento Datetime PATH "$.Data_Nascimento",
Parentesco VARCHAR(10) PATH "$.Parentesco")) AS tb_object_dependente;

Acontece o seguinte erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade"Error Code: 1064. You Have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(JSON_EXTRACT(JSON,"$.Dependentes"), "$[*]" COLUMNS (Nome_Dependente VARCHAR('at line 8"

Dei esse exemplo, mas as outras vezes que o instrutor utiliza CROSS JOIN com JSON_TABLE dá o mesmo erro. Aparentemente é um erro de syntaxe, porém o código está aparentemente identico ao que o instrutor usa...

A versão do MySQL Workbench que estou utilizando é: 8.0 CE

1 resposta

Oi Pedro!

Peço desculpas pela demora em te responder.

Pelo que vi aqui, seu código parece estar mesmo em acordo com o do professor. O erro de sintaxe que está retornando diz respeito à algumas mudanças na sintaxe que ocorreram no MySQL nas atualizações mais recentes, referentes à função JSON_TABLE, provavelmente causando essa disparidade.

Por conta de motivos de desatualização, o curso Modelagem de dados: NoSQL foi descontinuado e saiu da nossa grade oficial.

Espero que o curso tenha sido proveitoso para você, apesar disso!

Abraços.