2009-08-19 55 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'