Pokud narazíte na chybu Msg 491, Level 16 „Pro hromadnou sadu řádků v klauzuli from musí být zadán název korelace“, je to pravděpodobně proto, že se pokoušíte číst soubor bez použití názvu korelace.
Když použijete OPENROWSET()
funkce s BULK
musíte zadat název korelace (známý také jako proměnná rozsahu nebo alias) v FROM
doložka.
Chcete-li tuto chybu opravit, jednoduše zadejte název/alias korelace pro váš dotaz.
Příklad chyby
Zde je příklad kódu, který tuto chybu způsobuje.
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
);
Výsledek:
Msg 491, Level 16, State 1, Line 4 A correlation name must be specified for the bulk rowset in the from clause.
K chybě došlo, protože jsem zapomněl uvést název korelace.
Řešení
Jak již bylo zmíněno, k vyřešení tohoto problému stačí zadat název korelace (známý také jako proměnná rozsahu nebo alias).
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
) AS MyAlias;
Výsledek:
+--------------+ | 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" } ] } } | +--------------+