今天在做项目的时候,使用plsql(8.0汉化版)时遇到一个问题。写了一个有点长的sql语句,为了便于理解,我使用了plsql中的美化器将我的语句进行了美化,当然美化器的功能相当强大吆,也可以自己设置规则进行美化,具体怎么操作我就不详细说明了(不会用的可以继续网上搜索),但是当我的语句完成的时候,好多行的代码啊,怎么办,怎么把这多行语句整合到一行呢,难道要我一行一行的手动操作,来将多行转化为一行吗?
我想肯定有比较简单的方法来进行优化,所以我网上搜索了一下,果然有比较好的方法,但是写的不是很详细,那么对一些童鞋就可能还不是很明白了,这里呢我就按照我的思路进行了整理,供大家参考。
大概的思路是将换行符和多余的空格转换成空,那么语句就会在一行显示了!
首先准备好你的SQL语句(或者使用我的:<code>select a,b,ce,d from (select a,b,case when substr(c, 0, 1) = '1' then '0' when substr(c, 0, 1) = '2' then '2' else '1' end ce,d,e,f from tab where a = '0') ta)</code>,然后使用编辑->PL/SQL美化器来进行美化,美化后界面如图所示:
前面的准备工作已经完成,那么我们接下来将多行语句变成一行。然后我们在SQL窗口按着Ctrl+F键,紧接着就会出现查找和替换窗口,我们在查找和替换窗口中在文本查找输入框输入<code>\r</code>,而替换为输入框中不输入任何值,然后把正则表达式前面打上勾,其他的不要动,这时查找和替换窗口应该如下图所示:
然后点击全部替换,那么你将会看到所有的语句都会变成一行了,但是问题又出来了,语句中间有许多空格,如图所示:
那么接下来就是替换空格了,和前面替换行号的方法一样。
在文本查找输入框中输入两个空格,然后在替换为输入框中仍不输入任何值,并且取消正则表达式前面的勾,窗口如下图所示:
接着点击全部替换,替换之后的语句就如下图所示:
这样是不是成功了呢,现在是不是又看到错误了呢,前面那个from那里和d连到一块去了,后面也有连一块的,那这个问题呢,暂时还不晓得怎么快速解决,那这样只有自己一点一点从新敲空格了。。。。。最后成功将几行语句转换为一行,接着就可以将语句粘贴到代码中使用了。
使用这种思想,我们还可以解决更多的问题,例如:如下图所示,我们希望将字段名,以<code>,</code>(逗号隔开)。
那么我们可以按住Alt+鼠标左键,进行选中后面多余的数据,如下图所示:
然后按删除键将选中的数据进行删除,剩下我们需要的数据,然后我们按住Ctrl+F打开查找和替换窗口,在文本查找输入框中输入<code>\r</code>,替换为输入框中输入<code>,</code>,然后在正则表达式前面打勾,接着点击全部替换,先将数据一行显示,剩下的就是替换空格,这次不用考虑其他的了,所以只用在文本替换中输入框中输入一个空格,然后取消正则表达式前面的勾,点击全部替换接下来就得到我们需要的结果了,如下图:
这样的数据我们就可以来拷贝使用了。当然还有其他许多用处,这就需要你自己发掘了。。。嘿嘿。。