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 文件的编写
敬请期待~

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