none
SALVARE/ESTRARRE DATI JSON su SQL Server 2008 R2 RRS feed

  • Domanda

  • Salve a tutti,

    avevo la necessità di gestire(salvare/estrarre) in un DB SQL Server 2008 R2 delle stringhe JSON

    che coincidono con le Response di chiamate API Rest ad un Http Server.

    Avevo pensato, ma mi convice poco l'idea, di archiviare in un campo NVARCHAR direttamente la stringa e poi allorchè

    debbo estrarla dal DB la leggo semplicemente e me la parserizzo mettendola in uno 'Scripting.Dictionary'(la mia applicazione è in VB6).

    E' un approccio semplice ed è l'unico che mi viene in mente visto che non posso usare :

    1. le CLR function perchè dovrei togliere la compatibilità con SQL Server 2000 e invece mi serve

    2. Non posso usare le Built-in function JSON di SQL Server 2016 visto che non posso migrare a SQL Server 2016

    Sapreste dirmi se oltre a questi approcci ne esistono altri che mi potrebbero essere utili ?

    Grazie come sempre per i vs. preziosi consigli

    NB: Uso varie Api Rest per cui le Response JSON possono essere di vario genere ed alcune contenere anche sub-array

    martedì 4 dicembre 2018 14:58

Risposte

  • personalmente ti consiglio di continuare con l'approccio che hai già scritto nel primo post visto proprio la vetustà della tua release di Sql Server. ciao

    Edoardo Benussi
    Microsoft MVP - Cloud and Datacenter Management
    e[dot]benussi[at]outlook[dot]it

    • Contrassegnato come risposta AngeloNew martedì 11 dicembre 2018 08:40
    lunedì 10 dicembre 2018 10:09
    Moderatore

Tutte le risposte

  • Ciao Angelo,

    non ho ancora avuto modo di usarla, ma ti consiglio di dare un'occhiata a questa soluzione:

    Usare json su SQLServer 2005, 2008, 2012 e 2014 ..è possibile!

    C'è anche il video della sessione che ha fatto Emanuele Zanchettin al SQL Saturday Pordenone 2018.. ecco il link al video pubblicato sul canale UGISS di Vimeo: JSON before and after SQL Server 2016.

    Spero che sia d'aiuto!

    Ciao!


    Sergio Govoni

    Microsoft Data Platform MVP | MVP Profile | Twitter | LinkedIn

    giovedì 6 dicembre 2018 23:34
    Moderatore
  • Avevo trovato questa soluzione in un altro sito (https://www.red-gate.com/simple-talk/sql/t-sql-programming/consuming-json-strings-in-sql-server/) facendo un pò di googling, l'ho testata e, mi sono accorto che nei casi più semplici funziona mentre per stringhe come questa mi restituisce dati incongruenti :

    SET @Variabile = '{
    "error":"",
    "NumeroTotale":"25",
    "NumeroRecord":"3",
        "result":{
        "seq_FATTURE":[
        {
        "IdFattura": "9",
        "IdSDI": "231414419",
        "FatturaData": "2018-05-15",
        "FatturaNumero": "001/A",
        "FatturaImporto": "1780.95",
        "CedenteAnagrafica" : "Rossi Mario",
        "CedenteCodiceFiscale" : "RSSMRA81R10E506Q",
        "CedentePartitaIva" : "22222222223",
        "CessionarioAnagrafica" : "Rossetti srl",
        "CessionarioCodiceFiscale" : "11111111112",
        },
        {
        "IdFattura": "10",
        "FatturaData": "2018-05-16",
        "FatturaNumero": "002/A",
        "FatturaImporto": "3560.00",
        "CedenteAnagrafica" : "Rossi Mario",
        "CedenteCodiceFiscale" : "RSSMRA81R10E506Q",
        "CedentePartitaIva" : "22222222223",
        "CessionarioAnagrafica" : "Bianchetti snc",
        "CessionarioCodiceFiscale" : "33333333334",
        },
        {
        "IdFattura": "11",
        "FatturaData": "2018-05-17",
        "FatturaNumero": "003/A",
        "FatturaImporto": "245.12",
        "CedenteAnagrafica" : "Rossi Mario",
        "CedenteCodiceFiscale" : "RSSMRA81R10E506Q",
        "CedentePartitaIva" : "22222222223",
        "CessionarioAnagrafica" : "Rossetti srl",
        "CessionarioCodiceFiscale" : "11111111112",
        }
        ]
        },
    "request_name":"FAEAttivaSearch"
    }'

    SELECT  * FROM [dbo].[parseJSON](@Variabile)

    Grazie come sempre

    venerdì 7 dicembre 2018 08:44
  • personalmente ti consiglio di continuare con l'approccio che hai già scritto nel primo post visto proprio la vetustà della tua release di Sql Server. ciao

    Edoardo Benussi
    Microsoft MVP - Cloud and Datacenter Management
    e[dot]benussi[at]outlook[dot]it

    • Contrassegnato come risposta AngeloNew martedì 11 dicembre 2018 08:40
    lunedì 10 dicembre 2018 10:09
    Moderatore
  • Grazie come sempre dei preziosi consigli
    martedì 11 dicembre 2018 08:39