यदि आप त्रुटि संदेश 491, स्तर 16 का सामना करते हैं, तो SQL सर्वर में "से क्लॉज में बल्क रोसेट के लिए एक सहसंबंध नाम निर्दिष्ट किया जाना चाहिए", यह शायद इसलिए है क्योंकि आप एक सहसंबंध नाम का उपयोग किए बिना फ़ाइल को पढ़ने का प्रयास कर रहे हैं।
जब आप 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" } ] } } | +--------------+