আমি কীভাবে ওরাকল এসকিউএল এর স্কিমাতে সমস্ত টেবিল তালিকা করব?


159

কীভাবে আমি ওরাকল এসকিউএল এর স্কিমাতে সমস্ত টেবিল তালিকা করব?

উত্তর:


220

অন্য স্কিমাতে সমস্ত সারণী দেখতে আপনার নিম্নলিখিত সিস্টেমের সুবিধাগুলির এক বা একাধিক হওয়া দরকার:

SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE

বা বড় হাতুড়ি, ডিবিএ ভূমিকা।

এর যে কোনও একটির সাথে আপনি নির্বাচন করতে পারেন:

SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM DBA_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

এই সিস্টেমের সুযোগগুলি ব্যতীত, আপনি কেবল সারণীগুলি দেখতে পারবেন যা আপনাকে সরাসরি বা কোনও ভূমিকার মাধ্যমে কিছু স্তরের অ্যাক্সেসের অনুমতি দেওয়া হয়েছে।

SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM ALL_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

অবশেষে, আপনি সর্বদা আপনার নিজের টেবিলগুলির জন্য ডেটা ডিকশনারিটি জিজ্ঞাসা করতে পারেন, কারণ আপনার টেবিলগুলিতে আপনার অধিকারগুলি বাতিল করা যাবে না (10 গ্রাম হিসাবে):

SELECT DISTINCT OBJECT_NAME 
  FROM USER_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'

2
%_OBJECTSপরিবর্তে এর ব্যবহার ব্যতীত "সর্বাধিক সম্পূর্ণ উত্তর" %_TABLES
এপিসি

আমার 9i তে মনে আছে যে ভিউগুলি% _TABLES এ তালিকাভুক্ত করা হবে - সুতরাং উদাহরণস্বরূপ, একটি স্কিমা খালি করার স্বয়ংক্রিয় চেষ্টা করার সাথে ড্রপ টেবল রিয়েল_এ_ভিউ ক্যাসকেড চুক্তি নিক্ষেপ করার মতো বিবৃতি দিয়ে শেষ হবে। সুতরাং আপনাকে হয় মাইনাস / নট ইন / অস্তিত্বের সাথে মতামতগুলি সরাতে হবে বা% _OBJECTS এ আবার যেতে হবে। এছাড়াও,% _OBJECTS এর বিপরীতে যাওয়ার ফলে সেখানে আর কী থাকতে পারে তার এক প্রচ্ছন্ন ইঙ্গিত ছেড়ে যায়!
অ্যাডাম মাশ্চ

1
কোয়েরিতে একেবারে কোনও প্রয়োজন নেই DISTINCTowner, object_nameঅদ্বিতীয়ALL_OBJECTS
a_horse_with_no_name

1
এই প্রশ্নগুলির পৃথক প্রয়োজন নেই, এটি সত্য; তবে, owner, object_nameডিবিএ_জেক্টগুলিতে কোনও উপায়েই অনন্য নয়; প্যাকেজ সংস্থা এবং প্যাকেজগুলি উভয়ই সেই ভিউতে উপস্থিত হয় এবং সারণী এবং সূচীগুলি পৃথক নেমস্পেসে থাকে।
অ্যাডাম মাশশ

এক্সি ১১.২-তে শেষ কোয়েরিটি কাজ করবে না। 'ইউজার_জেক্টস' তে কোনও 'মালিক' কলাম নেই বলে মনে হচ্ছে।
রাফায়েল

71
SELECT table_name  from all_tables where owner = 'YOURSCHEMA';

2
এটি কেবল আপনার স্কোরের সমস্ত টেবিলগুলি প্রদর্শিত হবে যদি আপনার নিজেরচেমা দ্বারা চালিত হয় বা কোনও ব্যবহারকারী অ্যাডাম মশকের দ্বারা উল্লিখিত সুবিধা সহ চালিত হয়। অন্যথায় এটি কেবলমাত্র আপনার স্ক্রিমায় সারণীগুলি দেখায় যা আমাদের কাছে সুযোগসুবিধা পেয়েছে।
এপিসি

14

আপনি জিজ্ঞাসা করতে পারেন USER_TABLES

select TABLE_NAME from user_tables

5
এটি আপনার স্কিমার সমস্ত টেবিল, কোনও স্কিমাতে থাকা সমস্ত টেবিল নয়। এছাড়াও, * _TABLES ডেটা অভিধানের দর্শনগুলিতে (ডিবিএ_TABLES, ALL_TABLES, USER_TABLES) ভিউ অন্তর্ভুক্ত রয়েছে।
অ্যাডাম মাশচ

"ভিউ অন্তর্ভুক্ত করুন" এর সাথে প্রতিস্থাপন করুন ওরাকল এর সেম সংস্করণগুলিতে ভিউ অন্তর্ভুক্ত করতে পারে।
অ্যাডাম মাশচ

@ অ্যাডাম মাশচ ওরাকল 10 জি আর 2 ব্যবহার করে পরীক্ষিত, এটি দর্শন ফেরেনি।
সত্যজিৎ ভাট

4

আপনি ডিবিএ অনুমতি ব্যতীত সাধারণ ব্যবহারকারী হিসাবে লগ ইন করলে আপনি নিজের স্কিমার সমস্ত টেবিল এবং দর্শনগুলি দেখতে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন।

select * from tab;

3

এটি চেষ্টা করে দেখুন, প্রতিস্থাপন করবেন? আপনার স্কিমা নাম সহ

select TABLE_NAME from  INFORMATION_SCHEMA.TABLES
 WHERE TABLE_SCHEMA =?
  AND TABLE_TYPE = 'BASE TABLE'

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

2

আপনি JDBC এর (জাভা) সঙ্গে ওরাকল ব্যবহার করছেন তাহলে আপনি ব্যবহার করতে পারেন DatabaseMetadata বর্গ। আপনি যদি ADO.NET এর সাথে ওরাকল অ্যাক্সেস করে থাকেন তবে আপনিও অনুরূপ পদ্ধতির ব্যবহার করতে পারেন।

যদি আপনি ওডিসি দিয়ে অর্যাকল অ্যাক্সেস করে থাকেন তবে আপনি এসকিউএল টেবিলগুলি ব্যবহার করতে পারেন ।

অন্যথায়, আপনার যদি কেবল এসকিউএলপ্লাস বা অনুরূপ ওরাকল ক্লায়েন্টের তথ্য প্রয়োজন হয় তবে ইতিমধ্যে উল্লিখিত প্রশ্নের মধ্যে একটি করবে। এই ক্ষেত্রে:

select TABLE_NAME from user_tables

2
select * from cat;

এটি ব্যবহারকারীর_ ক্যাটালগের আপনার স্কিমা বিড়ালের প্রতিশব্দে সমস্ত সারণী প্রদর্শন করবে


2
select TABLE_NAME from user_tables;

উপরের ক্যোয়ারী আপনাকে সেই ব্যবহারকারীর মধ্যে উপস্থিত সমস্ত টেবিলের নাম দেবে;


2
select * from user_tables;

(সমস্ত সারণী দেখানো হচ্ছে)


1

টেবিলের নাম নির্বাচন করুন, মালিক FROM all_tables যেখানে মালিক = 'স্কিমা_নাম' টেবিলের নাম অনুসারে অর্ডার করুন


1

আপনি যদি মালিকের নাম জানেন তবে আপনি সরাসরি দ্বিতীয় ক্যোয়ারী চালাতে পারেন।

- প্রথমে সেখানে সমস্ত মালিকানাধীন কী আছে তা নির্বাচন করতে পারেন:

SELECT DISTINCT(owner) from SYS.ALL_TABLES;

- তারপরে আপনি সেই মালিকের অধীনে সারণীগুলি দেখতে পাবেন:

SELECT table_name, owner from all_tables where owner like ('%XYZ%');


0

যদি আপনার পাশাপাশি টেবিলের আকারও প্রয়োজন হয় তবে এটি কার্যকর হবে:

select SEGMENT_NAME, PARTITION_NAME, BYTES from user_segments where SEGMENT_TYPE='TABLE' order by 1


0

OWNERস্কিমার অধীনে সমস্ত সারণীর জন্য সারণির নাম এবং সারিগুলির নাম :

SELECT table_name, num_rows counter from DBA_TABLES WHERE owner = 'OWNER'

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