কীভাবে আমি ওরাকলে একটি সংরক্ষিত শব্দ থেকে বাঁচতে পারি?


134

টিএসকিউএল-তে আমি Select [table] from tablename"টেবিল" নামে একটি কলাম নির্বাচন করার মতো কিছু ব্যবহার করতে পারি ।

ওরাকলে সংরক্ষিত শব্দের জন্য আমি কীভাবে এটি করব?

সম্পাদনা করুন: আমি স্কোয়ার ধনুর্বন্ধনী, ডাবল উদ্ধৃতি, একক উদ্ধৃতি এবং ব্যাককোট চেষ্টা করেছি, তারা কাজ করে না ...

আরও স্পষ্টতা হিসাবে, আমার একটি কলাম রয়েছে যার নাম মন্তব্য করেছে। যেহেতু এটি একটি সংরক্ষিত শব্দ ওরাকল একটি দোলা দিয়ে এটি নির্বাচন করার চেষ্টা করছে, কোয়েরিটি বিশ্লেষণ করার সময় এটি ব্যর্থ। আমি টেবিলের নাম থেকে "মন্তব্য" নির্বাচন করার চেষ্টা করেছি কিন্তু এটি কার্যকর হয়নি। আমি কেস চেক করব এবং ফিরে আসব।


উত্তর:


195

তাত্ক্ষণিক অনুসন্ধান থেকে, ওরাকল ডাবল উক্তি ব্যবহার করে ( "যেমন, উদাহরণস্বরূপ "table") এবং স্পষ্টতই যথাযথ ক্ষেত্রে প্রয়োজন requires কোথাও আগ্রহী, মাইএসকিউএল ব্যাকটিক্স (`) ব্যবহারের জন্য ডিফল্ট যখন সামঞ্জস্যের জন্য ডাবল উদ্ধৃতি ব্যবহার সেট না করে।


2
আমি আপনাকে চিহ্নিত করেছি কারণ আমি ডাবল উক্তি ব্যবহার করে শব্দটি পালানোর চেষ্টা করেছি এবং এটি কার্যকর হয়নি।
স্পেন

13
ডিফল্টরূপে, ওরাকল কোনও শনাক্তকারীকে আপস করবে। সুতরাং আপনার যদি ছোট আকারের অক্ষর বা বিশেষ অক্ষরগুলির প্রয়োজন হয় বা সনাক্তকারী একটি ওরাকল সংরক্ষিত শব্দ হয় তবে এটি ডাবল উদ্ধৃতিতে আবদ্ধ হওয়া প্রয়োজন। যেহেতু ডাবল উদ্ধৃতিগুলি কেস সংরক্ষণ করে, তাই সনাক্তকারীকেও সঠিক ক্ষেত্রে হওয়া দরকার।
মেট্রো

এসকিউএল বিকাশকারী ভি 4 ব্যবহার করে একটি ওরাকল 11 জি রিলিজ 2 এক্সপ্রেস ডাটাবেস হিট করে আমি একটি ক্ষেত্র "ওরফে" দিয়ে একটি সারণী তৈরি করেছি। আমার নির্বাচন কাজ করেছিল যখন আমি ওরফে পরিবর্তে "ALIAS" লিখি।
ব্রোকেন_উইন্ডো

ট্রিগারগুলির জন্য কাজ করছেন না, একটি নাম দিয়ে একটি টেবিলের জন্য একটি ট্রিগার তৈরি করার চেষ্টা করুন যা ORA-30507 (যেমন DATABASE) লঙ্ঘন করে with
ফ্লুভ

সমস্ত বড় হাতের "টেবিলে" এ চেষ্টা করে দেখুন।
আরএসএইচএপ

34

ওরাকল সাধারণত এসকিউএল বিবৃতিতে সনাক্তকারীদের নাম সীমিত করতে ডাবল-কোট প্রয়োজন-

SELECT "MyColumn" AS "MyColAlias"
FROM "MyTable" "Alias"
WHERE "ThisCol" = 'That Value';

তবে এটি দয়া করে ডাবল-কোট বাদ দিতে মঞ্জুরি দেয়, সেক্ষেত্রে এটি চুপচাপ শনাক্তকারীকে বড়হাতে রূপান্তর করে:

SELECT MyColumn AS MyColAlias
FROM MyTable Alias
WHERE ThisCol = 'That Value';

অভ্যন্তরীণভাবে এমন কিছুতে রূপান্তরিত হয়:

SELECT "ALIAS" . "MYCOLUMN" AS "MYCOLALIAS"
FROM "THEUSER" . "MYTABLE" "ALIAS"
WHERE "ALIAS" . "THISCOL" = 'That Value';

8

ডাবল উক্তিগুলি ওরাকলে কাজ করেছিল যখন আমার কাছে কলামের নামের একটি হিসাবে কীওয়ার্ড ছিল।

উদাহরণ:

select t."size" from table t 

3

ওরাকল ডাবল-কোট ব্যবহার করে তবে আপনার সম্ভবত অবজেক্টের নামটি বড় হাতের অক্ষরে রাখা দরকার, যেমন "টেবিল"। ডিফল্টরূপে, আপনি যদি ডাবল উদ্ধৃতিবিহীন কোনও বস্তু তৈরি করেন, যেমন

CREATE TABLE table AS ...

ওরাকল বস্তুটি আপার কেস হিসাবে তৈরি করবে । তবে, আপনি ডাবল-কোট ব্যবহার না করে রেফারেন্সিং কেস সংবেদনশীল নয়!


-8

আপনার কলামটি অন্য একটি নামে নামকরণ করতে হবে কারণ TABLEওরাকল দ্বারা সংরক্ষিত।

ওরাকল ভিউতে আপনি ওরাকলের সমস্ত সংরক্ষিত শব্দ দেখতে পাবেন V$RESERVED_WORDS


আমি ORA-00942যখন চেষ্টা করি তখন পাই select * from V$RESERVED_WORDS
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.