PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

LỖI:Chỉ mục cột nằm ngoài phạm vi:1, số cột:0

Các loại hình học có thể được nhập bằng nhiều cách.

  • Trong biểu mẫu đầu tiên, ? của bạn các tham số không được thay thế bằng các giá trị vì chúng là các phần theo nghĩa đen của một chuỗi. Vì vậy, 0 tham số được mong đợi ...

  • Trong biểu mẫu thứ hai không có dấu ngoặc kép, ? của bạn các tham số được thay thế, nhưng ((18.9750,72.8258), 5) được hiểu là một loại hàng, không hoạt động với circle() .

Bạn đang cố gọi hàm hình học circle() cần một pointdouble precision ("tâm và bán kính của hình tròn"). Đây là các biến thể cú pháp hợp lệ:

SELECT circle '((18.9750,72.8258), 5)'        AS cast_literal
     ' <(18.9750,72.82580),5>'::circle        AS cast_literal2
     , circle(point '(18.9750,72.8258)', '5') AS literal_point_n_radius
     , circle(point(18.9750,72.8258), '5')    AS point_n_literal_radius
     , circle(point(18.9750,72.8258), 5)      AS point_n_radius

SQL fiddle.
Truyền thành ::text chỉ là để làm sạch màn hình lệch lạc trong SQL fiddle

Trong trường hợp của bạn, để cung cấp giá trị số (không phải là một chuỗi ký tự), hãy sử dụng biểu mẫu cuối cùng và nó sẽ hoạt động:

SELECT addressid, geocode
FROM   maddress
WHERE  geocode::point <@ circle(point(?,?), ?);

Nếu wso2dss (mà tôi không có kinh nghiệm) không chấp nhận các chức năng, bạn phải sử dụng một trong hai biểu mẫu đầu tiên và cung cấp một đơn tham số dưới dạng chuỗi ký tự:

SELECT addressid, geocode
FROM   maddress
WHERE  geocode::point <@ circle ?;

... trong đó tham số là ký tự được nối như hiển thị ở trên.

Bạn có thể hãy để Postgres thực hiện việc nối và vẫn chuyển ba giá trị số:

SELECT addressid, geocode
FROM   maddress
WHERE  geocode::point <@ ('(('::text || ? || ',' || ? || '),' || ? || ')')::circle;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn hàng loạt từ csv trong postgres bằng golang mà không sử dụng vòng lặp for

  2. Làm cách nào để chọn các hàng liền kề thành một hàng tùy ý (trong sql hoặc postgresql)?

  3. THAM GIA (CHỌN ...) ue ON 1 =1?

  4. Sử dụng cơ sở dữ liệu PostgreSQL với Docker và Flask, nó hoạt động như thế nào?

  5. Không xác thực được kết nối mới được thiết lập