ポスグレを使っていて、XMLのパラメータが送られてくるファンクションを作ることがあり、使い方を忘れそうなので書き残しておきます
xmltableはXMLをテーブル要素に変換するときに使います
※プログラミング初心者が書いていますので、読みづらかったり、誤りがある可能性がございます。そのような点については目をつぶっていただくかコメントでご指摘いただけると幸いです
xmltableの概要
使い方はざっと以下の通りです
xmltable(
'名前空間'
PASSING '解析するXMLデータ'
COLUMNS カラム名 データ型 PATH 'XMLのタグ名'
)
基本的にはこのような形で使います
ただ、これだとわかりづらいと思うので、実際にデータを入れて動かしたものも紹介します
xmltable使用例
テーブル要素としてFROMの中に入れてSELECTしてみます
SELECT
*
FROM
xmltable(
'//Food/Vegetable'
PASSING '
<Food>
<Vegetable>
<Name>きゅうり</Name>
<EnglishName>Cucumber</EnglishName>
<Calorie>14</Calorie>
<Price>55</Price>
</Vegetable>
<Vegetable>
<Name>たまねぎ</Name>
<EnglishName>Onion</EnglishName>
<Calorie>37</Calorie>
<Price>70</Price>
</Vegetable>
<Vegetable>
<Name>じゃがいも</Name>
<EnglishName>Potato</EnglishName>
<Calorie>76</Calorie>
<Price>50</Price>
</Vegetable>
</Food>'
COLUMNS
name character varying PATH 'Name',
e_name character varying PATH 'EnglishName',
calorie integer PATH 'Calorie',
price integer PATH 'Price'
)
;
XMLが長いので見にくいですかね…?
結果は以下のようになります
name | e_name | calorie | price |
---|---|---|---|
きゅうり | Cucumber | 14 | 55 |
たまねぎ | Onion | 37 | 70 |
じゃがいも | Potato | 76 | 50 |
XMLの内容をテーブル要素として取得することができました
コメント