2009-08-19 41 views
1

我运行下面的查询需要一个SQL查询,环绕文字在不同的充colums来一列

SELECT ora_database_name AS SERVER_NAME,'CNTODSSTG' AS DB_NAME,p.owner,p.object_name,s.text 
FROM all_procedures p,all_source s 
WHERE p.owner<>'SYS' AND p.owner<>'SYSTEM' AND s.TYPE='PROCEDURE' 
AND p.object_name=s.name 
GROUP BY p.owner,p.object_name,s.text 

s.text是在过程中的编码。 但它在不同线路 未来我需要得到它在一列 让我知道如何修改上面的查询,以获得所需的结果

回答

0

用空格

REGEXP_REPLACE(s_text, '[[:space:]]+', ' ') s_oneline_text 

我的想法更换新线字符我们在行首或行末处理CR,LF和空格,用一个空格替换。这也将用一个空格替换多个空格字符。

1
SELECT ora_database_name AS SERVER_NAME, 
     'CNTODSSTG' AS DB_NAME,p.owner,p.object_name, 
     dbms_metadata.get_ddl(p.object_type,p.object_name,p.owner) 
FROM all_procedures p 
WHERE p.owner<>'SYS' AND p.owner<>'SYSTEM' AND s.TYPE='PROCEDURE'