আমি আমাদের ওরাকল ডিবিতে কিছু অব্যবহৃত স্কিমা মুছে ফেলতে চেয়েছিলাম।
আমি সমস্ত স্কিমা নামের জন্য কীভাবে জিজ্ঞাসা করতে পারি?
আমি আমাদের ওরাকল ডিবিতে কিছু অব্যবহৃত স্কিমা মুছে ফেলতে চেয়েছিলাম।
আমি সমস্ত স্কিমা নামের জন্য কীভাবে জিজ্ঞাসা করতে পারি?
উত্তর:
স্ক্যালপ্লাস ব্যবহার করে
sqlplus / হিসাবে sysdba
চালান:
নির্বাচন করুন * DBA_users থেকে
আপনি কি কেবল ব্যবহারকারী নামগুলি নিম্নলিখিতটি করতে চাইবেন:
ব্যবহারকারী নাম নির্বাচন করুন DBA_users থেকে
সম্ভবত, আপনি চান
SELECT username
FROM dba_users
এটি আপনাকে সিস্টেমের সমস্ত ব্যবহারকারীকে (এবং এইভাবে সমস্ত সম্ভাব্য স্কিমা) দেখিয়ে দেবে। যদি আপনার "স্কিমা" সংজ্ঞাটি কোনও স্কিমা খালি রাখতে দেয় তবে আপনি এটি চান। যাইহোক, একটি অর্থগত পার্থক্য থাকতে পারে যেখানে লোকেরা কেবল কোনও কিছুকে স্কিমা বলতে চায় যদি এটি আসলে কমপক্ষে একটি অবজেক্টের মালিক হয় যাতে শত শত ব্যবহারকারীর অ্যাকাউন্টগুলি যে কোনও বস্তুর মালিকানা পাবে না তা বাদ দেওয়া হয়। এই ক্ষেত্রে
SELECT username
FROM dba_users u
WHERE EXISTS (
SELECT 1
FROM dba_objects o
WHERE o.owner = u.username )
ধরে নিলেন যে যে কেউ স্কিমা তৈরি করেছে সে ডিফল্ট টেবিল স্পেসগুলি নির্ধারণের বিষয়ে বুদ্ধিমান ছিল এবং ধরে নেওয়া যে ওরাকল যে স্কিমাগুলিতে আপনার আগ্রহী তা নয়, আপনি ভবিষ্যতবাণীগুলিতে যোগ করে সেই স্কিমাগুলি ফিল্টার করতে পারবেন default_tablespace
, অর্থাৎ
SELECT username
FROM dba_users
WHERE default_tablespace not in ('SYSTEM','SYSAUX')
বা
SELECT username
FROM dba_users u
WHERE EXISTS (
SELECT 1
FROM dba_objects o
WHERE o.owner = u.username )
AND default_tablespace not in ('SYSTEM','SYSAUX')
এটা একটা সিস্টেম যেখানে কেউ ভুল একটি অ-সিস্টেম ব্যবহারকারী একটি দিয়েছেন জুড়ে আসতে ভয়ঙ্কর বিরল নয় default_tablespace
এর SYSTEM
যদিও, তাই নির্দিষ্ট করা যে অনুমানের এই ভাবে আউট ওরাকল-বিতরিত স্কিমের ফিল্টার চেষ্টা করার আগে রাখা।
select distinct owner from dba_objects
?
SELECT username FROM all_users ORDER BY username;
dba_users
(উদাহরণস্বরূপ: ত্রুটি ORA-00942 : table or view does not exist
)
select distinct owner
from dba_segments
where owner in (select username from dba_users where default_tablespace not in ('SYSTEM','SYSAUX'));
এসকিএল এর নীচে ওরাকলে থাকা সমস্ত স্কিমা তালিকাবদ্ধ করে যা ইনস্টলেশনের পরে তৈরি হয় ORACLE_MAINTAINED = 'N' ফিল্টার। এই কলামটি 12c তে নতুন।
পৃথক ব্যবহারকারীর নাম নির্বাচন করুন, ORACLE_MAINTAINED dba_users থেকে যেখানে ORACLE_MAINTAINED = 'এন';
নিম্নলিখিত এসকিউএল এর যে কোনও একটিই ওরাকল ডিবিতে সমস্ত স্কিমা ফিরিয়ে দেবে।
select owner FROM all_tables group by owner;
select distinct owner FROM all_tables;