2017-09-21 1 views
0

XMLデータを使用してXMLからオブジェクトの配列を抽出:列表にSQLクエリ

<fundingBody> 
    <contextName>Dell</contextName> 
    <contextName>Hp</contextName> 
</fundingBody> 

私は私のDBにcontextNameの配列を格納する必要があるので、私は、次のSELECTクエリを使用して、それを取得しようとしています:

select extract(CONTENT,'/fundingBody/contextName/text()') from GWH_FUNDING_BODY where ast_id=12112731; 

注:CONTENT列名で、GWH_FUNDING_BODYはテーブル名である

私は取得していた結果は次のとおりです。DellHp

しかし、私は必要な結果は次のとおりです。Dell;Hp

私が期待される結果を得るために変更する必要がありますか?

答えて

0
select extract(CONTENT,'/fundingBody/contextName/text()'), 
';' 
from GWH_FUNDING_BODY where ast_id=12112731; 

しかし、この方法で最後の1つを取得します。もっと。サブストリングを使用して切り取ることができます。

+0

@Clasta:しかし、それは私に2つの列i)DellHp ii)を与えます。 – krishna

+0

あなたが前にパットした方法は、あなたに2つの列を与えていませんでしたか? i)Dell ii)Hp? GWH_FUNDING_BODYからconcat(extract(CONTENT、 '/ fundingBody/contextName/text()')、 ';')を選択すると、ast_id = 12112731となります。 しかし、あなたはそのような結果を得るでしょう: i)Dell; ii)Hp; –

+0

私は試しましたが、これは私にDellHpを与えます。しかし、必要な結果はDell; Hp;またはDell; Hp – krishna