unprovision_meta_data xmltype列
select h.unprovision_meta_data.extract('/').getStringVal() from test h;
输出:
<Warehouse whono="200">
<Building>Leased</Building>
</Warehouse>
我想要像这样的一行:
<Warehouse whono="200"> <Building>Leased</Building> </Warehouse>
基本上我想将sql输出假脱机到一个平面文件。所以每行都在一行中 这有可能吗?
感谢。
答案 0 :(得分:0)
select regexp_replace(
h.unprovision_meta_data.extract('/').getStringVal(),
'('||chr(10)||'|'||chr(13)||')+',
'') as unprovision_meta_data
from test h
输出:
<Warehouse whono="200"> <Building>Leased</Building></Warehouse>
答案 1 :(得分:0)
您可以将TRANSLATE
用于此目的:
select TRANSLATE(h.unprovision_meta_data.extract('/').getStringVal(),
'-' || chr(10) || chr(13),
'-')
from test h;
TRANSLATE(..., '-' || chr(10) || chr(13), '-')
部分将:
-
映射到-
(身份操作)\r
映射到 nothing \n
映射到 nothing -
技巧是因为当替换字符串为空时TRANSLATE
的行为与您预期的不同(在这种情况下它会返回NULL
)。