Je souhaite utiliser la fonction OPENJSON
dans Azure SQL DB, mais lorsque j'essaie d'exécuter la fonction, j'obtiens l'erreur suivante:
Msg 195, niveau 15, état 10, ligne 25 'OPENJSON' n'est pas reconnu nom de la fonction intégrée.
J'avais recherché et trouvé ceci lien disant
La fonction OPENJSON n'est disponible que sous le niveau de compatibilité 130 ou supérieur. Si le niveau de compatibilité de votre base de données est inférieur à 130, SQL Server ne peut pas trouver et exécuter la fonction OPENJSON. D'autres fonctions JSON sont disponibles à tous les niveaux de compatibilité.
Comme suggéré, vérifié le niveau de compatibilité avec
select * from sys.databases
et confirmé qu'il était de 140, ce qui est supérieur à l'exigence minimale.
Alors, ça ne marcherait pas?
3 Réponses :
Idéalement, cela devrait fonctionner si le niveau de compatibilité est de 130 ou plus.
Cela devrait être un commentaire
Trois étapes peuvent vous aider:
1.Vérifiez la version de votre serveur SQL (à partir de 2016).
2.Vérifiez que le niveau de compatibilité de votre base de données Azure SQL est de 130 ou plus.
3.Vérifiez la version de votre base de données Azure SQL.
Exécutez select @@ version
pour voir s'il s'agit du serveur V12.
Si vous voyez une version inférieure (par exemple 11.xxx), vous avez probablement une base de données sur une ancienne architecture où JSON n'est pas pris en charge. Vous devez mettre à jour votre base de données Azure SQL vers la dernière version V12.
Référence: OPENJSON ne fonctionne pas dans SQL Server? < / p>
J'espère que cela vous aidera.
OPENJSON est une fonction table, et elle doit apparaître dans un emplacement valide pour une expression de table.
EG
select * from openjson('{}')
échoue avec
Msg 195, niveau 15, état 10, ligne 29 'openjson' n'est pas reconnu nom de la fonction intégrée.
Mais
select openjson('{}')
fonctionnes.