PostgreSQL: estructura de bloques

Syntax:
[ <<label>> ]
[ DECLARE
    declarations ]
BEGIN
    statements;
    ...
END [ label ];
  • FINAL
  • SALIDA

un

DO $$ 
<<first_block>>
DECLARE
  counter integer := 0;
BEGIN 
   counter := counter + 1;
   RAISE NOTICE 'The current value of counter is %', counter;
END first_block $$;
NOTICE:  The current value of counter is 1

La ejecución de pgAdmin del bloque anterior se puede realizar haciendo clic en el botón de ejecución en la interfaz, como se muestra a continuación:

psql block structure

VEJESTORIO

contrarrestar los propósitos del primer bloque

Concepto de Doble Dólar ($$):

DO
'<<first_block>>
DECLARE
  counter integer := 0;
BEGIN 
  
    counter := counter + 1;
    RAISE NOTICE ''The current value of counter is %'', counter;

END first_block';

$función$$procedimiento$

Subbloque PL/pgSQL:

psql block structure

Los subbloques se utilizan para agrupar declaraciones de modo que un bloque grande se pueda dividir en subbloques más pequeños y lógicos. Las variables del subbloque pueden tener los mismos nombres que las del bloque exterior, aunque no es una buena práctica.

Cuando declara una variable dentro de un subbloque con el mismo nombre que la del bloque exterior, la variable del bloque exterior se oculta en el subbloque. En caso de que desee acceder a una variable en el bloque exterior, utilice una etiqueta de bloque para calificar su nombre.

Ejemplo:

DO $$ 
<<outer_block>>
DECLARE
  counter integer := 0;
BEGIN 
   counter := counter + 1;
   RAISE NOTICE 'The current value of counter is %', counter;

   DECLARE 
       counter integer := 0;
   BEGIN 
       counter := counter + 10;
       RAISE NOTICE 'The current value of counter in the subblock is %', counter;
       RAISE NOTICE 'The current value of counter in the outer block is %', outer_block.counter;
   END;

   RAISE NOTICE 'The current value of counter in the outer block is %', counter;
   
END outer_block $$;

Producción:

NOTICE:  The current value of counter is 1
NOTICE:  The current value of counter in the subblock is 10
NOTICE:  The current value of counter in the outer block is 1
NOTICE:  The current value of counter in the outer block is 1

Analicemos el ejemplo anterior:

  • contador bloque_exterior
  • mostrador
  • bloque_externo.contador
  • encimera

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *