SQL Serverでエラーメッセージ491、レベル16「from句の一括行セットに相関名を指定する必要があります」が発生した場合は、相関名を使用せずにファイルを読み取ろうとしていることが原因である可能性があります。
OPENROWSET()
を使用する場合 BULK
で機能する オプションの場合、FROM
に相関名(範囲変数またはエイリアスとも呼ばれます)を指定する必要があります 条項。
このエラーを修正するには、クエリの相関名/エイリアスを指定するだけです。
エラーの例
このエラーの原因となるコードの例を次に示します。
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
);
結果:
Msg 491, Level 16, State 1, Line 4 A correlation name must be specified for the bulk rowset in the from clause.
相関名を含めるのを忘れたため、エラーが発生しました。
ソリューション
前述のように、この問題を修正するには、相関名(範囲変数またはエイリアスとも呼ばれます)を指定するだけです。
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
) AS MyAlias;
結果:
+--------------+ | 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" } ] } } | +--------------+