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

Bagaimana cara memanggil prosedur PostgreSQL di Jawa?

Anda sebagian besar dapat menyederhanakan fungsi. (Menjaga fungsi sederhana demi pertanyaan.)

CREATE OR REPLACE FUNCTION get_geom_difference()
   RETURNS integer AS
$BODY$
   SELECT num
   FROM   filedata
   WHERE  num = 1 
   LIMIT  1;  -- needed if there can be more than one rows with num = 1
$BODY$    LANGUAGE SQL;

Padahal, secara teknis, apa yang Anda miliki dalam pertanyaan juga akan berfungsi - asalkan tipe datanya cocok. Melakukannya? Apakah kolom filedata.num bertipe integer ? Itulah yang saya kumpulkan dari contoh. Tentang pertanyaan Anda yang lain Saya berasumsinumeric karena kurangnya informasi. Setidaknya salah satu dari mereka akan gagal.

Jika tipe pengembalian fungsi tidak cocok dengan nilai yang dikembalikan, Anda mendapatkan kesalahan dari fungsi PostgreSQL. Dikonfigurasi dengan benar, log PostgreSQL Anda akan memiliki pesan kesalahan terperinci dalam kasus ini.

Apa yang Anda lihat, ketika Anda membuat fungsi di atas di PostgreSQL dan kemudian memanggil:

SELECT get_geom_difference(1);

dari psql . (Sebaiknya dalam sesi yang sama untuk mengesampingkan campuran database, port, server, atau pengguna.)

Memanggil fungsi sederhana yang mengambil satu parameter dan mengembalikan satu nilai skalar tampaknya cukup mudah. Bab 6.1 dari manual PostgreSQL JDBC memiliki contoh lengkap yang tampaknya sangat sesuai dengan apa yang Anda miliki dalam pertanyaan Anda (Namun, keahlian saya adalah dengan Postgres daripada JDBC).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. maven mulai server postgres

  2. Menghilangkan PostgreSQL Split-Brain di Database Multi-Cloud

  3. tidak ada entri pg_hba.conf untuk host

  4. PostgreSQL - Menulis sql dinamis dalam prosedur tersimpan yang mengembalikan kumpulan hasil

  5. Ekstrak Bulan dari Tanggal di PostgreSQL