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

Грешка Невалиден синтаксис на въвеждане за цяло число за не-цяло число?

Вашето въвеждане е неуспешно със синтактична грешка в Конструктор ARRAY преди дори да стигнете до разрешение на тип функция - където ще получите повече съобщения за грешка поради други несъответствия на типове, след като премахнете конструктора ARRAY, който изобщо не трябва да присъства в извикването.

Вашето решение е да подадете отделни параметри от съвпадащ тип ,не масив. Останалото е просто обяснение на това, което видяхме.

Какво наистина се случи

Един масив може да включва само стойности от един и същи тип, но вашите въведени смеси числови константи с нечислов низов литерал , което не може да бъде разрешено.

Ако искате да се разреши на text[] (масив от text ), трябва да предоставите низови литерали по следния начин:

SELECT ARRAY['1004', '2', '1079412', 'WwLEA6XZ0'];

Или директно литерал на масив, така:

SELECT '{1004, 2, 1079412, WwLEA6XZ0}'::text[];

Но след като стартирате конструктор ARRAY с числови константи, само числови типове са законни за добавяне. Или поне низови литерали със съдържание, което може да бъде приведено към същия тип. Вие можете :

SELECT ARRAY[1004, 2, 1079412, '1'];

... което води до int[] . Или:

SELECT ARRAY[1004, 2, 1079412, 1.0];

Или дори:

SELECT ARRAY[1004, 2, 1079412.0, '1.0'];

... и двете водят до numeric[] .

Но ARRAY[1004, 2, 1079412, 'WwLEA6XZ0V'] е незаконно и с право.

Точните правила за разрешаване на типове за конструктори на масиви могат да бъдат намерени в тази глава на ръководството:"Преобразуване на типове" - "UNION, CASE и свързани конструкции" . Вашето пътуване приключва на:

Тъй като низовият литерал 'WwLEA6XZ0V' не може да се преобразува в integer .




  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. сървърът на възел не може да се свърже с postgres db

  3. Автоматично увеличаване на колоната на таблицата

  4. Разделен низ с split_part на азиатски език

  5. Heroku Postgres:psql:ФАТАЛНО:няма запис в pg_hba.conf за хост