業務系統表格調研指令碼
1.建立記錄表格
CREATE TABLE "MC$MSG"
("OWNER" VARCHAR2(30),
"TABLE_NAME" VARCHAR2(30),
"MSG_ID" NUMBER,
"MSG_NAME" VARCHAR2(200),
"MSG" VARCHAR2(4000)) ;
2.生成列印的指令碼內容,紅色字型部分可替換
用於指定業務表格所在使用者,並生成指令碼內容
declare
N NUMBER;
v_indcount number;
v_indlist varchar2(4000);
strings varchar2(4000);
begin
execute immediate 'truncate table mc$msg';
for i in ( select owner,table_name from dba_tables
where owner in ('ZC')
ORDER BY OWNER,TABLE_NAME) LOOP
n:=0;
insert into mc$msg values(i.owner,i.table_name,n,'使用者.表格',
'
n:=n+1;
insert into mc$msg values(i.owner,i.table_name,n,'說明','
n:=n+1;
strings:='';
for j in ( select b.column_name from dba_cons_columns b
where b.constraint_name=( select a.constraint_name from dba_constraints a
where a.OWNER=i.owner
and a.table_name=i.table_name
and a.constraint_type='P')
order by b.POSITION) loop
strings:=strings||','||j.column_name;
end loop;
strings:=substr(strings,2);
insert into mc$msg values(i.owner,i.table_name,n,'主鍵','
n:=n+1;
v_indlist:='
for x in (select index_name from dba_indexes where table_owner=i.owner and table_name=i.table_name order by index_name) loop
strings:='';
for y in (select column_name from dba_ind_columns where table_owner=i.owner and table_name=i.table_name and index_name=x.index_name order by column_position) loop
strings:=strings||','||y.column_name;
end loop;
v_indlist:=v_indlist||'
'||'
';
end loop;
v_indlist:=v_indlist||'
select count(index_name) into v_indcount from dba_indexes where table_owner=i.owner and table_name=i.table_name ;
insert into mc$msg values(i.owner,i.table_name,n,'索引','
n:=n+1;
insert into mc$msg values(i.owner,i.table_name,n,'備註','
n:=n+1;
insert into mc$msg values(i.owner,i.table_name,n,'欄位','
for j in ( select '
from dba_tab_columns a,dba_col_comments b
where a.TABLE_NAME=b.table_name
and a.COLUMN_NAME=b.column_name
and a.OWNER=b.owner
AND A.OWNER=I.OWNER
and a.table_name=I.TABLE_NAME
ORDER BY A.COLUMN_ID) loop
strings:=j.str;
n:=n+1;
insert into mc$msg values(i.owner,i.table_name,n,'欄位定義',strings);
end loop;
n:=n+1;
insert into mc$msg values(i.owner,i.table_name,n,'表格結束','
');
用 戶 '||i.owner||' 表 名 '||i.table_name||' ');
說 明 '||'&'||'nbsp; ');
主 鍵 '||nvl(strings,'&'||'nbsp;')||'
';
';
索引名 索引欄位 '||x.index_name||' '||substr(strings,2)||' ');
索 引 '||decode(v_indcount,0,'&'||'nbsp;',v_indlist)||' ');
備 注 '||'&'||'nbsp; ');
欄位名 中文名 型別 可空 備註 ' STR
'||A.COLUMN_NAME||' '||'&'||'nbsp; '||a.DATA_TYPE||'('||a.DATA_LENGTH||')'||' '||decode(a.NULLABLE,'Y','--','N','NOT NULL')||' '||nvl(b.comments,'&'||'nbsp;')||'
');
commit;
END LOOP;
--create sql script
--DBMS_OUTPUT.PUT_LINE('set markup html on entmap off') ;
DBMS_OUTPUT.PUT_LINE('set pagesize 0') ;
DBMS_OUTPUT.PUT_LINE('set serveroutput on size 800000') ;
DBMS_OUTPUT.PUT_LINE('set head off') ;
DBMS_OUTPUT.PUT_LINE('set feedback off') ;
DBMS_OUTPUT.PUT_LINE('set echo off') ;
DBMS_OUTPUT.PUT_LINE('set long 9999') ;
DBMS_OUTPUT.PUT_LINE('set linesize 9999') ;
DBMS_OUTPUT.PUT_LINE('col msg format a9999') ;
DBMS_OUTPUT.PUT_LINE('set trimout on') ;
DBMS_OUTPUT.PUT_LINE('set trimspool on') ;
DBMS_OUTPUT.PUT_LINE('spool E:\ZC.htm') ;
for i in ( select distinct owner,table_name from mc$msg
ORDER BY OWNER,TABLE_NAME) LOOP
DBMS_OUTPUT.PUT_LINE('exec dbms_output.put_line(chr(13));') ;
DBMS_OUTPUT.PUT_LINE('exec DBMS_OUTPUT.PUT_LINE('''||i.owner||'.'||i.table_name||''');') ;
DBMS_OUTPUT.PUT_LINE('select replace(wm_concat(msg),'','',chr(13)) msg from (select msg from mc$msg where owner='''||i.owner||''' and table_name='''||i.table_name||''' order by msg_id);');
END LOOP;
DBMS_OUTPUT.PUT_LINE('spool off') ;
--create finish
END;
/
3.將列印的結果複製到文字檔案,字尾名改為.sql,紅色字型部分可替換
之後再cmd下進入sqlplus,執行此sql指令碼即可得到固定格式的資料字典資訊
例如複製到e盤下,名為zc.sql
在cmd中
sqlplus "/ as sysdba"
SQL>@e:\zc.sql
等待完成即可
4.業務表格調研結果如下:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29119536/viewspace-1171283/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- bug管理系統調研
- 系統巡檢指令碼指令碼
- shell指令碼案例分享 - 業務系統日誌自定義保留或刪除需求指令碼
- iOS防DNS汙染方案調研—WebView業務場景iOSDNSWebView
- windows系統垃圾清理指令碼Windows指令碼
- TypeScript體系調研報告TypeScript
- SOFAServerless 體系助力業務極速研發Server
- 監控系統告警指令碼集合指令碼
- Linux系統檢查指令碼Linux指令碼
- linux系統優化指令碼Linux優化指令碼
- Shell 系統資訊監控指令碼指令碼
- 調研
- OA系統調研報告:技術推動OA發展
- 調研位元組碼插樁技術,用於系統監控設計和實現
- SOFA Serverless 體系助力業務極速研發Server
- 指令系統
- linux系統for迴圈小指令碼Linux指令碼
- Linux 系統健康巡檢指令碼Linux指令碼
- FreeBSD系統啟動指令碼(轉)指令碼
- Solaris linux 系統監控指令碼Linux指令碼
- 系統初始化SHELL指令碼薦指令碼
- Debian系統啟動指令碼(轉)指令碼
- iOS防DNS汙染方案調研—HTTPS(非SNI)業務場景iOSDNSHTTP
- Oracle鎖調查的指令碼Oracle指令碼
- sap業務系統與業務會計
- 淨研氏商城系統開發原始碼部署原始碼
- 一個能夠生成 Markdown 表格的 Bash 指令碼指令碼
- 業務行政督查系統
- 倍增業務效益,智慧決策開闢新賽道 | 愛分析調研
- 透過Python指令碼理解系統程式Python指令碼
- Linux系統效能測試指令碼(unixbenchnmon)Linux指令碼
- CentOS 6 系統優化檢測指令碼CentOS優化指令碼
- AIX系統資源監控SHELL指令碼AI指令碼
- 初始化linux系統指令碼薦Linux指令碼
- 監控系統使用情況shell指令碼指令碼
- [指令碼例項]——統計系統資訊指令碼指令碼
- 告警系統主指令碼、告警系統配置檔案、告警系統監控專案指令碼
- Java 程式碼覆蓋率調研報告Java