sql >> Database >  >> RDS >> Sqlserver

Hoe op te lossen "Er moet een correlatienaam worden opgegeven voor de bulkrijenset in de from-clausule." in SQL Server

Als u foutbericht 491, niveau 16 "Er moet een correlatienaam worden opgegeven voor de bulkrijenset in de from-clausule" in SQL Server tegenkomt, komt dit waarschijnlijk omdat u een bestand probeert te lezen zonder een correlatienaam te gebruiken.

Wanneer u de OPENROWSET() . gebruikt functie met de BULK optie, moet u een correlatienaam (ook bekend als een bereikvariabele of alias) opgeven in de FROM clausule.

Om deze fout op te lossen, geeft u eenvoudig een correlatienaam/alias op voor uw zoekopdracht.

Voorbeeld van de fout

Hier is een voorbeeld van code die deze fout veroorzaakt.

SELECT BulkColumn FROM OPENROWSET (
    BULK '/var/opt/mssql/bak/pets.json', 
    SINGLE_CLOB
    );

Resultaat:

Msg 491, Level 16, State 1, Line 4
A correlation name must be specified for the bulk rowset in the from clause.

De fout is opgetreden omdat ik ben vergeten de correlatienaam op te nemen.

De oplossing

Zoals gezegd, om dit probleem op te lossen, hoeven we alleen een correlatienaam op te geven (ook bekend als een bereikvariabele of alias).

SELECT BulkColumn FROM OPENROWSET (
    BULK '/var/opt/mssql/bak/pets.json', 
    SINGLE_CLOB
    ) AS MyAlias;

Resultaat:

+--------------+
| BulkColumn   |
|--------------|
| { 
    "pets" : {
            "cats" : [
            { "id" : 1, "name" : "Fluffy", "sex" : "Female" },
            { "id" : 2, "name" : "Long Tail", "sex" : "Female" },
            { "id" : 3, "name" : "Scratch", "sex" : "Male" }
        ],
            "dogs" : [
            { "id" : 1, "name" : "Fetch", "sex" : "Male" },
            { "id" : 2, "name" : "Fluffy", "sex" : "Male" },
            { "id" : 3, "name" : "Wag", "sex" : "Female" }
        ]
    }
}              |
+--------------+

  1. Is het mogelijk om een ​​door de gebruiker gedefinieerde MySql-variabele te gebruiken in een .NET MySql-opdracht?

  2. Wordt het MariaDB JDBC-stuurprogramma beïnvloed door de Log4j-kwetsbaarheid?

  3. Binaire gegevenstypen opslaan in SQL Server

  4. Een while/loop doen om 10 willekeurige resultaten te krijgen