重建outln使用者指令碼(不知道以前在什麼地方看到的,現貼出共享)
-- createoutln.sql的詳細指令碼
[@more@]set serveroutput ondeclare
user_exists exception;
outln_user number;
outln_tables number;
extra_outln_tables number;
ddl_cursor integer;
begin
select count(*) into outln_user from user$ where name = 'OUTLN';
select count(*)
into outln_tables
from obj$
where name in ('OL$', 'OL$HINTS') and
owner# = (select user# from user$ where name = 'OUTLN');
select count(*)
into extra_outln_tables
from obj$
where name not in ('OL$', 'OL$HINTS') and type# = 2 and
owner# = (select user# from user$ where name = 'OUTLN');
ddl_cursor := dbms_sql.open_cursor;
if outln_user = 0
then
dbms_sql.parse(ddl_cursor,
'create user outln identified by outln',
dbms_sql.native);
dbms_sql.parse(ddl_cursor,
'grant connect, resource, execute any procedure to outln',
dbms_sql.native);
dbms_sql.parse(ddl_cursor,
'create table outln.ol$ ( ' ||
'ol_name varchar2(30), ' || 'sql_text long, ' ||
'textlen number, ' || 'signature raw(16), ' ||
'hash_value number, ' || 'category varchar2(30), ' ||
'version varchar2(64), ' || 'creator varchar2(30), ' ||
'timestamp date, ' || 'flags number, ' ||
'hintcount number)',
dbms_sql.native);
dbms_sql.parse(ddl_cursor,
'create table outln.ol$hints ( ' ||
'ol_name varchar2(30), ' || 'hint# number, ' ||
'category varchar2(30), ' || 'hint_type number, ' ||
'hint_text varchar2(512), ' || 'stage# number, ' ||
'node# number, ' || 'table_name varchar2(30), ' ||
'table_tin number, ' || 'table_pos number)',
dbms_sql.native);
dbms_sql.parse(ddl_cursor,
'create unique index outln.ol$name ' ||
'on outln.ol$(ol_name)',
dbms_sql.native);
dbms_sql.parse(ddl_cursor,
'create unique index outln.ol$signature ' ||
' on outln.ol$(signature,category)',
dbms_sql.native);
dbms_sql.parse(ddl_cursor,
'create unique index outln.ol$hnt_num ' ||
' on outln.ol$hints(ol_name, hint#)',
dbms_sql.native);
dbms_output.put_line('OUTLN CREATION SUCCESSFUL');
else
if outln_tables != 2 or extra_outln_tables != 0
then
dbms_output.put_line('ERROR - OUTLN USER ALREADY EXISTS');
raise user_exists;
else
dbms_output.put_line('OUTLN CREATION SUCCESSFUL');
end if;
end if;
exception
when user_exists then
raise;
end;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/802415/viewspace-823070/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20220328]查詢游標為什麼不共享指令碼.txt指令碼
- 什麼是Shell指令碼?Shell指令碼在Linux運維工作中的地位!指令碼Linux運維
- 企業雲盤的檔案管理優勢體現在什麼地方
- printf以前不知道的使用方式
- [20220420]完善查詢游標為什麼不共享指令碼.txt指令碼
- 什麼是共享WiFi專案,共享WiFi現在還可以做嗎?WiFi
- 前端開發的難點到底在什麼地方?前端
- 在什麼地方才能購入好的茶葉?
- 以前端角度出發做好SEO需要考慮什麼前端
- 共享wifi貼碼推廣怎麼加入?內部經驗教你共享wifi碼代理怎麼做!WiFi
- 共享wifi貼碼推廣怎麼賺錢,如何加入?WiFi
- 拿什麼解救你我的指令碼?指令碼
- 看小說看到現在
- 如何讓指令碼在任意地方可執行指令碼
- 以前的程式設計師,現在的程式設計師程式設計師
- 共享一個iptables的shell指令碼檔案指令碼
- 什麼是shell指令碼?Linux為什麼學習shell?指令碼Linux
- 共享wifi貼專案哪家的好?你知道共享WIFI碼是誰發明的嗎?WiFi
- AM右鍵新易髮選單重建bat指令碼BAT指令碼
- 來說說看到的求職路上可以提高的地方——簡歷求職
- Jmeter 本身能錄製指令碼,為什麼還要用 Fiddler 生成指令碼?JMeter指令碼
- 伺服器為什麼這麼貴?成本體現在哪些地方伺服器
- SMT貼片是什麼
- 終於看到了一個完整的mutect2使用指令碼指令碼
- 從java的NIO版hello world看java原始碼,我們能看到什麼?Java原始碼
- 2米精度的遙感影像能看到什麼?
- 什麼是翻譯平臺最重要的地方?
- ETL指令碼的實現指令碼
- AbortSignal:以前我沒得選,現在我想中止promisePromise
- 在Linux中,shell指令碼中的條件語句和迴圈結構是什麼?Linux指令碼
- 原始碼分析 Mybatis 的 foreach 為什麼會出現效能問題原始碼MyBatis
- 從Netty版hello world看Netty原始碼,我們能看到什麼?Netty原始碼
- 在系統建立新使用者時傳送郵件的 Bash 指令碼指令碼
- 使用者運營是什麼?使用者運營到底在運營什麼?
- 預計2019年釋出的Vue3.0到底有什麼不一樣的地方?Vue
- python 小指令碼 (實現 elasticsearch 匯出匯入)Python指令碼Elasticsearch
- 跑wordpress使用者密碼指令碼密碼指令碼
- 看到《賽博朋克2077》,人們想要的是什麼
- 新增多個使用者的shell指令碼指令碼