2012-01-30 7 views
6

¿Cuál es el significado de una palabra en corchetes en doble ángulo en PL/SQL, por ej. <<word>>?PL/SQL Cuál es el significado de <<word>>

He intentado hacer una búsqueda en google, pero google omite la puntuación.

¿Para qué se utiliza?

+2

de búsqueda “plsql soportes de doble ángulo ". – Benoit

+1

'<<' and '>>' son delímetros de etiquetas, por lo tanto, en '<>' 'foo' es una etiqueta. Obtenga más información de la documentación de Oracle: [Fundamentos del lenguaje PL/SQL] (http://docs.oracle.com/cd/E11882_01/appdev.112/e17126/fundamentals.htm) y [Sentencias de control PL/SQL] (http://docs.oracle.com/cd/E11882_01/appdev.112/e17126/controlstatements.htm). – user272735

+1

Este artículo debería proporcionarle una buena conexión a tierra en el etiquetado de bloques y sus usos: http://www.devshed.com/c/a/Oracle/Database-Interaction-with-PLSQL-Nested-Blocks-in-Depth/1/ Espero eso ayude... – Ollie

Respuesta

2

Como se ha mencionado por los comentaristas de interrogación, esto se utiliza para etiquetar instrucciones compuestas y también como un objetivo para GOTO. Se puede utilizar para usar la etiqueta en el final y FIN bucle que puede ser grande para facilitar la lectura, como <<countdown>> for i in 1.9 loop blah; end loop countdown;

He aquí un ejemplo:

set echo on 
set serveroutput on 

<<begin_end_block>> 
declare 
    msg varchar2(1000); 
begin 
    dbms_output.enable; 
    msg := chr(9) || 'start'; 
    <<loopblk>> 
    for itr8 in 1 .. 5 
    loop 
    msg := msg || chr(10) || chr (9) || 'loop'; 
    dbms_output.put_line ('Iterator is ' || itr8); 
    <<ifblck>> if itr8 > 2 
    then 
     msg := msg || chr(10) || chr(9) || 'greater than 2'; 
     goto gototarg; 
    end if; 
    exit loopblk when mod (itr8, 4) = 0; 
    continue loopblk; 
    <<gototarg>> 
    dbms_output.put_line ('after goto target'); 
    end loop loopblk; 
    dbms_output.put_line ('Ending, here are the messages' || chr(10) || msg); 
end begin_end_block; 
/

salida es:

anonymous block completed 
Iterator is 1 
Iterator is 2 
Iterator is 3 
after goto target 
Iterator is 4 
after goto target 
Iterator is 5 
after goto target 
Ending, here are the messages 
    start 
    loop 
    loop 
    loop 
    greater than 2 
    loop 
    greater than 2 
    loop 
    greater than 2 
Cuestiones relacionadas