sql >> Database >  >> RDS >> PostgreSQL

PSQL-opdrachtregelargumenten in DO-script

Omdat de PL-blokken eigenlijk tekstconstanten in de code zijn, worden de interne variabelen er niet op de gebruikelijke manier in vervangen. Gelukkig is het mogelijk om sessievariabelen te gebruiken voor het delen van gegevens tussen verschillende SQL/PL-blokken:

set foo.bar to :v1; -- Name should contains the dot, don't ask me why 
show foo.bar; -- Check that the value was assigned 
do $$
declare
  myvar text := current_setting('foo.bar');
begin
  raise info '%', myvar; -- Output variable value
end $$;

Om ervoor te zorgen dat de variabele wordt toegewezen en de standaardwaarde in te stellen als dit niet het geval is:

\if :{?v1}
  set foo.bar to :v1;
\else
  set foo.bar to 'default';
\endif

Meer details:
https://www.postgresql.org/docs/current/app-psql.html#PSQL-METACOMMAND-IFhttps://www.postgresql.org/docs/current/app-psql.html #APP-PSQL-INTERPOLATIE



  1. De gebruikte SELECT-statements hebben een ander aantal kolommen (REDUX!!)

  2. Resultatencache

  3. SQL Server Hoge beschikbaarheid:SQL Server failover geclusterd exemplaar installeren, deel 2

  4. Oracle Forms in R12/R12.2