ඔරකල් දත්ත ගබඩාවක් එහි ඇති සියලුම වගු වල නම් පෙන්වීමට මා විමසන්නේ කෙසේද?
ඔරකල් දත්ත ගබඩාවක් එහි ඇති සියලුම වගු වල නම් පෙන්වීමට මා විමසන්නේ කෙසේද?
Answers:
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
, හා CAT
example-- භාවිත කළ හැකි බව ය. පොදුවේ ගත් කල, ඔබේ ස්ක්රිප්ට් ඔරකල් 6 වෙත ආපසු යැවීමට ඔබට අවශ්ය නම් මිස, මෙම උරුම අදහස් භාවිතා කිරීමට මම යෝජනා නොකරමි. ඔරකල් මෙම අදහස් දීර් time කාලයක් තිස්සේ වෙනස් කර නැති නිසා බොහෝ විට නව වර්ගයේ වස්තූන් සමඟ ගැටලු ඇති වේ. නිදසුනක් ලෙස, TAB
සහ CAT
දර්ශන දෙකම පරිශීලකයාගේ ප්රතිචක්රීකරණ බඳුනේ ඇති වගු පිළිබඳ තොරතුරු පෙන්වන අතර [DBA|ALL|USER]_TABLES
දර්ශන සියල්ලම ඒවා පෙරහන් කරයි. "TABLE" CAT
සමඟ ද්රව්යමය දර්ශන TABLE_TYPE
ල logs ු-සටහන් පිළිබඳ තොරතුරු ද පෙන්වයි, එය ඔබට සැබවින්ම අවශ්ය දේ විය නොහැක. DICT
වගු සහ සමාන පද ඒකාබද්ධ කරන අතර වස්තුව අයිති කාටදැයි ඔබට නොකියයි.
විමසීම user_tables
සහ dba_tables
වැඩ කළේ නැත.
මේ තැනැත්තා කළේ:
select table_name from all_tables
තවත් එක් පියවරක් ඉදිරියට යන විට, cols (all_tab_columns) නමින් තවත් දර්ශනයක් ඇත, එය ලබා දී ඇති තීරු නාමයක් අඩංගු වගු මොනවාදැයි සොයා ගැනීමට භාවිතා කළ හැකිය.
උදාහරණයක් වශයෙන්:
SELECT table_name, column_name
FROM cols
WHERE table_name LIKE 'EST%'
AND column_name LIKE '%CALLREF%';
EST වලින් ආරම්භ වන නමක් ඇති සියළුම වගු සහ ඒවායේ නම් වලින් ඕනෑම තැනක CALLREF අඩංගු තීරු සොයා ගැනීමට.
ඔබට සම්බන්ධ වීමට අවශ්ය තීරු මොනවාදැයි වැඩ කිරීමේදී මෙය උපකාරී වේ, උදාහරණයක් ලෙස, ඔබේ වගුව සහ තීරු නම් කිරීමේ සම්මුතීන් මත පදනම්ව.
select * from cols
පේළි 0 ක් ආපසු ලබා දුන්නා.
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;
මෙය තරමක් පිළිගත හැකි පෙනුමක් ලබා දිය යුතුය:
pagesize 30
සමග pagesize 1000
?
වත්මන් පරිශීලකයා සඳහා වගු තේරීමට සරල විමසුම:
SELECT table_name FROM user_tables;
select object_name from user_objects where object_type='TABLE';
----------------හෝ------------------
select * from tab;
----------------හෝ------------------
select table_name from user_tables;
පහත දත්ත ශබ්ද කෝෂ දර්ශන උත්සාහ කරන්න.
tabs
dba_tables
all_tables
user_tables
වත්මන් පරිශීලකයා සතු වගු ලැයිස්තුගත කරන user_tables වෙතින් තෝරා ගැනීමට උත්සාහ කරන්න .
පහත දැක්වෙන විමසුම භාවිතා කර සියලුම වගු වල නම් පෙන්වීමට ඔරකල් දත්ත සමුදාය
හිමිකරු තෝරන්න, වගුවේ නම FROM dba_tables; අයිතිකරු තෝරන්න, වගු නාමය FROM all_tables; පරිශීලක_ වගු වලින් වගු නාමය තෝරන්න;
තවත් බලන්න: http://www.plsqlinformation.com/2016/08/get-list-of-all-tables-in-oracle.html
select * from dba_tables
සියලුම පරිශීලකයින්ගේ සියලු වගු ලබා දෙන්නේ ඔබ පුරනය වී ඇති පරිශීලකයාට sysdba
වරප්රසාද තිබේ නම් පමණි.
භාවිතා කිරීමට යොමු වන පිළිතුරක් මට හමු නොවීය
DBA_ALL_TABLES (ALL_ALL_TABLES/USER_ALL_TABLES)
ඒ නිසා මගේ අනුවාදය ද එක් කිරීමට තීරණය කළා. මෙම දර්ශනය ඇත්ත වශයෙන්ම DBA_TABLES වස්තු වගු ද ලබා දෙයි ( http://docs.oracle.com/cd/E11882_01/server.112/e40402/statviews_1003.htm ).
ඔරකල් වස්තු පිළිබඳ තොරතුරු ලබා ගැනීමට ඔබට ඔරකල් දත්ත ශබ්ද කෝෂය භාවිතා කළ හැකිය .
ඔබට විවිධ ආකාරවලින් වගු ලැයිස්තුව ලබා ගත හැකිය:
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
හෝ බැලීමට හැකිය.ALL
DBA
පහත දැක්වෙන විමසුමෙන් අපට තීරු විස්තර ඇතුළුව සියලු වගු ලබා ගත හැකිය:
SELECT * FROM user_tab_columns;
පහත දැක්වෙන්නේ ඔබට විකල්පයන් භාවිතා කළ හැකි ආකාරය විස්තර කරන 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;
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
column
SQL * Plus හි බහුලව භාවිතා වන පූර්ව නිශ්චිත නිර්වචන සමඟ මෙය තරමක් සංකීර්ණ විමසුමක් ඔබට පෙන්වනු ඇත .
ජෙෆ් ස්මිත් අන්වර්ථයන් ගැන වැඩි විස්තර මෙහි විස්තර කරයි
තීරු හැඳුනුම්පතේ අනුපිළිවෙල අනුව වර්ග කළ යෝජනා ක්රමයක වගුවකට අයත් සියලුම තීරු නම් ලැයිස්තුවක් ලබා ගැනීමට මම බලා සිටියෙමි.
මෙන්න මම භාවිතා කරන විමසුම: -
SELECT COLUMN_NAME
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'schema_owner_username' AND TABLE_NAME='table_name'
ORDER BY COLUMN_ID ASC;
ඇත්ත වශයෙන්ම, SQL විමසුම් හරහා වගු ලැයිස්තුවක් ලබා ගත හැකිය. ERWIN , Toad Data Modeler හෝ ERBuilder වැනි දත්ත ශබ්ද කෝෂ ජනනය කිරීමට ඉඩ සලසන මෙවලම් හරහාද එය කළ හැකිය . මෙම මෙවලම් සමඟ, වගු නම් වලට අමතරව, ඔබට ක්ෂේත්ර, ඒවායේ වර්ග, වස්තු (ප්රේරක, අනුක්රම, වසම, දර්ශන ...) ඇත.
ඔබගේ වගු අර්ථ දැක්වීම ජනනය කිරීම සඳහා අනුගමනය කළ යුතු පියවර පහත:
ඔබේ දත්ත සමුදාය මෘදුකාංගයේ ආයතන සම්බන්ධතා රූප සටහනක් ලෙස පෙන්වනු ඇත.
select * from all_all_tables
ආරම්භයේ දී මෙම අතිරේක 'සියල්ල' අමතර තීරු 3 ක් ලබා දෙයි:
OBJECT_ID_TYPE
TABLE_TYPE_OWNER
TABLE_TYPE
SHOW TABLES
(MySQL සිදු ලෙස) වැඩ?