この例では、データベース テーブルに挿入されている2つの小さなJSONドキュメントのデータをシュレッドし、この関数によって返される派生テーブルの列で抽出されたデータを表示します。JSONドキュメントはVARCHARデータとして格納されますが、抽出されたデータの1つの列はDECIMALデータとして返されます。
CREATE TABLE ShreddedData (ID INTEGER, j VARCHAR(80)); INSERT INTO ShreddedData VALUES (1, '{"items":[{"name":"charger","price":12.99},{"name":"phone","price":599.99}]}'); INSERT INTO ShreddedData VALUES (2, '{"items":{"name":"laptop","price":999.99}}');
SELECT * FROM ShreddedData; ID j ----------- -------------------------------------------------------------------------------- 1 {"items":[{"name":"charger","price":12.99},{"name":"phone","price":599.99}]} 2 {"items":{"name":"laptop","price":999.99}}
次にTD_JSONSHREDを使用して、JSONデータから派生データベース テーブルに名前と値を抽出します。
SELECT * FROM TD_JSONSHRED( ON (SELECT ID, j FROM ShreddedData) USING ROWEXPR('items') COLEXPR('name', 'price') RETURNTYPES('VARCHAR(20)', 'DECIMAL(10,2)') ) t;
以下に示す返される結果セットでは、ID列の値が、シュレッドされたデータがあった入力テーブル(つまり特定のJSONドキュメント)の行を特定することに注意してください。
ID name price ----------- -------------------- ------------ 1 charger 12.99 1 phone 599.99 2 laptop 999.99