ඔරකල් හි ඇති සියලුම වගු ලැයිස්තුව ලබා ගන්න?


1114

ඔරකල් දත්ත ගබඩාවක් එහි ඇති සියලුම වගු වල නම් පෙන්වීමට මා විමසන්නේ කෙසේද?


1
වන්නේද, SHOW TABLES(MySQL සිදු ලෙස) වැඩ?
මාටින් තෝමා

1
Ar මාටින්ටෝමා නැත. ගූගල් වෙත යාමට පෙර එය මුලින්ම උත්සාහ කරන්න
ඇඩම් බර්ලි

Answers:


1375
SELECT owner, table_name
  FROM dba_tables

මෙය උපකල්පනය කරන්නේ ඔබට DBA_TABLESදත්ත ශබ්ද කෝෂ දර්ශනයට ප්‍රවේශය ඇති බවයි . ඔබට එම වරප්‍රසාද නොමැති නමුත් ඒවා අවශ්‍ය නම්, එම වගුවේ DBA ඔබට වරප්‍රසාද පැහැදිලිවම ලබා දෙන ලෙස ඉල්ලා සිටිය හැකිය, නැතහොත්, DBA ඔබට SELECT ANY DICTIONARYවරප්‍රසාදය හෝ SELECT_CATALOG_ROLEභූමිකාව ලබා දෙන ලෙස ඉල්ලා සිටිය හැකිය (මේ දෙකෙන් ඕනෑම දත්ත ශබ්ද කෝෂ වගුවක් විමසීමට ඔබට ඉඩ සලසයි ). ඇත්ත වශයෙන්ම, ඔබ වැනි ඇතැම් ස්කීමා ඉවත් කිරීමට ඔබට අවශ්ය විය හැක SYSහා SYSTEMවන, ඔබට මීට ගැන සැලකිලිමත් නොවන බව ඔරකල් වගු විශාල සංඛ්යාවක් තියෙනවා.

විකල්පයක් ලෙස, ඔබට ප්‍රවේශය නොමැති නම් DBA_TABLES, ALL_TABLESදර්ශනය හරහා ඔබේ ගිණුමට ප්‍රවේශ විය හැකි සියලුම වගු ඔබට දැක ගත හැකිය :

SELECT owner, table_name
  FROM all_tables

කෙසේ වෙතත්, එය දත්ත සමුදායේ ඇති වගු වල උප කුලකයක් විය හැකිය ( ALL_TABLESඔබේ පරිශීලකයාට ප්‍රවේශය ලබා දී ඇති සියලුම වගු සඳහා තොරතුරු පෙන්වයි).

ඔබ සැලකිලිමත් වන්නේ ඔබට ඇති වගු ගැන මිස ඔබට ප්‍රවේශ විය හැකි වගු ගැන නොවේ නම්, ඔබට මෙය භාවිතා කළ හැකිය USER_TABLES:

SELECT table_name
  FROM user_tables

USER_TABLESඔබ සතුව ඇති වගු පිළිබඳ තොරතුරු පමණක් ඇති බැවින් , එයට OWNERතීරුවක් නොමැත - හිමිකරු, අර්ථ දැක්වීම අනුව, ඔබ ය.

ඔරකල් ද ශබ්ද කෝෂය views-- උරුමය දත්ත ගණනාවක් ඇත TAB, DICT, TABS, හා CATexample-- භාවිත කළ හැකි බව ය. පොදුවේ ගත් කල, ඔබේ ස්ක්‍රිප්ට් ඔරකල් 6 වෙත ආපසු යැවීමට ඔබට අවශ්‍ය නම් මිස, මෙම උරුම අදහස් භාවිතා කිරීමට මම යෝජනා නොකරමි. ඔරකල් මෙම අදහස් දීර් time කාලයක් තිස්සේ වෙනස් කර නැති නිසා බොහෝ විට නව වර්ගයේ වස්තූන් සමඟ ගැටලු ඇති වේ. නිදසුනක් ලෙස, TABසහ CATදර්ශන දෙකම පරිශීලකයාගේ ප්‍රතිචක්‍රීකරණ බඳුනේ ඇති වගු පිළිබඳ තොරතුරු පෙන්වන අතර [DBA|ALL|USER]_TABLESදර්ශන සියල්ලම ඒවා පෙරහන් කරයි. "TABLE" CATසමඟ ද්‍රව්‍යමය දර්ශන TABLE_TYPEල logs ු-සටහන් පිළිබඳ තොරතුරු ද පෙන්වයි, එය ඔබට සැබවින්ම අවශ්‍ය දේ විය නොහැක. DICTවගු සහ සමාන පද ඒකාබද්ධ කරන අතර වස්තුව අයිති කාටදැයි ඔබට නොකියයි.


9
මට ව්‍යතිරේකයක් ලැබෙමින් තිබේ "ORA-00942: වගුව හෝ දර්ශනය නොපවතී"
vitule

46
එවිට දත්ත සමුදායේ ඇති සියලුම වගු බැලීමට ඔබට අවසර ලබා දී නොමැත. ඔබට ප්‍රවේශ වීමට අවසර දී ඇති සියලුම වගු බැලීමට ඔබට ALL_TABLES දත්ත ශබ්ද කෝෂ දර්ශනය විමසිය හැකිය, එය දත්ත සමුදායේ ඇති වගු වල කුඩා උප කුලකයක් විය හැකිය.
ජස්ටින් ගුහාව

එදිනෙදා වර්ගීකරණ පරිශීලකයෙකු නොවන්නේ නම් සරල වැරැද්ද: ඉහත විධානයන් සමඟ ප්‍රති results ල නොලැබුනේ නම් අවසන් අර්ධ-මහා (';') එකතු කරන්න :).
ගිම්හානි

ඔරකල් 12 සී වන විට, ඔබේ ප්‍රති results ල කට්ටලයෙන් පද්ධති වගු ඉවත් කිරීමට උදව් කිරීම සඳහා dba_users දත්ත ශබ්ද කෝෂයේ තීරුවක් ඇති බව සලකන්න. සම්පූර්ණ විමසුම වනුයේ හිමිකරු තෝරා නොගන්නා dba_tables වෙතින් වගු නාමය (oracle_maintained = 'Y' ඇති dba_users වෙතින් පරිශීලක නාමය තෝරන්න)
saritonin

182

විමසීම user_tablesසහ dba_tablesවැඩ කළේ නැත.
මේ තැනැත්තා කළේ:

select table_name from all_tables  

14
සමාවෙන්න, එය පැහැදිලිවම වැරදිය. දර්ශනය හැඳින්වෙන්නේ user_tables ලෙස මිස user_table ලෙස නොවේ. User_tables විටියුලය සඳහා ක්‍රියා නොකළේ නම්, වෙනත් දෙයක් වැරදිය.
ෆ්‍රෑන්ක් ෂ්මිට්

67

තවත් එක් පියවරක් ඉදිරියට යන විට, cols (all_tab_columns) නමින් තවත් දර්ශනයක් ඇත, එය ලබා දී ඇති තීරු නාමයක් අඩංගු වගු මොනවාදැයි සොයා ගැනීමට භාවිතා කළ හැකිය.

උදාහරණයක් වශයෙන්:

SELECT table_name, column_name
FROM cols
WHERE table_name LIKE 'EST%'
AND column_name LIKE '%CALLREF%';

EST වලින් ආරම්භ වන නමක් ඇති සියළුම වගු සහ ඒවායේ නම් වලින් ඕනෑම තැනක CALLREF අඩංගු තීරු සොයා ගැනීමට.

ඔබට සම්බන්ධ වීමට අවශ්‍ය තීරු මොනවාදැයි වැඩ කිරීමේදී මෙය උපකාරී වේ, උදාහරණයක් ලෙස, ඔබේ වගුව සහ තීරු නම් කිරීමේ සම්මුතීන් මත පදනම්ව.


4
මම කර select * from colsපේළි 0 ක් ආපසු ලබා දුන්නා.
ගේබ්

50

සමඟ වඩා හොඳ බැලීම සඳහා sqlplus

ඔබ භාවිතා sqlplusකරන්නේ නම්, ඔබේ තීරු අබලන් වී තිබේ නම් පළමුවෙන්ම පරාමිති කිහිපයක් සැකසීමට ඔබට අවශ්‍ය විය හැකිය (ඔබ ඔබේ sqlplusසැසිවාරයෙන් ඉවත් වූ පසු මෙම විචල්‍යයන් නොපවතිනු ඇත ):

set colsep '|'
set linesize 167
set pagesize 30
set pagesize 1000

සියලුම වගු පෙන්වන්න

සියලු වගු නම් බැලීමට ඔබට මෙවැනි දෙයක් භාවිතා කළ හැකිය:

SELECT table_name, owner, tablespace_name FROM all_tables;

ඔබට අයිති වගු පෙන්වන්න

Ust ජස්ටින් ගුහාව සඳහන් කරන පරිදි, ඔබට මෙය අයිති ඔබට ඇති වගු පමණක් පෙන්වීමට භාවිතා කළ හැකිය:

SELECT table_name FROM user_tables;

දර්ශන ගැන අමතක නොකරන්න

සමහර "වගු" ඇත්ත වශයෙන්ම "දර්ශන" විය හැකි බව මතක තබා ගන්න, එවිට ඔබට මෙවැනි දෙයක් ධාවනය කිරීමට උත්සාහ කළ හැකිය:

SELECT view_name FROM all_views;

ප්රතිඵල

මෙය තරමක් පිළිගත හැකි පෙනුමක් ලබා දිය යුතුය:

ප්‍රති .ලය


8
ඇති "වඩා හොඳ නැරඹීම" උපදෙස් සඳහා ස්තුති, නමුත් ඔබට overwritting නැත pagesize 30සමග pagesize 1000?
පැබ්ලෝ රෙකෝල්ඩ්


20
    select object_name from user_objects where object_type='TABLE';

----------------හෝ------------------

    select * from tab;

----------------හෝ------------------

    select table_name from user_tables;

පළමු 2 වැඩ කළේ මගෙන්. අන්තිමයා 'පේළි කිසිවක් තෝරාගෙන නැත'. මම හිතන්නේ ඇයි?
උපුලි හැන්


9

වත්මන් පරිශීලකයා සතු වගු ලැයිස්තුගත කරන user_tables වෙතින් තෝරා ගැනීමට උත්සාහ කරන්න .


9

පහත දැක්වෙන විමසුම භාවිතා කර සියලුම වගු වල නම් පෙන්වීමට ඔරකල් දත්ත සමුදාය

හිමිකරු තෝරන්න, වගුවේ නම FROM dba_tables;

අයිතිකරු තෝරන්න, වගු නාමය FROM all_tables;

පරිශීලක_ වගු වලින් වගු නාමය තෝරන්න;

තවත් බලන්න: http://www.plsqlinformation.com/2016/08/get-list-of-all-tables-in-oracle.html


8

ඒවායින් ඕනෑම එකක් සමඟ ඔබට තෝරා ගත හැකිය:

SELECT DISTINCT OWNER, OBJECT_NAME 
    FROM DBA_OBJECTS 
    WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';

SELECT DISTINCT OWNER, OBJECT_NAME 
    FROM ALL_OBJECTS 
    WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';

6
select * from dba_tables

සියලුම පරිශීලකයින්ගේ සියලු වගු ලබා දෙන්නේ ඔබ පුරනය වී ඇති පරිශීලකයාට sysdbaවරප්‍රසාද තිබේ නම් පමණි.


4
එය ඇත්ත වශයෙන්ම නිවැරදි නොවේ. SYSDBA අවශ්‍ය නොවේ. ඔබට DBA_TABLES වෙත බොහෝ ආකාරවලින් ප්‍රවේශය ලබා ගත හැකිය. 1.) SYS විසින් පරිශීලකයාට වස්තුව සඳහා සෘජු ප්‍රදානය. 2.) තෝරා ගැනීමේ වරප්‍රසාදය පරිශීලකයාට ලබා දීම. 3.) SELECT_CATALOG_ROLE භූමිකාව ප්‍රදානය කිරීම.
මාර්ක් ජේ. බොබාක්

4

භාවිතා කිරීමට යොමු වන පිළිතුරක් මට හමු නොවීය

DBA_ALL_TABLES (ALL_ALL_TABLES/USER_ALL_TABLES)

ඒ නිසා මගේ අනුවාදය ද එක් කිරීමට තීරණය කළා. මෙම දර්ශනය ඇත්ත වශයෙන්ම DBA_TABLES වස්තු වගු ද ලබා දෙයි ( http://docs.oracle.com/cd/E11882_01/server.112/e40402/statviews_1003.htm ).


4

ඔරකල් වස්තු පිළිබඳ තොරතුරු ලබා ගැනීමට ඔබට ඔරකල් දත්ත ශබ්ද කෝෂය භාවිතා කළ හැකිය .

ඔබට විවිධ ආකාරවලින් වගු ලැයිස්තුව ලබා ගත හැකිය:

select * 
from dba_tables

හෝ උදාහරණයක් ලෙස:

select * 
from dba_objects 
where object_type = 'TABLE' 

එවිට ඔබට වගු නාමය භාවිතා කර වගු තීරු ලබා ගත හැකිය:

select * 
from dba_tab_columns

එවිට ඔබට පරායත්තතා ලැයිස්තුවක් ලබා ගත හැකිය (ප්‍රේරක, දසුන් සහ යනාදිය):

select * 
from dba_dependencies
where referenced_type='TABLE' and referenced_name=:t_name 

එවිට ඔබට මෙම වස්තූන්ගේ පෙළ ප්‍රභවය ලබා ගත හැකිය:

select * from dba_source

ඔබට අවශ්‍ය නම් වෙනුවට භාවිතා කිරීමට USERහෝ බැලීමට හැකිය.ALLDBA


4

අදහස් ඇතුළුව:

SELECT owner, table_name as table_view
  FROM dba_tables
UNION ALL
SELECT owner, view_name as table_view
  FROM DBA_VIEWS

4

පහත දැක්වෙන විමසුමෙන් අපට තීරු විස්තර ඇතුළුව සියලු වගු ලබා ගත හැකිය:

SELECT * FROM user_tab_columns;

4

පහත දැක්වෙන්නේ ඔබට විකල්පයන් භාවිතා කළ හැකි ආකාරය විස්තර කරන SQL විමසුම් වල විවරණය කළ කොටසකි:

-- need to have select catalog role
SELECT * FROM dba_tables;

-- to see tables of your schema
SELECT * FROM user_tables;

-- tables inside your schema and tables of other schema which you possess select grants on
SELECT * FROM all_tables;

2

පහත දැක්වෙන විමසුම මඟින් අවශ්‍ය දත්ත පමණක් ලැයිස්තුගත කර ඇති අතර අනෙක් පිළිතුරු මට අමතර දත්ත ලබා දුන්නේ මා ව්‍යාකූල කරමිනි.

select table_name from user_tables;

2

SQLcl හි ඇති නව අංගයක් (එය ඔරකල් දත්ත සමුදාය සඳහා නොමිලේ විධාන රේඛා අතුරුමුහුණතක් වේ)

Tables අන්වර්ථය.

විශේෂාංගයේ භාවිතය සහ අමතර අංග පෙන්වන උදාහරණ කිහිපයක් මෙන්න. පළමුව, sqlවිධාන රේඛාවකට ( sql.exeකවුළුවල) සැසියකට සම්බන්ධ වන්න. දත්ත පෙන්වන වෙනත් විධානයන් හෝ විමසුම් ක්‍රියාත්මක කිරීමට පෙර මෙම sqlcl විශේෂිත විධානය ඇතුළත් කිරීම රෙකමදාරු කරනු ලැබේ.

SQL> set sqlformat ansiconsole     -- resizes the columns to the width of the 
                                   -- data to save space 

SQL> tables

TABLES
-----------
REGIONS
LOCATIONS
DEPARTMENTS
JOBS
EMPLOYEES
JOB_HISTORY
..

tablesඅන්වර්ථය යොමු කරන්නේ කුමක් දැයි දැන ගැනීමට, ඔබට සරලව භාවිතා කළ හැකියalias list <alias>

SQL> alias list tables
tables - tables <schema> - show tables from schema
--------------------------------------------------

 select table_name "TABLES" from user_tables

මෙම අන්වර්ථය පෙරනිමියෙන් SQLcl යටතේ එන බැවින් ඔබට එය අර්ථ දැක්විය යුතු නැත. ඔබට නිශ්චිත ක්‍රමෝපායකින් වගු ලැයිස්තු ගත කිරීමට අවශ්‍ය නම්, නව පරිශීලක අර්ථ දක්වන අන්වර්ථයක් භාවිතා කරමින් සහ තීරු කට්ටලයක් පමණක් පෙන්වන බන්ධන තර්කයක් ලෙස ස්කීමා නාමය සම්මත කිරීම, ඔබට එය භාවිතා කළ හැකිය

SQL> alias tables_schema = select owner, table_name, last_analyzed from all_tables where owner = :ownr;

ඉන්පසු ඔබට යෝජනා ක්‍රමයේ නම තර්කයක් ලෙස සම්මත කළ හැකිය

SQL> tables_schema HR

OWNER   TABLE_NAME               LAST_ANALYZED
HR      DUMMY1                   18-10-18
HR      YOURTAB2                 16-11-18
HR      YOURTABLE                01-12-18
HR      ID_TABLE                 05-12-18
HR      REGIONS                  26-05-18
HR      LOCATIONS                26-05-18
HR      DEPARTMENTS              26-05-18
HR      JOBS                     26-05-18
HR      EMPLOYEES                12-10-18
..
..

වඩාත් නවීන පූර්ව නිර්වචනය කළ අන්වර්ථයක් ලෙස හැඳින්වෙන අතර Tables2එය තවත් තීරු කිහිපයක් පෙන්වයි.

SQL> tables2

Tables
======
TABLE_NAME                 NUM_ROWS   BLOCKS   UNFORMATTED_SIZE COMPRESSION     INDEX_COUNT   CONSTRAINT_COUNT   PART_COUNT LAST_ANALYZED
AN_IP_TABLE                       0        0                  0 Disabled                  0                  0            0 > Month
PARTTABLE                         0        0                  0                           1                  0            1 > Month
TST2                              0        0                  0 Disabled                  0                  0            0 > Month
TST3                              0        0                  0 Disabled                  0                  0            0 > Month
MANAGE_EMPLYEE                    0        0                  0 Disabled                  0                  0            0 > Month
PRODUCT                           0        0                  0 Disabled                  0                  0            0 > Month
ALL_TAB_X78EHRYFK                 0        0                  0 Disabled                  0                  0            0 > Month
TBW                               0        0                  0 Disabled                  0                  0            0 > Month
DEPT                              0        0                  0 Disabled                  0                  0            0 > Month

පසුබිම තුළ එය ක්‍රියාත්මක වන්නේ කුමන විමසුමදැයි දැන ගැනීමට, ඇතුළත් කරන්න

alias list tables2

columnSQL * Plus හි බහුලව භාවිතා වන පූර්ව නිශ්චිත නිර්වචන සමඟ මෙය තරමක් සංකීර්ණ විමසුමක් ඔබට පෙන්වනු ඇත .

ජෙෆ් ස්මිත් අන්වර්ථයන් ගැන වැඩි විස්තර මෙහි විස්තර කරයි


1

තීරු හැඳුනුම්පතේ අනුපිළිවෙල අනුව වර්ග කළ යෝජනා ක්‍රමයක වගුවකට අයත් සියලුම තීරු නම් ලැයිස්තුවක් ලබා ගැනීමට මම බලා සිටියෙමි.

මෙන්න මම භාවිතා කරන විමසුම: -

SELECT COLUMN_NAME
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'schema_owner_username' AND TABLE_NAME='table_name'
ORDER BY COLUMN_ID ASC;

1

ඇත්ත වශයෙන්ම, SQL විමසුම් හරහා වගු ලැයිස්තුවක් ලබා ගත හැකිය. ERWIN , Toad Data Modeler හෝ ERBuilder වැනි දත්ත ශබ්ද කෝෂ ජනනය කිරීමට ඉඩ සලසන මෙවලම් හරහාද එය කළ හැකිය . මෙම මෙවලම් සමඟ, වගු නම් වලට අමතරව, ඔබට ක්ෂේත්‍ර, ඒවායේ වර්ග, වස්තු (ප්‍රේරක, අනුක්‍රම, වසම, දර්ශන ...) ඇත.

ඔබගේ වගු අර්ථ දැක්වීම ජනනය කිරීම සඳහා අනුගමනය කළ යුතු පියවර පහත:

  1. ඔබේ දත්ත සමුදාය ආපසු හැරවිය යුතුය
    • ටෝඩ් දත්ත මොඩලර් තුළ: මෙනුව -> ගොනුව -> ප්‍රතිලෝම ඉංජිනේරු -> ප්‍රතිලෝම ඉංජිනේරු විශාරද
    • ERBuilder දත්ත මොඩලර් තුළ: මෙනුව -> ගොනුව -> ප්‍රතිලෝම ඉංජිනේරු

ඔබේ දත්ත සමුදාය මෘදුකාංගයේ ආයතන සම්බන්ධතා රූප සටහනක් ලෙස පෙන්වනු ඇත.

  1. ඔබේ වගු අර්ථ දැක්වීම අඩංගු ඔබේ දත්ත ශබ්ද කෝෂය ජනනය කරන්න
    • ටෝඩ් දත්ත මොඩලර් තුළ: මෙනුව -> ආකෘතිය -> වාර්තාව ජනනය කරන්න -> ධාවනය කරන්න
    • ERBuilder දත්ත මොඩලර් තුළ: මෙනුව -> මෙවලම -> ආකෘති ලේඛන ජනනය කරන්න


0

සියලුම වගු නම් ලබා ගැනීමට, අපට මෙය භාවිතා කළ හැකිය:

Select  owner, table_name  from sys.all_tables;

සියලුම වගු සඳහා තීරු නම් ලබා ගැනීමට, අපට භාවිතා කළ හැකිය:

Select owner, table_name, column_name, data_type, data_length from sys.all_tab_columns
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.