ITPub博客

首页 > Linux操作系统 > Linux操作系统 > format sql from v$sqltext

format sql from v$sqltext

原创 Linux操作系统 作者:jetgm 时间:2019-06-25 07:03:10 0 删除 编辑
select d.piece piece,
decode(substr(upper(ltrim(sqltext,' ')),1,4),
'SELE', ltrim(sqltext,' '),
'FROM', ltrim(sqltext,' '),
'WHER', ltrim(sqltext,' '),
'ORDE', ltrim(sqltext,' '),
'GROU', ltrim(sqltext,' '),
'UNIO', ltrim(sqltext,' '),
'AND ', ltrim(sqltext,' '),
'EXPL', ltrim(sqltext,' '),
'(SEL', ltrim(sqltext,' '),
'UPDA', ltrim(sqltext,' '),
'DELE', ltrim(sqltext,' '),
' '||sqltext) sqltext
from (select a.piece, decode(b.sql1,' ','',b.sql1)||a.sql sqltext
from ( select piece,
decode(piece, last_piece, sql_text||';',
decode(instr(upper(sql_text),' FROM ',-1),0,
decode(instr(upper(sql_text),' WHERE ',-1),0,
decode(instr(upper(sql_text),' UNION ALL', -1),0,
decode(instr(upper(sql_text),' UNION ', -1),0,
decode(instr(upper(sql_text),' ORDER ',-1),0,
decode(instr(upper(sql_text),' GROUP ',-1),0,
decode(instr(sql_text,',',-1),0,
decode(instr(sql_text,' ',-1),0,
decode(instr(sql_text,')',-1),0, sql_text,
substr(sql_text,1,instr(upper(sql_text),')', -1))),
substr(sql_text,1,instr(upper(sql_text),' ',-1))),
substr(sql_text,1,instr(upper(sql_text),',',-1))),
substr(sql_text,1,instr(upper(sql_text),' GROUP ',-1))),
substr(sql_text,1,instr(upper(sql_text),' ORDER ',-1))),
substr(sql_text,1,instr(upper(sql_text),' UNION ALL',-1))),
substr(sql_text,1,instr(upper(sql_text),' UNION ',-1))),
substr(sql_text,1,instr(upper(sql_text),' WHERE ',-1))),
substr(sql_text,1,instr(upper(sql_text),' FROM ',-1)))) sql
from v$sqltext, (select max(piece) last_piece
from v$sqltext
where address='&&1') c
where address='&&1'
and piece=c.last_piece(+)) a,
( select piece + 1 tail_piece,
decode(instr(upper(sql_text),' FROM ',-1),0,
decode(instr(upper(sql_text),' WHERE ',-1),0,
decode(instr(upper(sql_text),' UNION ALL', -1),0,
decode(instr(upper(sql_text),' UNION ', -1),0,
decode(instr(upper(sql_text),' ORDER ',-1),0,
decode(instr(upper(sql_text),' GROUP ',-1),0,
decode(instr(upper(sql_text),',',-1),0,
decode(instr(upper(sql_text),' ',-1),0,
decode(instr(upper(sql_text),')',-1),0, sql_text,
substr(sql_text,instr(upper(sql_text),')', -1)+1)),
substr(sql_text,instr(upper(sql_text),' ', -1)+1)),
substr(sql_text,instr(upper(sql_text),',', -1)+1)),
substr(sql_text,instr(upper(sql_text),' GROUP ',-1)+1)),
substr(sql_text,instr(upper(sql_text),' ORDER ',-1)+1)),
substr(sql_text,instr(upper(sql_text),' UNION ',-1)+1)),
substr(sql_text,instr(upper(sql_text),' UNION ALL',-1)+1)),
substr(sql_text,instr(upper(sql_text),' WHERE ',-1)+1)),
substr(sql_text,instr(upper(sql_text),' FROM ',-1)+1)) as sql1
from v$sqltext ,(select max(piece) last_piece
from v$sqltext
where address='&&1') c
where address='&&1'
and piece!=c.last_piece) b
where a.piece=b.tail_piece(+) ) d
order by piece

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6456/viewspace-112200/,如需转载,请注明出处,否则将追究法律责任。

上一篇: mts
请登录后发表评论 登录
全部评论

注册时间:2002-02-06

  • 博文量
    44
  • 访问量
    35799