[SQL Server] Envoyer la commande GET vers un service Web de type REST et récupérer un résultat en format JSON - Troisième méthode
DECLARE @Objet ASInt
DECLARE @Resultat astable (Resultat VARCHAR(max))
DECLARE @json NVARCHAR(MAX)
IFEXISTS(SELECT*FROM tempdb..sysobjectsWHERE id =object_id(N'[tempdb]..[#ResponseTable]'))BEGINDROPTABLE #ResponseTable END;
CREATETABLE #ResponseTable( ResponseText VARCHAR(MAX));
EXECsp_OACreate'MSXML2.XMLHTTP', @Objet OUT;
EXECsp_OAMethod@Objet,'open',NULL,'get','https://www.mektaba.info/data/all?Authorization=zouhaierkharroubi_MonTokenServiceWeb', false;
EXECsp_OAMethod@Objet,'send';
INSERTINTO #ResponseTable EXECsp_OAMethod@Objet,'responseText';
SET @json =(SELECT*from #ResponseTable);
insertinto [MaBase].[dbo].[MaTable](champ1,champ2,champ3)
(SELECT T2.champ1,T2.champ2,T2.champ3
FROM (
SELECT*
FROMOPENJSON(@json)
WITH (
Etat CHAR(3)'strict $.Etat',
DonneesJson NVARCHAR(MAX)ASJSON
)
) T1
OUTERAPPLYOPENJSON(T1.DonneesJson)
WITH
(
champ1 VARCHAR(250)'$.champ1',
champ2 VARCHAR(250)'$.champ2',
champ3 VARCHAR(250)'$.champ3'
) T2);
DROPTABLE #ResponseTable