নন ইউনিকোড স্ট্রিংটিকে ইউনিকোড স্ট্রিং এসএসআইএসে রূপান্তর করা


9

আমি একটি প্যাকেজ তৈরি করছি যেখানে আমি একটি খালি এক্সেল ফাইলে ডাটাবেস থেকে ডেটা রফতানি করব। আমি যখন কেবল উত্স এবং গন্তব্য উপাদান যুক্ত করেছি এবং আমি প্যাকেজটি চালিয়েছি তখন আউটপুট কলাম এবং "ক" কলামটি ইউনিকোড এবং নন-ইউনিকোড স্ট্রিং ডেটা ধরণের মধ্যে রূপান্তর করতে পারে না তা জানিয়ে আমি একটি রূপান্তর ত্রুটি পেয়েছি।

এটি ঠিক করতে আমি একটি ডেটা রূপান্তর উপাদান যুক্ত করেছি এবং সমস্ত কলামগুলিকে রূপান্তর করেছি

"ইউনিকোড স্ট্রিং [DT_WSTR]"

এবং আমি আর ত্রুটিটি পাই নি। একমাত্র সমস্যাটি হ'ল আমার প্রায় 50 টি কলাম রয়েছে যেখানে আমাকে 1 করে 1 করে যেতে হয়েছিল এবং ড্রপ ডাউন তালিকা থেকে "ইউনিকোড স্ট্রিং [DT_WSTR]" নির্বাচন করতে হয়েছিল। আমাকে তখন গন্তব্য উপাদানটিতে যেতে হবে এবং আমার এক্সেল ফাইলটিতে নতুন রূপান্তরিত কলামগুলি ম্যাপ করতে হয়েছিল।

আমার প্রশ্নটি হ'ল, যদি অন্য কেউ এই বিষয়টি নিয়ে আসে তবে সমস্ত ম্যানুয়াল ডেটা ধরণের রূপান্তরগুলি করার জন্য আরও ভাল কোনও উপায় আছে কি? এক এক করে সমস্ত কলামকে রূপান্তর এবং মানচিত্র করা ব্যবহারিক বলে মনে হচ্ছে না বিশেষত আপনার কাছে যদি সারি সংখ্যক সারি থাকে।

আমি বুঝতে পারি যে এক্সেল ফাইলগুলি ডেটা আমদানি ও রফতানির জন্য যাওয়ার সর্বোত্তম উপায় নয় তবে এই বিশেষ ক্ষেত্রে এটিই প্রয়োজন।

আমি কেবল একটি ফ্ল্যাট টেক্সট ফাইলে রফতানি করার উপায় খুঁজতে পারি এবং তারপরে প্যাকেজের শেষ ধাপ হিসাবে এক্সেলে রূপান্তর করার চেষ্টা করব। আমি আশা করছি যে এই অদৃশ্য একই ইউনিকোড / ননুনিকোড রূপান্তর ত্রুটি ট্রিগার করবে।


আপনার কার্পাল টানেল সিন্ড্রোম এর পরে কেমন আছে? :-)
প্যাট্রিক হনোরেজ

আপনি যে টেবিলটিতে ডেটা সরিয়ে নিয়েছেন সেটি ইউনিকোড ডেটা টাইপ (যেমন: এনভারচর (50) বার্চারের পরিবর্তে (50)) ব্যবহার করছে তা নিশ্চিত করুন
ম্যাকগাইভার

উত্তর:


15

আরডিসির বিকল্প হিসাবে, আমি কেবল এসএসআইএস-তে ডেটা ধরণের রূপান্তরগুলি এড়িয়ে গিয়ে স্পষ্টভাবে আমার উত্স ক্যোয়ারীতে এগুলি এনভারচার হিসাবে নিক্ষেপ করব।

ব্যবহার

আপনার সোর্স ক্যোয়ারীতে (এবং আপনি হয় একটি উৎস ক্যোয়ারী ব্যবহার করে এবং না কেবল ড্রপ ডাউন টেবিল নির্বাচন), স্পষ্টভাবে একটি যথাযথ এন (Var) গৃহস্থালির কাজ দৈর্ঘ্য জিনিস নির্বাচিত করেন।

পরিবর্তে

SELECT
    E.BusinessEntityID
,   E.NationalIDNumber
,   E.LoginID
,   E.JobTitle
,   E.BirthDate
,   E.MaritalStatus
,   E.Gender
FROM
    HumanResources.Employee AS E

যেমন একটি কোয়েরি ব্যবহার করুন

SELECT
    CAST(E.BusinessEntityID AS nvarchar(10)) AS BusinessEntityID
,   CAST(E.NationalIDNumber AS nvarchar(15)) AS NationalIDNumber
,   CAST(E.LoginID AS nvarchar(256)) AS LoginID
,   CAST(E.JobTitle AS nvarchar(50)) AS JobTitle
,   CAST(E.BirthDate AS nvarchar(10)) AS BirthDate
,   CAST(E.MaritalStatus AS nchar(1)) AS MaritalStatus
,   CAST(E.Gender AS nchar(1)) AS Gender
FROM
    HumanResources.Employee AS E

অ্যাডভেঞ্চার ওয়ার্কার্সের বিস্মিত শিক্ষার্থীরা ডেটাটি ইতিমধ্যে এক n(var)charধরণের স্বীকৃতি দেবে তবে এটি কেবল ধারণাটি প্রদর্শন করার জন্য।

উপকারিতা

  • কম স্মৃতি ব্যবহৃত হয়। বর্তমানে, আপনি Data Conversion Componentএসএসআইএস-এ ব্যবহার করে "একই" ডেটার দুটি অনুলিপি বরাদ্দ এবং সংরক্ষণ করছেন
  • কোনও আরএসআই নেই । এন-টি ক্লিক করার দরকার নেই এবং তারা যে ভয়ঙ্কর ছোট্ট সম্পাদক সরবরাহ করেন সে সমস্ত তথ্য নির্দিষ্ট করে। "এক্সেল রেডি" টেবিল রফতানীর প্রজন্মকে আরও স্বয়ংক্রিয় করতে আমি dmv / তথ্য_স্কেমার বিপরীতে একটি প্রশ্ন ব্যবহার করব use
  • কোনও কাস্টম উপাদান ইনস্টলেশন নেই। আমি যেখানে ওপেন সোর্স ইনস্টল করা ভার্বোটেন ছিল সেখানে কাজ করেছি। তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলি ইনস্টল করার জন্য একটি স্থগিত রক্ষণাবেক্ষণের ব্যয়ও রয়েছে কারণ এখন "প্রত্যেকের" আপনার কোড বজায় রাখতে একই অ্যাপটি ইনস্টল করা দরকার এবং এটি সার্ভারগুলিতে ইনস্টল করা প্রয়োজন এবং ইনফোসেকের আইনসভাগুলি বৈধ কিনা তা নিশ্চিত করার জন্য তদন্ত করতে হবে এবং আমাদের এমন এক বাজিলিয়ান লোকের কাছ থেকে সাইনঅফ দরকার যা আপনাকে ছাড়িয়ে যায় ...

1
"আরডিসির বিকল্প হিসাবে" - আরডিসি কী? আমি যখন পরবর্তী উত্তরে পড়ি, তখন আমি মনে করি আপনার অর্থ ডেটা কম্পোনেন্ট প্রতিস্থাপনের অর্থ হতে পারে, তবে মূল পোস্টটির লেখক যে উপাদানটির উল্লেখ করেন নি, সংক্ষিপ্ত আকারের জন্য খুব তাড়াতাড়ি হতে পারে। :-)
এপ্রিল

আরএসআই সম্পর্কে কথা বলার CONVERTচেয়ে 50 বার পেস্ট করা সহজ হওয়া উচিত CAST, যেহেতু যুক্তিগুলি সামনে রয়েছে
প্যাট্রিক হোনোরেজ

5

স্থানীয়ভাবে, এটি করার কোনও উপায় নেই। তবে আপনি ডাউনলোড করতে পারেন - কোডেপ্লেক্স থেকে এসএসআইএসের জন্য ডেটা কনভার্সন উপাদানকে প্রতিস্থাপন এবং এটি একটি শটে করুন in

আরও তথ্য এখানে পাওয়া যাবে


2

আপনি যদি কেবল "ইউনিকোড স্ট্রিং (DT_WSTR)" থেকে "স্ট্রিং (DT_STR)" বা তার বিপরীতে পরিবর্তন করতে চান তবে আপনি এটি করতে পারেন:

  1. আপনার প্যাকেজ.ডিটিএসএক্স-ফাইলের একটি অনুলিপি সংরক্ষণ করুন (ক্ষেত্রে আপনাকে অবশ্যই পুনরুদ্ধার করতে হবে)
  2. একটি সম্পাদকে বা এমএস ভিজ্যুয়াল স্টুডিওতে প্যাকেজ.ডিটিএসএক্স খুলুন প্যাকেজটিতে ডান ক্লিক করুন এবং "কোড দেখুন" নির্বাচন করুন। আপনি একটি এক্সএমএল-ফাইল দেখতে পাবেন।

স্ট্রিংটি অনুসন্ধান করুন DTS:DataTypeযদি এটি = "130" দ্বারা অনুসরণ করা হয়, তারপরে কলামটি DT_WSTR (ইউনিকোড) হিসাবে সংজ্ঞায়িত করা হয়েছে।

যদি এটি = "129" দ্বারা অনুসরণ করা হয়, তারপরে কলামটি DT_STR (অ-ইউনিকোড) হিসাবে সংজ্ঞায়িত করা হয়েছে, অনুসন্ধান ব্যবহার করুন এবং যত্ন সহ প্রতিস্থাপন করুন (আপনি আগে একটি অনুলিপি তৈরি করেছিলেন, তাই না?)

ফাইলটি সংরক্ষণ করুন এবং সম্ভবত এটি ছিল।


1
ডিবিএ এসই তে স্বাগতম! প্রো টিপ: আপনার পোস্টগুলি আরও ভাল করে দেখানোর জন্য সাইটে বিভিন্ন পাঠ্য বিন্যাসের বৈশিষ্ট্য রয়েছে। সম্পাদক পাঠ্যবক্সের শীর্ষে আইকনগুলি ব্যবহার করুন।
পিটারহ - মনিকা পুনরায় ইনস্টল করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.