ওরাকল এর ভিচারার এবং ভ্রচারআর 2 ডেটাটাইপগুলির মধ্যে পার্থক্য কী?


19

অন্য ডিবিএমএস থেকে ওরাকল এ টেবিলগুলি স্থানান্তরিত করার সময়, মানক কাজগুলির মধ্যে একটি হ'ল ক্ষেত্রগুলি (প্রদত্ত এন <= 4000) সহ সমস্ত VARCHAR(n)ক্ষেত্র প্রতিস্থাপন করাVARCHAR2(n)

ওরাকল কেন এই ডেটাটাইপটিকে অন্য ডিবিএমএসের মতো VARCHAR2নয় VARCHAR?

উত্তর:


26

মনে হবে যে এক সময়ে ওরাকল একটি ভিন্ন সংজ্ঞা দিতে পরিকল্পনা ছিল VARCHAR চেয়ে VARCHAR2 । এটি গ্রাহকদের এটি জানিয়েছে এবং ভ্রচারের ব্যবহারের বিরুদ্ধে প্রস্তাব দেয় । যাই হোক না কেন তাদের পরিকল্পনার ছিল, 11.2.0.2 হিসাবে VARCHAR অভিন্ন VARCHAR2 । এখানে কি এসকিউএল ভাষা রেফারেন্স 11g রিলিজ 2 বলেছেন:

ভর্কআরআর ডাটা টাইপ ব্যবহার করবেন না। পরিবর্তে VARCHAR2 ডেটা টাইপ ব্যবহার করুন। যদিও ভিচারআরআর ডাটা টাইপটি বর্তমানে ভিচারআর ২ এর সমার্থক, তবুও ভ্যাচারআর ডাটা টাইপটি পৃথক তুলনামূলক শব্দার্থের তুলনায় ভেরিয়েবল-দৈর্ঘ্যের অক্ষরের স্ট্রিংয়ের জন্য ব্যবহৃত একটি পৃথক ডেটা টাইপ হিসাবে পুনরায় সংজ্ঞায়িত করার পরিকল্পনা করা হয়েছে।

পিএল / SQL এর ব্যবহারকারীর পথপ্রদর্শক ও রেফারেন্স 10g রিলিজ 2 রাখে এই ভাবে:

বর্তমানে, ভ্রচারটি ভিআরএআরএআর 2 এর সমার্থক। যাইহোক, ভবিষ্যতে পিএল / এসকিউএল প্রকাশিত, উদীয়মান এসকিউএল স্ট্যান্ডার্ডগুলিকে সামঞ্জস্য করার জন্য, ভর্চার বিভিন্ন তুলনামূলক শব্দার্থবিজ্ঞানের সাথে একটি পৃথক ডেটাটাইপ হয়ে উঠতে পারে। ভর্চারের পরিবর্তে ভ্রচারআর 2 ব্যবহার করা ভাল ধারণা।

ডাটাবেজ ধারণা 10g রিলিজ 2 ডকুমেন্ট বলছেন শক্তিশালী পদ একই জিনিস:

VARCHAR ডেটাটাইপটি VARCHAR2 ডেটাটাইপের সমার্থক। আচরণের সম্ভাব্য পরিবর্তনগুলি এড়াতে, ভেরিয়েবল-দৈর্ঘ্যের অক্ষরের স্ট্রিংগুলি সঞ্চয় করতে সর্বদা VARCHAR2 ডেটাটাইপ ব্যবহার করুন।

ওরাকল 9.2 এবং 8.1.7 ডকুমেন্টেশন মূলত একই জিনিস তাই বলে যদিও ওরাকল ক্রমাগত ব্যবহার discourages, VARCHAR পর্যন্ত তারা এটা সমতা পরিবর্তন করতে কিছু করেনি VARCHAR2


আমি ওরাকল ৮ আইতে ভার্চার 2 মনে করি, তবে আমি নিশ্চিত নই যে এটি তখন একই ধরণের ছিল c
bernd_k

ইহা ছিল. ডাউনলোড . oracle.com/docs/cd/A87860_01/doc/server.817/a76965/… দেখুন ।
লেইফ রিফেল

এমন ইঙ্গিত রয়েছে যে 8i এর আগে কোনও সময় সংজ্ঞাটি আলাদা হতে পারে।
লেইফ রিফেল

আমি মনে করতাম varcharসংস্করণ 8 এর আগে আলাদা দৈর্ঘ্যের সীমা ছিল , তবে আমি এটির ব্যাক আপ করার মতো নামী কোনও কিছুই খুঁজে পাচ্ছি না এবং এখন ভাবছি এটি কেবল একটি মিথকথা কিনা।
জ্যাক ডগলাস

@ জ্যাক ডগলাস - আমি ওরাকল document এর নথিভুক্তিতে কিছুই খুঁজে পাচ্ছি না। Docs.oracle.com/cd/A57673_01/DOC/dcommon/oin/indexj.htm থেকে >> ওরাকল 7 সার্ভার >> সার্ভার ধারণাগুলি >> ওরাকল ডেটাটাইপস (এটির সাথে সরাসরি লিঙ্ক করতে পারে না) পরে একই কথা বলেছে সংস্করণ। সংস্করণ 7 নথিটির অন্য বিভাগে এটি বলে যে 6 সংস্করণে বর্ণচর এবং বর্ণচর 2 চরের সমার্থক শব্দ ছিল।
লে Riffel

25

বর্তমানে দুই সমার্থক।

ভর্চার একটি এএনএসআই স্ট্যান্ডার্ড ডেটা টাইপ তবে ওরাকল এর ভোচারআর ডাটা টাইপের বাস্তবায়ন এএনএসআই মানকে লঙ্ঘন করে খালি স্ট্রিংটিকে নুল হিসাবে বিবেচনা করে (ওরাকলের প্রয়োগটি এএনএসআই স্ট্যান্ডার্ডের পূর্বে রয়েছে)। লেইগটি উল্লেখ করেছে যে, ওরাকল বলেছেন যে খালি স্ট্রিংটি কীভাবে আচরণ করা হয় সে বিষয়ে ভবিষ্যতে ভিআচআরএআরআরর ডাটা টাইপের শব্দার্থক পরিবর্তন হতে পারে। যদি এবং যখন এটি ঘটে VARCHAR2 ডাটা টাইপ এর শব্দার্থবিদ্যা একই থাকবে। ভিচারআর ২ ডেটা টাইপ ব্যবহার করা নিরাপদ কারণ আপনার ভেবে দেখার দরকার নেই যে ওরাকলের কিছু ভবিষ্যতের সংস্করণ খালি স্ট্রিংগুলিকে আর ন্যুয়াল হিসাবে বিবেচনা না করে আপনার কোডটি ভঙ্গ করবে।


3

কারণ মূল এসকিউএল স্ট্যান্ডার্ডে একটি ভিচারার ছিল 255 অক্ষর, এবং ওরাকল কমপক্ষে সেই দিনগুলিতে মান সম্মতিতে ছুরিকাঘাত করেছিল।


যে আশা কিছু বছরে ওরাকল varchar3 (সর্বোচ্চ) দেখতে দেয়।
bernd_k

SQL সার্ভার কোন 255 থেকে 8000 অনুমতি দেওয়া দৈর্ঘ্য বৃদ্ধি (এবং এখন সর্বোচ্চ করার জন্য) সমস্যা ছিল। কেন ওরাকলকে আলাদা আলাদা ডেটাটাইপ দরকার ছিল।
bernd_k

1
varchar(max)CLOB
কোনটির

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