2017-11-21 16 views
0

teiidからMySQLデータソースに対してSQL SELECTクエリを発行していて、SQL応答をJSON形式で取得しようとしています。 XML形式のレスポンスを得ることはできましたが、JSON形式でレスポンスを取得しようとすると問題が発生しました。 XMLELEMENT、XMLAGG、XMLFORESTのXML関数に相当するJSON関数がないようです。私は私の質問のXMLのバージョンを投稿した。このクエリの同等のJSONバージョンは何ですか?teiid RESTサービスからJSON応答を取得する方法

( P2の整数では、P1の整数で)RETURNS(XML_OUT XML)OPTIONS VIRTUAL PROCEDURE GetFlightRecordsByAirDelay1をCREATE(UPDATECOUNT 0、 を "REST:METHOD" 'GET'、 "REST:URI" 'GetFlightRecordsByAirDelay1') /* +キャッシュ(pref_mem TTL:1440万)AS */ 、 SELECT XMLELEMENT( "FlightDelayRecordsを" BEGIN
XMLAGG(XMLELEMENT( "FlightDelayRecord"、 XMLFOREST(UniqueCarrier、FlightNum、CRSDepTime、DepTime、 CRSArrTime、ArrDelay) ))))xml_outからFROM(SELECT UniqueCarrier、FlightNum、CRSDepTime、DepTime、CRSArrTim flight_records_mod1 WHERE flight_records_mod1.ArrDelay < P1とflight_records_mod1.YEAR = P2 LIMIT 10)AからE、
ArrDelay。
END

答えて

0

jsonを返す方が簡単です。

{"FlightDelayRecords":[{"UniqueCarrier":...},...]} 

使用

CREATE VIRTUAL PROCEDURE GetFlightRecordsByAirDelay1(IN p1 integer, IN p2 integer) 
RETURNS (clob json) OPTIONS (UPDATECOUNT 0, "REST:METHOD" 'GET', "REST:URI" 'GetFlightRecordsByAirDelay1') AS /*+ cache(pref_mem ttl:14400000) */ 
BEGIN 
SELECT JSONOBJECT(JSONARRAY_AGG(JSONOBJECT(UniqueCarrier,FlightNum, CRSDepTime, DepTime, CRSArrTime, ArrDelay)) as "FlightDelayRecords") as json FROM (SELECT UniqueCarrier,FlightNum, CRSDepTime, DepTime, CRSArrTime, 
ArrDelay FROM flight_records_mod1 WHERE flight_records_mod1.ArrDelay < p1 AND flight_records_mod1.YEAR = p2 LIMIT 10) A; 
END 
+0

おかげで多くのことを:のような結果を生成します。このように私は私の問題を解決することができます – Sanjewa

関連する問題