中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle相關數據字典分析

發布時間:2021-11-11 15:23:33 來源:億速云 閱讀:392 作者:iii 欄目:關系型數據庫

本篇內容主要講解“Oracle相關數據字典分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Oracle相關數據字典分析”吧!

問題描述:alert日志發現報錯主鍵沖突

ORA-12012: 自動執行作業 24 出錯

ORA-00001: 違反唯一約束條件 (ADDEDTAXUSER.PK_PT_INOUTFLOW)

ORA-06512: 在 "DWETL.SP_ETL_CONTROL", line 519

ORA-06512: 在 line 7

通過報錯可以看出,是違反了ADDEDTAXUSER用戶下的PK_PT_INOUTFLOW主鍵,并且是在執行DWETL用戶下的SP_ETL_CONTROL東西的時候報錯的;

那么接下來通過數據字典查出相關對象到底是什么,以及他們的創建語句:

1.首先查詢出這個主鍵屬于哪個表?

SQL> select  OWNER,CONSTRAINT_NAME,TABLE_NAME  from  dba_constraints  where  CONSTRAINT_NAME='PK_PT_INOUTFLOW';

OWNER                    CONSTRAINT_NAME                  TABLE_NAME

------------------------------------------------------------ ------------------------------ -----------------------------ADDEDTAXUSER    PK_PT_INOUTFLOW    PT_INOUTFLOW

2.查詢這個主鍵在哪個表的那個字段上,可以通過dba_ind_columns 或者dba_cons_columns

SQL> select  INDEX_OWNER,INDEX_NAME,TABLE_NAME,COLUMN_NAME  from dba_ind_columns  where INDEX_NAME='PK_PT_INOUTFLOW';

INDEX_OWNER   INDEX_NAME COLUMN_NAME    TABLE_NAME

------------------------------ ------------------------------ ------------------------------ ------------------------------

ADDEDTAXUSER PK_PT_INOUTFLOW    PT_INOUTFLOW   PK_INOUTFLOW

或者

SQL> select owner,CONSTRAINT_NAME,table_name,COLUMN_NAME  from  dba_cons_columns  where  CONSTRAINT_NAME='PK_PT_INOUTFLOW';

OWNER   CONSTRAINT_NAME          TABLE_NAME               COLUMN_NAME

------------------------------ ------------------------------ ------------------------------

ADDEDTAXUSER PK_PT_INOUTFLOW  PT_INOUTFLOW  PK_INOUTFLOW

3.然后查看DWETL用戶下的SP_ETL_CONTROL 是個什么東西?

可以看出是存儲過程,如下:

SQL> select  OWNER,OBJECT_NAME,OBJECT_TYPE  from dba_objects  where OBJECT_NAME='SP_ETL_CONTROL';

OWNER       OBJECT_NAME                 OBJECT_TYPE

------------------------------ --------------------------------------------------------------------------------------------

DWETL       SP_ETL_CONTROLPROCEDURE

4.查看這個存儲過程的創建語句,借助dbms_metadata程序包的get_ddl函數:

set line 200

set pagesize 0

set long 99999

select dbms_metadata.get_ddl('PROCEDURE','SP_ETL_CONTROL','DWETL') from dual;

至此查出了報錯的所有的信息,可以給開發溝通了。。。。

通過這個問題,順便總結下,常用的查詢語句:

一:查詢對象的創建語句:

select dbms_metadata.get_ddl('TABLE','TABLE_NAME','TABLE_OWNER') from dual;

select dbms_metadata.get_ddl('INDEX','INDEX_NAME','INDEX_OWNER') from dual;

select dbms_metadata.get_ddl('VIEW','VIEW_NAME','VIEW_OWNER') from dual;

select dbms_metadata.get_ddl('PROCEDURE','PROCEDURE_name','PROCEDURE_owner') from dual;

select dbms_metadata.get_ddl('FUNCTION','FUNCTION_NAME','FUNCTION_OWNER') from dual;

二:查詢出數據庫中的有log字段的信息,通過DBA_TAB_COLUMNS和dba_lobs數據字典查詢:

SQL>select  owner ,table_name ,COLUMN_NAME from  dba_lobs where  rownum<10;

SQL>  select  OWNER,TABLE_NAME,COLUMN_NAME,DATA_TYPE  from  DBA_TAB_COLUMNS where  DATA_TYPE like  '%LOB%' and rownum<10;

SYS       VIEWCON$      CON_TEXT     CLOB

SYS       ECOL$      BINARYDEFVAL     BLOB

SYS       JIREFRESHSQL$      SQLTEXT     CLOB

四:以及一些常用的數據字典小結:

DBA_TABLES:描述數據庫中所有相關的表。

DBA_ALL_TABLES:描述數據庫中所有的對象以及相關的表。

USER_TABLES:描述數據庫中當前用戶擁有的相關的表。

USER_ALL_TABLES:描述數據庫中當前用戶擁有的對象以及相關的表。

ALL_TABLES:描述數據庫中所有的用戶可以訪問的相關的表。

ALL_ALL_TABLES:描述數據庫中所有的用戶可以訪問的對象以及相關的表。

DBA_TAB_COLUMNS:描述數據庫中所有表的列屬性。

USER_TAB_COLUMNS:描述數據庫中當前用戶擁有的表的列屬性。

ALL_TAB_COLUMNS:描述數據庫中所有用戶可以訪問的表的列屬性。

DBA_CONSTRAINTS:描述數據庫中所有表的約束和屬性。

DBA_CONS_COLUMNS:包含在DBA_CONSTRAINTS約束定義中的可訪問的列的信息。

ALL_CONSTRAINTS:描述數據庫中所有用戶可以訪問的表的約束和屬性。

ALL_CONS_COLUMNS:包含在ALL_CONSTRAINTS約束定義的可訪問的列的信息。

USER_CONSTRAINTS:描述數據庫中所有當前用戶擁有的表的約束的屬性。

USER_CONS_COLUMNS:包含在USER_CONSTRAINTS約束定義的可訪問的列的信息。

DBA_SEQUENCES:數據庫中所有序列的描述。

ALL_SEQUENCES:描述數據庫中所有用戶可以訪問的序列的描述。

USER_SEQUENCES:描述數據庫中所有當前用戶擁有的序列的描述。

DBA_INDEXES:描述數據庫中所有的索引的屬性。

ALL_INDEXES:描述數據庫中所有用戶可以訪問的索引的屬性。

USER_INDEXES:描述數據庫中所有當前用戶擁有的索引的屬性。

最后介紹下:

1)ALL_TABLES、user_tables和dba_tables的區別?

dba_tables : 系統里所有的表的信息,需要DBA權限才能查詢的視圖(數據字典視圖)

all_tables : 當前用戶有權限的表的信息(只要對某個表有任何權限,即可在此視圖中看到表的相關信息)

user_tables: 當前用戶名下的表的信息

所以以上3個視圖中,user_tables的范圍最小,all_tables看到的東西稍多一些,而dba_tables看到最多的信息;

2)數據字典視圖(dba_)和動態性能視圖(v$)的區別?

數據字典視圖反映了數據庫的信息,如數據庫的物理結構和邏輯結構信息,用戶和權限信息以及

數據庫對象的信息,如表、視圖、索引、存儲程序、約束等,這些信息不會隨著數據庫的運行而改變,除非人為操作,數據字典視圖中的信息是靜態的,來自數據字典基表,它反映的是數據庫的信息,這些信息不會因為數據庫服務器的關閉而消失。

而動態性能視圖則主要反映了實例的信息,并且動態性能視圖中的信息則是動態變化的,它反映了實例的實際運行情況,這些信息來自SGA或者控制文件,隨著實例的關閉和重新啟動,這些信息將重新產生。

到此,相信大家對“Oracle相關數據字典分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

囊谦县| 达日县| 新源县| 五台县| 无极县| 湖口县| 两当县| 上饶市| 疏附县| 池州市| 南昌县| 荆门市| 青川县| 东兴市| 南江县| 永福县| 涪陵区| 洪湖市| 杭锦后旗| 洪泽县| 太保市| 华坪县| 乐安县| 缙云县| 印江| 禹城市| 广宗县| 巴青县| 石台县| 长顺县| 泗洪县| 铜梁县| 温宿县| 云林县| 中阳县| 庆元县| 监利县| 罗甸县| 本溪| 顺平县| 慈溪市|