獲取單個檢視DDL指令碼
declare
v_text clob;
v_owner varchar2(30);
v_view_name varchar2(30);
v_count number;
v_loc number;
v_loc_s number;
v_len number;
-- select av.view_name,av.owner from all_views av where av.owner='J1_DW' and av.view_name='V_SB_QYSDSNDSSYHQKMXB'
begin
v_loc_s :=1;
v_owner :='J1_DW';
v_view_name :='V_SB_QYSDSNDSSYHQKMXB';
SELECT length(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner))-length(replace(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner),chr(10),''))
into v_count
FROM dual;
dbms_output.put_line(v_count);
SELECT length(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner)) into v_len FROM dual;
for i in 1..v_count loop
-- dbms_output.put_line(i);
select instr(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner),chr(10),1,i) into v_loc from dual;
SELECT substr(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner),v_loc_s,v_loc-v_loc_s) INTO V_TEXT from dual;
-- SELECT substr(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner),chr(10),1,1),1,instr(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner),chr(10),1,1)) INTO V_TEXT from dual;
dbms_output.put_line(replace(v_text,chr(10),''));
-- dbms_output.put_line(v_text);
v_loc_s :=v_loc;
end loop;
SELECT substr(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner),v_loc_s,v_len-v_loc_s+1) INTO V_TEXT from dual;
dbms_output.put_line(replace(replace(v_text,';','')||';',chr(10),''));
end;
/
v_text clob;
v_owner varchar2(30);
v_view_name varchar2(30);
v_count number;
v_loc number;
v_loc_s number;
v_len number;
-- select av.view_name,av.owner from all_views av where av.owner='J1_DW' and av.view_name='V_SB_QYSDSNDSSYHQKMXB'
begin
v_loc_s :=1;
v_owner :='J1_DW';
v_view_name :='V_SB_QYSDSNDSSYHQKMXB';
SELECT length(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner))-length(replace(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner),chr(10),''))
into v_count
FROM dual;
dbms_output.put_line(v_count);
SELECT length(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner)) into v_len FROM dual;
for i in 1..v_count loop
-- dbms_output.put_line(i);
select instr(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner),chr(10),1,i) into v_loc from dual;
SELECT substr(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner),v_loc_s,v_loc-v_loc_s) INTO V_TEXT from dual;
-- SELECT substr(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner),chr(10),1,1),1,instr(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner),chr(10),1,1)) INTO V_TEXT from dual;
dbms_output.put_line(replace(v_text,chr(10),''));
-- dbms_output.put_line(v_text);
v_loc_s :=v_loc;
end loop;
SELECT substr(dbms_metadata.get_ddl('VIEW',v_view_name,v_owner),v_loc_s,v_len-v_loc_s+1) INTO V_TEXT from dual;
dbms_output.put_line(replace(replace(v_text,';','')||';',chr(10),''));
end;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29802484/viewspace-1770224/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle獲取ddl指令碼Oracle指令碼
- DBMS_METADATE.GET_DDL獲取物件DDL指令碼物件指令碼
- 單個過程獲取指令碼指令碼
- DBMS_METADATA.GET_DDL獲取使用者ddl指令碼指令碼
- 使用DBMS_METADATA.GET_DDL獲取物件的DDL指令碼物件指令碼
- 獲取object的建立指令碼 - DBMS_METADATA.GET_DDLObject指令碼
- 一個快速檢視trace的小指令碼指令碼
- 記錄一個防止DDL的指令碼指令碼
- Oracle 獲取ddl語句Oracle
- 獲取建tablespace sql ddlSQL
- 檢視ORACLE AS 埠指令碼Oracle指令碼
- 批次過程獲取指令碼指令碼
- 批量生成DDL指令碼指令碼
- 【C/C++】ghost ddl指令碼簡單實現C++指令碼
- PostgreSQL 函式獲取表DDLSQL函式
- (轉載)iOS中獲取某個檢視的截圖iOS
- oracle 監控 DML DDL 鎖 的4個檢視Oracle
- 檢視備份資訊指令碼指令碼
- 動態建立檢視指令碼指令碼
- 簡單的反向生產DDL語句的指令碼指令碼
- 用dbms_metadata.get_ddl獲取ddl語句
- 一個簡單資料庫健康檢查指令碼資料庫指令碼
- 獲取物件DDL語句的方法物件
- 利用dbms_metadata.get_ddl檢視DDL語句
- 常用指令碼:獲取隱含引數指令碼
- Python 指令碼之獲取CPU資訊Python指令碼
- Sql Server 獲取指定表、檢視結構SQLServer
- shell指令碼中main函式中$#獲取不到指令碼傳入引數個數淺析指令碼AI函式
- oracle之 獲取建表ddl語句Oracle
- 完美獲得SAS檢視原始碼原始碼
- Oracle利用dbms_metadata.get_ddl檢視DDL語句Oracle
- Shell指令碼 – 檢視網路介面資訊指令碼
- 透過shell指令碼檢視鎖資訊指令碼
- rman的備份檢視的指令碼指令碼
- 檢視鎖定的session資訊指令碼Session指令碼
- oracle 檢視隱含引數指令碼Oracle指令碼
- 通過shell指令碼檢視鎖資訊指令碼
- 【管理】Oracle 常用的V$ 檢視指令碼Oracle指令碼