3
votes

OPENJSON n'est pas reconnu dans Azure SQL DB

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?


0 commentaires

3 Réponses :


0
votes

Idéalement, cela devrait fonctionner si le niveau de compatibilité est de 130 ou plus.

https://blogs.msdn.microsoft.com/azuresqldbsupport/2018/03/24/lesson-learned-34-does-azure-sql-database-support-openjson/


1 commentaires

Cela devrait être un commentaire



0
votes

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.


0 commentaires

3
votes

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.


0 commentaires