আমি কি এসএসএমএস থেকে কোনও ট্যাব-বিস্মৃত ফাইলটি জিজ্ঞাসা করতে পারি?


14

এসকিএল সার্ভার ম্যানেজমেন্ট স্টুডিওর কোথাও সংরক্ষণ না করে এর ডেটা দেখার জন্য কোনও ট্যাব-বিস্মৃত ফাইলটি জিজ্ঞাসা করা সম্ভব?

আমি জানি আপনি BULK INSERTএমন কিছু ব্যবহার করে একটি ট্যাব-বিস্মৃত ফাইল থেকে করতে পারেন:

BULK INSERT SomeTable
FROM 'MyFile.txt'
WITH (
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n');

তবে এর জন্য আপনাকে কলামগুলি আগাম জানতে হবে এবং ডেটা ধরে রাখতে একটি টেবিল তৈরি করতে হবে।

আমি আরও জানি আপনি সিএসভি বা এক্সেলের মতো কিছু অন্যান্য ফাইল প্রকারগুলি যেমন কলামগুলি অগ্রিম ব্যবহার না করে OPENROWSETএবং এক্সেল ড্রাইভারগুলি জিজ্ঞাসা করতে পারেন , যেমন:

-- Query CSV
SELECT * 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Text;Database=\\Server\Folder\;HDR=Yes;', 
    'SELECT * FROM MyFile.csv')

-- Query Excel
SELECT *
FROM OPENROWSET('Microsoft.Ace.OLEDB.12.0', 
    'Excel 8.0;Database=MyFile.xls', 
    'SELECT * FROM [Sheet1$]')

এছাড়াও, যদি আমি রেজিস্ট্রি কী পরিবর্তন Formatঅধীনে HKLM\Software\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Textথেকে CSVDelimitedথেকে TabDelimitedSQL সার্ভার উপর, উপরে যে CSV ক্যোয়ারী সঠিকভাবে একটি ট্যাব-সীমা নির্দেশ করা টেক্সট ফাইল পড়তে হবে, তবে এটা এখন আর একটি কমা দ্বারা আলাদা করা টেক্সট ফাইল পড়তে হবে তাই আমি মনে করি না আমি চাই না এটি ছেড়ে যেতে।

এর Format=TabDelimitedমধ্যে ব্যবহারের চেষ্টাটিও OPENROWSETকাজ করে না

SELECT * 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Text;Database=\\Server\Folder\;HDR=Yes;Format=TabDelimited', 
    'SELECT * FROM MyFile.txt')

আমি Textউভয় থেকে রেজিস্ট্রি কীগুলি Enginesএবং ISAM Formatsকাস্টমগুলির ডিফল্টরূপে দুটি থেকে কীগুলি অনুলিপি করার জন্য কিছু চেষ্টা করেছি TabDelimited, তবে এটি এখনও ফর্ম্যাটের CSVFormatপরিবর্তে ফাইলগুলি পড়ছে TabDelimitedতাই আমার অবশ্যই এখানে কিছু অনুপস্থিত থাকতে হবে।

কোনও টেবিল-সীমিত ফাইলটি কোনও টেবিল এবং BULK INSERTএটি তৈরি না করেই এর সামগ্রীগুলি দেখার জন্য কী জিজ্ঞাসা করার উপায় আছে ?

আমি এসকিউএল সার্ভার 2005 ব্যবহার করছি


এটি ব্যবহারের পরে ফ্ল্যাশ করা গতিশীলভাবে তৈরি টেম্প টেবিলটি কী গ্রহণযোগ্য?
jcolebrand

দ্বিতীয় প্রশ্ন: আপনি কি কেবল টিডিএফ খোলার জন্য এক্সেল ড্রাইভারগুলি ব্যবহার করার চেষ্টা করেছেন? কখনও কখনও এক্সেল যাদু হয়।
jcolebrand

@ জকোলেব্রান্ড হ্যাঁ আমি টেম্প টেবিলগুলি ব্যবহার করতে পারি, তবে কলামের তালিকাটি বেশ দীর্ঘ এবং পরিবর্তিত হতে পারে, তাই আমি কেবল তাদের পক্ষে সমস্ত সংজ্ঞাটি লেখার পরিবর্তে আগ্রহী এমন কলামগুলি নির্দিষ্ট করতে সক্ষম হব , এবং যে কোনও সময় অপরিবর্তিত কলামগুলি পরিবর্তিত হওয়ার জন্য তাদের আপডেট করার কথা মনে আছে।
রাচেল

@ jcolebrand আমি এক্সেল ড্রাইভারদের চেষ্টা করার কথা ভাবিনি, যদিও এখনই এটি আশাব্যঞ্জক দেখাচ্ছে না। ফাইল এক্সটেনশনটি আসলে .bakযা কোনও সাধারণ সীমিত ফাইল এক্সটেনশন নয় এবং এটি আমার প্রথম চেষ্টাতে যে ত্রুটিটি দিয়েছে তা হ'ল Could not find installable ISAMতাই আমি মনে করি না এটি কাজ করবে।
রাচেল

2
আমি ব্যক্তিগতভাবে প্রতিবার ফাইল থেকে ফ্লাইটে কলাম তালিকাটি পার্স করব (কেবলমাত্র ফাইলের প্রথম লাইনে একটি কাউন্টফ ট্যাব করুন) আমদানির জন্য প্রয়োজনীয় কলামগুলির সংখ্যা বজায় রাখার চেষ্টা করার পরিবর্তে, গতিশীলভাবে তৈরি টেম্প টেবিল । আমার মতে আপনি ডেটা থেকে প্রকৌশলীকে কী বিপরীত করতে পারবেন তা কখনও হার্ড-কোড করবেন না।
jcolebrand

উত্তর:


13

আপনি যে পাঠ্য ফাইলটি খোলার জন্য একই ডিরেক্টরিতে ডিলিমিটার যুক্ত একটি স্কিমা.ইএনআই ফাইল তৈরি করতে হবে। প্রতি ফাইলের ভিত্তিতে রেজিস্ট্রি মানগুলিকে ওভাররাইড করার একমাত্র উপায়। এমএসডিএন- তে ফাইল ফর্ম্যাট ডকুমেন্টেশন দেখুন । উদাহরণ:

SELECT * 
FROM OPENROWSET(
    'Microsoft.ACE.OLEDB.12.0', 
    'Text; HDR=YES; Database=C:\Text', 
    'SELECT * FROM testupload2.txt')

সি তে: \ পাঠ্য \ স্কিমা.আইএনআই:

[testupload2.txt]
ColNameHeader=True
Format=TabDelimited
MaxScanRows=0

যদি এই ক্রিয়াকলাপটি ঘন ঘন পুনরাবৃত্তি করা প্রয়োজন, আমি স্কিমা.আইএনআই তৈরি করার জন্য একটি স্ক্রিপ্ট প্রস্তাব করব। একাধিক ফাইল একই স্কিমা.আইএনআইতে রেফারেন্স করা যায় বা প্রতিটি ডিরেক্টরি ফাইলের নিজস্ব ডিরেক্টরিতে একটি পৃথক স্কিমা.আইএনই অন্তর্ভুক্ত করা যায়।


আপনাকে অনেক ধন্যবাদ! আমি স্কিমা.আইএনআই ফাইলটি ব্যবহার করার ইঙ্গিতগুলি দেখেছি, তবে নিজের থেকে কীভাবে এটি প্রয়োগ করতে হবে তা বুঝতে আমার সমস্যা হচ্ছিল
রাচেল

আমি জানি এটি একটি পুরানো পোস্ট তবে আমাকে "ডাইস জব" @ ডার্টনউ বলতে হবে।
জেফ মোডেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.