এসকিউএল-সার্ভার ২০০৮ লিঙ্কযুক্ত সার্ভারের মাধ্যমে কেন আমি ওরাকলস সিএলওবি কলামগুলি পড়তে পারি না?


10

আমি এসকিউএল-সার্ভার ২০০৮ থেকে ওরাকল ১১ জি ডাটাবেসে ডেটা অ্যাক্সেস করতে চাই

আমি একটি লিঙ্কযুক্ত সার্ভার সেট আপ করি এবং যখন আমি সম্পাদন করি

select * from [Link_server_name]..Oracle_schema.Oracle_table

এবং ওরাকল_ টেবিলটিতে সংখ্যা এবং বার্চর 2 কলাম রয়েছে, সমস্ত কাজ বাদ ব্যতীত।

তবে যখন ওরাকল_ টেবিলটিতে একটি সিওওবি কলাম থাকে, আমি নিম্নলিখিত ত্রুটিটি পাই:

ডের ওএল ডিবি-অ্যানবিটার 'এমএসডিওআরএ' ফার্ন ডান ভার্বিনডুংসার্ভার 'L_V407SR8T' হ্যাট ডাই মেলডাং 'অনির্ধারিত ত্রুটি' জুরকজবেন।

ডের ওলে ডিবি-অ্যানবিটার 'এমএসডিওআরএ' ফার্ন ডান ভার্বিনডুংসার্ভার 'L_V407SR8T' হ্যাট ডাই মেলডাং 'ওরাকল ত্রুটি ঘটেছে, তবে ত্রুটি বার্তা ওরাকল থেকে পুনরুদ্ধার করা যায়নি' ' zurückgeben।

ডের ওএল ডিবি-অ্যানবিটার 'এমএসডিওএআরএ' ফার্ন ডান ভার্বিনডুংসার্ভার 'L_V407SR8T' হ্যাট ডাই মেলডাং 'ডেটা টাইপ সমর্থিত নয়।' zurückgeben।

এমএসজি 7306, স্তর 16, রাজ্য 2, লাইন 1

ডাই '"এমসিসিএপিপি"। "ডগগ্রুপেন" "- তাবেলে ভম ওএলই ডিবি-অ্যানিবিয়েটার' এমএসডিওএআরএ 'ফোর ডেন ভার্বিনডুংসারভার' এল_ভি 407 এসআর 8 টি 'কান নিচ জেফনেট ওয়ার্ডেন।

খোলামেলা ব্যবহার Using

SELECT * FROM OPENQUERY([L_V407SR8T], 'Select CLOB_COLUMN from Oracle_table'  )

আমি পাই

ডের ওলে ডিবি-অ্যানবিটার 'এমএসডিওআরএ' ফার্ন ডান ভার্বিনডুংসার্ভার 'L_V407SR8T' হ্যাট ডাই মেলডাং 'ওরাকল ত্রুটি ঘটেছে, তবে ত্রুটি বার্তা ওরাকল থেকে পুনরুদ্ধার করা যায়নি' ' zurückgeben। ডের ওএল ডিবি-অ্যানবিটার 'এমএসডিওএআরএ' ফার্ন ডান ভার্বিনডুংসার্ভার 'L_V407SR8T' হ্যাট ডাই মেলডাং 'ডেটা টাইপ সমর্থিত নয়।' zurückgeben।

দয়া করে জার্মান ত্রুটি বার্তাগুলি ক্ষমা করুন।

আমার প্রশ্ন: লিঙ্কযুক্ত সার্ভারগুলির মাধ্যমে কি সিএলওবি কলামগুলি পড়ার কোনও উপায় আছে?

সম্পাদনা করুন:

  • এসকিউএল সার্ভার আমদানি ও রপ্তানি উইজার্ডটিও ওএলই ডিবি-র উপর নির্ভর করে বলে মনে হচ্ছে এবং একই টেবিলগুলিতে সাফল্য অর্জন করবে
  • আমি নিজেকে জিজ্ঞাসা করছি, সমস্যাটি যদি চরিত্রের সেটগুলির ব্যবহারের উপর নির্ভর করে তবে আমি সেগুলি পরিবর্তন করতে পারি না
  • চারপাশে ব্যবহারিক কাজ হিসাবে, আমি ডেটা পেতে কিছু পাওয়ারশেল স্ক্রিপ্ট ব্যবহার করি, তবে

আপনি যদি অন্তত এটা প্রথম ... রূপান্তর করতে পারেন CLOB পড়া করতে সক্ষম হওয়া উচিত msdn.microsoft.com/en-us/library/ms378813.aspx
jcolebrand

উত্তর:


3

আপনার এসকিউএল সার্ভার 2008 মেশিনে একটি ওরাকল 11 ডাটাবেস ক্লায়েন্টটি ডাউনলোড এবং ইনস্টল করুন।

ওরাকল OLE DB সরবরাহকারী (OraOLEDB.Oracle) ব্যবহার করে একটি লিঙ্কযুক্ত সার্ভার সেট আপ করুন।

সরবরাহকারীর বিকল্পগুলিতে "ইনপ্রোসেসের অনুমতি দিন" সক্ষম করা হয়েছে তা নিশ্চিত করুন।

Oracle 11 OLE DB ক্লায়েন্ট CLOB সমর্থন করে।


2

উত্তরের একটি মন্তব্যে এসও প্রশ্নের প্রশ্নে ওরেডলে কীভাবে ওএলডিবি ব্যবহার করে একটি সিএলওবি কলাম পড়তে হবে?

নিম্নলিখিত বিবৃতি সহ পুরানো মাইক্রোসফ্ট সাপোর্ট পোস্টের লিঙ্ক রয়েছে

ওরাকল ৮.x-নির্দিষ্ট ডেটা ধরণের, যেমন সিএলওবি, বিএলএলবি, বিএফআইএল, এনসিএইচআর, এনসিএলওবি, এবং এনভিচারচার ২ সমর্থিত নয়।

আরও কিছু বর্তমান তথ্যসূত্র খুঁজে পেয়ে ভালো লাগবে।

আমি কিছু গুগল গবেষণা করেছি এবং কেবলমাত্র কাজের সন্ধান পেয়েছি। আমি ভয় করি যে তথ্যের ধরণটি এখনও সমর্থিত নয়।

02/05/2011 সম্পাদনা করুন

মাইক্রোসফ্ট কেন এই সমস্যাটি ঠিক করতে পারছে না তা আমি সত্যিই বুঝতে পারি না। নিম্নলিখিত পাওয়ারশেল স্ক্রিপ্টটি ওআরএল-ডিবি ব্যবহার করে একটি ওরাকল ডাটাবেস থেকে সিএলওবি কলামযুক্ত একটি সারণী পড়তে এবং বাল্ককপি ব্যবহার করে SQL সার্ভারে বিদ্যমান সারণির একটি বিদ্যমান টেবিলে তথ্য সন্নিবেশ করায় যা খুব কার্যকর উপায়।

আপনার সংস্থায় নিম্নলিখিত সংযোগের স্ট্রিং, ক্যোয়ারী এবং সারণীর নাম সামঞ্জস্য করুন:

# Here I use OLE-DB to read the Oracle database
$ConnectionString ="Server=ignore;User Id=myUser;Password=myPassword;Data Source=myTns;Provider=OraOLEDB.Oracle;"

# Here I use .NET SqlClient
$SqlClientConnString = "Data Source=localhost;Initial Catalog=myDestinationDB;Integrated Security=True"

$sql = "select int_col, clob_col from TABLE_WITH_CLOB"
$tableName = "COPY_OF_CLOB_TABLE"

নিম্নলিখিত কোডটি একটি এসকিউএল-সার্ভার সারণীতে ওরাকল টেবিলটি অনুলিপি করে

$OLEDBConn = New-Object System.Data.OleDb.OleDbConnection($ConnectionString)
$OLEDBConn.open()
$readcmd = New-Object system.Data.OleDb.OleDbCommand($sql,$OLEDBConn)
$readcmd.CommandTimeout = '300'
$da = New-Object system.Data.OleDb.OleDbDataAdapter($readcmd)
$dt = New-Object system.Data.datatable
[void]$da.fill($dt)
$OLEDBConn.close()
#Write-Output $dt


if ($dt)
{
    try
    {
        $bulkCopy = new-object ("Data.SqlClient.SqlBulkCopy") $SqlClientConnString
        $bulkCopy.DestinationTableName = $tableName
        $bulkCopy.BatchSize = 50000
        $bulkCopy.BulkCopyTimeout = 0
        $bulkCopy.WriteToServer($dt)
    }
    catch
    {
        $ex = $_.Exception
        #Write-LogMessage -Source 'Write-DataTable' -Message "$($connectionName):$ex.Message"
        Write-Error "Write-DataTable$($connectionName):$ex.Message"
        continue
    }
}

বিটিডাব্লু: কোডটি চড মিলারস রিয়েল সিম্পল ডেটা ডিকশনারি কোড কোডপ্লেক্স প্রকল্পের ভিত্তিতে

বর্তমানে পাওয়ারশেল ব্যবহার করা কেবলমাত্র সিএলওবি দিয়ে ডেটা অনুলিপি থেকে এসকিএল-সার্ভারে সি # বা কোনও তৃতীয় পক্ষের সরঞ্জাম ব্যবহার না করে আমি অনুলিপি জানি know

আমি আমদানি / এক্সপোর্ট উইজার্ড বা লিঙ্কযুক্ত সার্ভারগুলি ব্যবহার করেও সফল হই নি।


আরআরএর জন্য তিন পয়েন্ট রিলিজ এবং এমএসের জন্য কমপক্ষে একটি পয়েন্ট রিলিজ হওয়ার কথা বিবেচনা করে No new updates are planned for future releases of these components including their support against versions later than Oracle 8i.
ব্যাকগ্রাউন্ড

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