PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

ГРЕШКА:Индексът на колоната е извън обхват:1, брой колони:0

Геометрични типове може да се въведе по много начини.

  • В първата форма вашият ? параметрите не се заменят със стойности, защото те са буквални части от низ. Така че се очакват 0 параметри ...

  • Във втората форма без единични кавички, вашият ? параметрите са заменени, но ((18.9750,72.8258), 5) се интерпретира като тип ред, който не работи с circle() .

Опитвате се да извикате геометричната функция circle() който отнема point и double precision ("център и радиус на окръжност"). Това са валидни варианти на синтаксис:

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 цигулка.
Прехвърлянето към ::text е просто да дезинфекцира неправилния дисплей в SQL fiddle

Във вашия случай, за предоставяне на числови стойности (не е низов литерал), използвайте последната форма и трябва да работи:

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

Ако wso2dss (с който нямам опит) не приема функции, трябва да използвате една от първите две форми и да предоставите single параметър като низов литерал:

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

... където параметърът е свързаният литерал, както е показано по-горе.

Вие можете оставете Postgres да направи конкатенацията и пак да предаде три числови стойности:

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. Позоваване на ред от друга таблица (PostgreSQL)

  2. Създайте индекс на json поле в PostgreSQL 9.2

  3. План за заявка на postgres с индекси

  4. Защо това правило не предотвратява дублирани нарушения на ключове?

  5. Как да получите SQL текст от задействане на събитие на Postgres