如何用SQL生成SQL批處理檔案

2021-07-22 09:42:26 字數 1211 閱讀 4847

軟體環境:

1、windows nt4.0+oracle 8.0.4

2、oracle安裝路徑為:c:\orant

問題提出:

1、使用者需要對資料庫使用者下的每一張表都執行乙個相同的sql操作,這時,一遍、一遍的鍵入sql語句是很麻煩的

實現方法:

sql> set heading off --禁止輸出列標題

sql> set feedback off --禁止顯示最後一行的計數反饋資訊

列出當前使用者下所有同義詞的定義,可用來測試同義詞的真實存在性

select 'desc '||tname from tab where tabtype='synonym';

查詢當前使用者下所有表的記錄數

select 'select '''||tname||''',count(*) from '||tname||';' from tab where tabtype='table';

把所有符合條件的表的select許可權授予為public

select 'grant select on '||table_name||' to public;' from user_tables where 《條件》;

刪除使用者下各種物件

select 'drop '||tabtype||' '||tname from tab;

刪除符合條件使用者

select 'drop user '||username||' cascade;' from all_users where user_id>25;

快速編譯所有檢視

----當在把資料庫倒入到新的伺服器上後(資料庫重建),需要將檢視重新編譯一遍,

----因為該錶空間檢視到其它表空間的表的連線會出現問題,可以利用pl/sql的語言特性,快速編譯。

sql> spool on.sql

sql> select'alter view '||tname||' compile;' from tab;

sql> spool off

然後執行on.sql即可。

sql> @on.sql

當然,授權和建立同義詞也可以快速進行,如:

sql> select 'grant select on '||tname||' to 使用者名稱;' from tab;

sql> select 'create synonym '||tname||' for 使用者名稱.'||tname||';' from tab;

SQL實習報告

天津農學院 電腦科學與資訊工程系 sql server 教學實習報告 實習名稱 藥品進銷存管理系統後體資料庫設計 專業 軟體工程 班級 2009級2班 學號 0908054224 姓名 史東亞 指導教師 趙光煜 成績2011年 1月 目錄1 教學實習的內容 1 2 教學實習的目的 1 3 教學實習設...

sql基礎問題

1 觸發器的作用?答 觸發器是一中特殊的儲存過程,主要是通過事件來觸發而被執行的。它可以強化約束,來維護資料的完整性和一致性,可以跟蹤資料庫內的操作從而不允許未經許可的更新和變化。可以聯級運算。如,某錶上的觸發器上包含對另乙個表的資料操作,而該操作又會導致該錶觸發器被觸發。2。什麼是儲存過程?用什麼...

SQL專題複習

工作版本資訊 目錄1.知識點梳理 1 1.1基本內容梳理 1 1 sql的組成 1 2 基本表的建立 修改和撤銷 2 3 select查詢語句的基本結構 2 4 聚合函式 3 5 select語句完整的句法 3 1.2重要內容分析 4 專項練習題 5 基本表的建立 基本表c的建立語句 create ...