ich wso2dss 3.0.0.I'm bin mit versuchen, eine PostgreSQL-Abfrage dhERROR: Der Spaltenindex ist außerhalb des zulässigen Bereichs: 1, Anzahl der Spalten: 0
SELECT addressid, geocode
FROM maddress
WHERE geocode::point <@ circle '((18.9750,72.8258), 5)';
Es funktioniert gut auszuführen in PostgreSQL.When i gleiche Abfrage in wso2dss also bin mit
SELECT addressid, geocode
FROM maddress
WHERE geocode::point <@ circle '((?,?), ?)';
Es gibt mir Fehler wie:
DS Fault Message: Error in 'SQLQuery.processNormalQuery'
DS Code: DATABASE_ERROR
Source Data Service:-
Name: Geofence_DataService
Location: /Geofence_DataService.dbs
Description: N/A
Default Namespace: http://ws.wso2.org/dataservice
Current Request Name: adding_geofence_op
Current Params: {longitude=72.8258, radius=4, latitude=18.9750}
Nested Exception:-
DS Fault Message: Error in 'createProcessedPreparedStatement'
DS Code: UNKNOWN_ERROR
Nested Exception:-
org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
wenn ich entfernen " ' "
(Anführungszeichen) des Kreises dann wird es auch nicht ausgeführt. Abfrage '' wie folgt aussehen: (? (,),)
SELECT AddressID, geocodieren VON maddress WHERE geocode :: Punkt < @ Kreis;
wird es folgende Fehler geben:
Caused by: javax.xml.stream.XMLStreamException: DS Fault Message: Error in 'SQLQuery.processNormalQuery'
DS Code: DATABASE_ERROR
Source Data Service:-
Name: Geofence_DataService
Location: /Geofence_DataService.dbs
Description: N/A
Default Namespace: http://ws.wso2.org/dataservice
Current Request Name: geofence_op
Current Params: {longitude=72.8258, radius=4, latitude=18.9750}
Nested Exception:-
org.postgresql.util.PSQLException: ERROR: function circle(record, double precision) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type cast
Aber Kreis integrierte geografische Funktion von PostgreSQL ist es dann notwendig, explizite Funktion zu schreiben? sonst wo ist der genaue Fehler? Selbst wenn ich die Abfrage mit dem Input-Parameter setze, wie ich es in PostgreSQL ausführe, dann funktioniert es auch. Wenn ja, warum akzeptiert es keine dynamischen Parameter? Bitte lassen Sie mich wissen.
Ich weiß nicht, wso2dss aber das Problem scheint zu sein, wie die Parameter in den String gespleißt werden, die den Kreis definiert . Die zweite Option ohne die Anführungszeichen ist einfach falsch, weil PostgreSQL nun "circle (...)" als eine Funktion behandelt, für die es kein passendes Muster gibt. Überprüfen Sie, wie die Parameter in die Abfrage von wso2dss eingegeben werden. – Patrick
yup..und wso2dss ist nicht in der Lage, Spaß zu akzeptieren..das ist das Problem – user3129056