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

Referensi parameter psql di dalam blok anonim PL/pgSQL

psql parser tidak dapat melihat apa yang ada di dalam string. Ini mungkin yang Anda inginkan:

delete from t
where :para = 1

Lakukan di luar blok anonim. Jika Anda benar-benar membutuhkan PL/pgSQL gunakan fungsi berparameter:

create or replace function f(_para integer)
returns void as $$
begin
    if _para = 1 then
        --statements
    end if;
end; $$ language plpgsql;

Dan file skrip Anda akan memiliki:

select f(:para);

Jika Anda tidak ingin menambahkan fungsi secara permanen ke db, lakukan semuanya di dalam skrip:

drop function if exists f_iu7YttW(integer);

create or replace function f_iu7YttW(_para integer)
returns void as $$
begin
    if _para = 1 then
        --statements
    end if;
end; $$ language plpgsql;

select f_iu7YttW(:para);

drop function f_iu7YttW(integer);

Beri nama fungsi yang unik agar Anda tidak mengambil risiko menjatuhkan sesuatu yang lain.




  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 membandingkan data antara dua database di PostgreSQL?

  2. PostgreSQL:Buat indeks untuk kolom boolean

  3. org.hibernate.MappingException:Tidak ada pemetaan Dialek untuk tipe JDBC:1111

  4. Bagaimana saya bisa mengekstrak bagian dari Django Postgres DateRangeField

  5. Bagaimana cara mengubah kolom PG menjadi NULLABLE TRUE?