201945 (詳)oracle如何批量查詢多張表是否存在(bat中批量執行語句)

啊,遇到一個問題。

有600多張表要進行下發,我得先確定這些表在我係統裏到底有沒有。
偷懶,直接 excel裏,補全:select count(*) from t_a;
然後,到plsql中去執行,發現執行到最後的時候,已經提醒:

超出最大可打開的tab數。
而且,問題是,一個一個看,把自己都已經看花了。

靈機一動,放到bat中執行
具體操作如下:
一、

select count(\*) from t_a;
select count(*) from t_b;
exit;

把這幾句話寫在txt中,然後另存爲時,注意,選擇 所有文件,文件名命名爲: select.sql

二、
接着,在同目錄下的txt中編寫如下語句:

sqlplus  usr_1/psw_1@link_name @select.sql > lastlog_select.log

然後,另存爲,選擇 所有文件, 文件名 命名爲 select.bat

雙擊該bat。
即可執行了。

三、
然後在 lastlog_select.log 中,查找: 已選擇 或者 -----,就知道有幾張表裏有數據,也就是說,有幾張表存在了。

問題解決~

下面給部分小白稍微解釋一下這些語句。

  1. select.sql 中的 exit 不可省,否則 執行完後,黑框框不退出,還要自己退出
  2. select.bat 文件中:
  3. 第一部分 sqlplus usr_1/psw_1@link_name 其實就是用sqlplus 連接到對應的數據庫(這個數據庫可以是本地的,也可以是遠端的,只要 tnsname.ora文件中定義好就可以)
  4. @select.sql 表示去執行 select.sql 文件
  5. > lastlog_select.log 表示將輸出的內容寫到 lastlog_select.log中去

我們會在此後的文章中詳細介紹bat 及 對應 sql 文件的編寫
敬請期待~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章