plsql查看連接屬性詳解「plsql怎麼查看錶數據」

概述

很多時候我們想看下錶,索引,視圖,存儲過程的定義來對照着寫或者看下裏面的內容,雖然可以通過plsql工具來直接看,但是有時用sqlplus的時候就只能通過sql了,下面分享下怎麼通過sql來查看錶,索引,視圖,存儲過程的定義。

查看錶,存儲過程,觸發器等對象的定義語句,有以下兩種方法:

1. all_source

2. DBMS_METADATA


一. 通過 all_source

先來確認下,通過all_source 表可以查看哪些類型的對象:

SQL> SELECT distinct type FROM ALL_SOURCE;
TYPE
------------
PROCEDURE
PACKAGE
PACKAGE BODY
LIBRARY
TYPE BODY
TRIGGER
FUNCTION
JAVA SOURCE
TYPE
9 rows selected.

查看存儲過程定義語句:

SQL>SELECT OWNER, NAME, TYPE, TEXT FROM ALL_SOURCE WHERE TYPE = 'PROCEDURE' AND OWNER = 'EDW' AND NAME = 'P_T01_LOAN_DUE_BILL';

查看觸發器 定義語句

SQL> SELECT text FROM ALL_SOURCE where TYPE='TRIGGER' AND NAME ='TRDB_TEAM';

方法也比較簡單,修改TYPE NAME 就可以,注意要大寫。

其他的對象類似。


二. 通過 DBMS_METADATA

通過該dbms_metadata包的get_ddl()方法,我們可以查看錶,索引,視圖,存儲過程等的定義語句。

用法:

SQL> select dbms_metadata.get_ddl(‘對象類型‘,’名稱‘,’用戶名‘) from dual;

1. 查看錶的定義語句

SQL> set long 9999999
SQL>SELECT DBMS_METADATA.GET_DDL('TABLE', 'EDW_T01_LOAN_DUE_BILL', 'EDW') FROM DUAL;

返回的結果裏面可能含有一些storage 屬性,看起來很不舒服。我們可以通過設置會話級別來不顯示這些storage 屬性。

SQL> SET LONG 2000000

SQL> SET PAGESIZE 0

SQL>EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,’STORAGE’,FALSE);

PL/SQL procedure successfully completed

SQL>SELECT DBMS_METADATA.GET_DDL(‘TABLE’, ‘EDW_T01_LOAN_DUE_BILL’, ‘EDW’) FROM DUAL;

SQL> EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,’DEFAULT’);

PL/SQL procedure successfully completed

SQL>

SQL> select dbms_metadata.get_ddl(‘TABLE’,’EMP’,’SCOTT’) from dual;

「oracle」sql 查看錶,索引,視圖,存儲過程的定義

2. 查看 存儲過程 的定義語句

SQL> SET LONG 99999
SELECT DBMS_METADATA.GET_DDL('PROCEDURE', 'P_T01_LOAN_DUE_BILL', 'EDW')
 FROM DUAL;

其他的查詢和這個類似,只需修改對象類型即可。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/201954.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-06 14:02
下一篇 2024-12-06 14:02

相關推薦

發表回復

登錄後才能評論