需要一个SQL查询来将不同列中的文本包装到一列

时间:2009-08-19 05:46:24

标签: sql database oracle

我正在运行以下查询

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是程序中的编码。 但它正在以不同的方式出现 我需要在一栏中得到它 让我知道如何修改上面的查询以获得所需的结果

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:0)

用空格替换新行字符

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

我的想法是,我们在行的开头或结尾处理CR,LF和空格,替换为单个空格。这也将用一个空格替换多个空格字符。