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

Status SQL:42883, Tidak ada fungsi yang cocok dengan nama dan tipe argumen yang diberikan. Tapi fungsi itu benar-benar ada

Kemungkinan besar masalah skema vs. skema search_path . Fungsi dibuat dalam skema default dari pengguna yang membuat. Jika itu tidak ada di search_path dari pengguna saat ini, itu tidak terlihat.

Detail:

Biasanya, Anda akan membuat fungsi publik dalam skema public dan memiliki skema itu di search_path ever semua orang .

CREATE OR REPLACE FUNCTION public.fun_validatepost(integer, integer)
  RETURNS integer AS
$BODY$
...
$BODY$ LANGUAGE plpgsql;
ALTER FUNCTION public.fun_validatepost(integer, integer) OWNER TO postgres;

Kualifikasi skema hanya diperlukan jika public bukan skema default.

Juga, GRANT . Anda perintah tidak masuk akal. EXECUTE hak istimewa untuk fungsi diberikan kepada public secara default. Dan setelah Anda memberikan ke public , tidak perlu memberikan kepada pengguna lain. Terutama untuk tidak postgres , yang merupakan OWNER lagi pula dan pengguna super juga. Manual:

Anda perlu memberikan USAGE pada SCHEMA dimana fungsi tersebut dibuat. public skema memberikan USAGE ke public (semua orang) secara default.

Selain 1

Transmisi ke integer tidak mengubah apa pun di sini karena literal numerik tanpa titik desimal dipaksa menjadi integer secara otomatis. Detail tentang konstanta dalam manual.

Selain 2

Segera pertimbangkan untuk memperbarui ke versi Postgres saat ini. Perangkat lunak Anda benar-benar usang.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara UNION daftar tabel yang diambil dari tabel lain dengan satu permintaan?

  2. Bagaimana saya bisa mengubah penyandian basis data untuk basis data PostgreSQL menggunakan sql atau phpPgAdmin?

  3. Bagaimana menghubungkan Struts 2 dengan Hibernate dan PostgreSQL

  4. postgresql :gabung dengan syarat dan tanpa duplikasi

  5. Bagaimana cara mengatur ulang urutan kunci utama postgres ketika tidak sinkron?