PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Tidak dapat menentukan tipe polimorfik karena input memiliki tipe yang tidak diketahui

Masalahnya di sini adalah '' as name tidak benar-benar menentukan tipe untuk nilainya. Ini adalah unknown ketik, dan PostgreSQL biasanya menyimpulkan tipe sebenarnya dari hal-hal seperti kolom tempat Anda memasukkannya atau fungsi apa yang Anda berikan.

Dalam hal ini, Anda meneruskannya ke array_agg , yang merupakan polimorfik fungsi. Itu dapat mengambil input dari anyelement tipe-semu , yang sebenarnya hanya berarti "cari tahu saat runtime".

PostgreSQL masih akan mengetahuinya kecuali array_to_string sebenarnya tidak mengambil text[] sebagai masukan. Dibutuhkan anyarray - tipe polimorfik lain, seperti anyelement untuk array.

Jadi tidak ada dalam kueri yang memberi tahu PostgreSQL jenis apa '' adalah. Itu bisa menebak maksud Anda text , tapi agak terlalu rewel untuk itu. Jadi mengeluh. Masalah ini disederhanakan menjadi:

regress=> SELECT array_to_string(array_agg(''), ',');
ERROR:  could not determine polymorphic type because input has type "unknown"

Untuk mengatasi ini, tulis literal yang diketik:

TEXT '' AS name

atau gunakan pemeran:

CAST('' AS text) AS name

atau singkatan PostgreSQL:

''::text

contoh:

regress=> SELECT array_to_string(array_agg(TEXT ''), ',');
 array_to_string 
-----------------

(1 row)

regress=> SELECT array_to_string(array_agg(''::text), ',');
 array_to_string 
-----------------

(1 row)

regress=> SELECT array_to_string(array_agg(CAST('' AS text)), ',');
 array_to_string 
-----------------

(1 row)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Psycopg2 :Buat tabel dalam prosedur tersimpan Postgres

  2. hitung entri nol di kolom basis data dengan cara RESTfull

  3. Bagaimana cara memiliki kunci asing yang menunjuk ke dua kunci utama?

  4. Apakah baris dikunci secara berurutan dalam pernyataan SELECT ... ORDER BY ... FOR UPDATE?

  5. Kunci utama dengan Apache Spark