sql >> Databasteknik >  >> RDS >> Sqlserver

Så här fixar du "Ett korrelationsnamn måste anges för bulkraduppsättningen i from-satsen." i SQL Server

Om du stöter på felmeddelande 491, nivå 16 "Ett korrelationsnamn måste anges för bulk-raduppsättningen i from-klausulen" i SQL Server, beror det förmodligen på att du försöker läsa en fil utan att använda ett korrelationsnamn.

När du använder OPENROWSET() funktion med BULK alternativet måste du ange ett korrelationsnamn (även känt som en intervallvariabel eller alias) i FROM klausul.

För att åtgärda detta fel, ange bara ett korrelationsnamn/alias för din fråga.

Exempel på felet

Här är ett exempel på kod som orsakar det här felet.

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

Resultat:

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

Felet uppstod eftersom jag glömde att inkludera korrelationsnamnet.

Lösningen

Som nämnts, för att åtgärda detta problem, är allt vi behöver göra att tillhandahålla ett korrelationsnamn (även känt som en intervallvariabel eller alias).

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

Resultat:

+--------------+
| 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. varbinär till sträng på SQL Server

  2. Native JSON-stöd i MYSQL 5.7:vilka är fördelarna och nackdelarna med JSON-datatyp i MYSQL?

  3. Oracle Set Operators

  4. Distribuera och hantera PostgreSQL 11:Nytt i ClusterControl 1.7.1