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:
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:
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