PLSQL Developer中过滤器的使用技巧

七海恋空 2014-12-29 浏览(0 评论(0

公司做的软件很烂,我查什么东西都是用PLSQL Developer直接查数据库。但是数据库结构也很烂,设计了一大堆空表,或者一大堆不用的废弃的数据表。怎么办呢?我们知道,我们选择My object的时候可以过滤掉系统的一些数据表,这正是应用到了PLSQL Developer的过滤器。我们也可以自定义要显示的数据表,就是通过过滤器这个东西。

一般登入PLSQL Developer时默认显示的是All object,没次都要点击下拉菜单重选一次不烦吗?自己建一个object,然后设为默认显示就能彻底解决这个问题。在软件左边object菜单下边有几个小图标,望远镜的图标是查找数据库对象,漏斗图标就是我们想要找的过滤器。点击进入会弹出一个过滤器设置对话框,创建一个新的object的,然后点击是否默认那个复选框。接下来就是写sql语句了,只需要写where和order部分。

在过滤器对话框where标签中写入显示数据表的条件,然后在order标签内写入排序的条件就可以了。说的简单,我自己做起来可费了老半天劲了。不会写语句的可以参照My object的写法,然后根据自己的情况另外编写。语句中有几个关键字段:object_name对象名称、owner所有者、status是否有效包括VALID和INVALID两个参数,还有个Last_ddl_time最近被编译的日期。下面介绍一下我编写语句的血泪史。

我一开始想用status来过滤掉空表的,让自定义的object只显示有效的数据表,但是我反反复复的使用VALID和INVALID拿进去套,但自定义的object还是显示老样子。我右击查看了一下数据表的属性,妹的所有表都是VALID属性,那还过滤个毛。改VALID属性领导肯定不会同意,话说一些空表为嘛还设成有效属性啊! 

方案一不可行放弃,于是我又瞄准了Last_ddl_time这个关键字。呵呵,我天真的以为这个最后修改时间是数据表内容的修改时间,其实是数据表设计修改的最后时间。拿这个做条件过滤自然毛都过滤不了。

没办法,只好用最土最笨的罗列法了。把自己想要的表对象一个个罗列出来。没错就用object_name in('table1','table2','table3','table4','table5')想要什么表直接在里面罗列。这里注意,表名区分大小写,真晕!!!!为啥我查找的时候都是小写。几十个数据表,我不可能一个个去敲吧!作为一个会编码的太失礼了。在这里在奉送大家一个技巧,sql脚本中('data1','data2','data3')这种需要格式化加引号逗号的情况可以找excel帮忙,直接在公式栏里面敲公式a1=fx("'"&b1&"'"&",")。原理就是用连接字符&将单元格的数据跟引号和逗号连接起来,当然引号和逗号作为一个字符必须用双引号引起来。 

最后数据表被我过滤了二十多个,世界一下子干净了不少,这感觉真好。