Tôi đang sử dụng wso2dss 3.0.0.I'm cố gắng để thực hiện một ví dụ truy vấn postgresqlLỖI: Chỉ số cột là ra khỏi phạm vi: 1, số cột: 0
SELECT addressid, geocode
FROM maddress
WHERE geocode::point <@ circle '((18.9750,72.8258), 5)';
Nó đang làm việc tốt trong PostgreSQL.When tôi đang sử dụng cùng một truy vấn trong wso2dss tức
SELECT addressid, geocode
FROM maddress
WHERE geocode::point <@ circle '((?,?), ?)';
Nó mang lại cho tôi lỗi như:
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.
nếu tôi loại bỏ " ' "
(dấu ngoặc kép) của vòng tròn sau đó cũng sẽ không thực thi. truy vấn '' trông như thế này: (?? (,),)
CHỌN AddressID, mã địa lý TỪ maddress ĐÂU geocode :: điểm < @ vòng tròn;
nó sẽ cung cấp cho báo lỗi sau:
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
Nhưng vòng tròn được chức năng địa lý sẵn có của PostgreSQL sau đó là nó cần thiết để viết chức năng rõ ràng? khác đâu là lỗi chính xác? Ngay cả khi tôi đặt truy vấn với tham số đầu vào như tôi thực hiện trong PostgreSQL thì nó cũng hoạt động. Nếu vậy thì tại sao nó không chấp nhận các tham số động? Vui lòng cho tôi biết ..
Tôi không biết wso2dss nhưng vấn đề dường như là cách các tham số được ghép vào chuỗi định nghĩa đường tròn . Tùy chọn thứ hai không có dấu ngoặc kép là sai bởi vì bây giờ PostgreSQL xử lý 'vòng tròn (...)' như một hàm mà không có mẫu thích hợp. Kiểm tra cách các tham số được đưa vào truy vấn từ wso2dss. – Patrick
yup..và wso2dss không thể chấp nhận lời chào ... đó là vấn đề – user3129056