2012-01-30 5 views
6

Ý nghĩa của từ trong dấu ngoặc nhọn đôi trong PL/SQL, ví dụ: <<word>>?PL/SQL Ý nghĩa của <<word>>

Tôi đã cố thực hiện tìm kiếm trên google nhưng google bỏ qua dấu chấm câu.

Nó được sử dụng để làm gì?

+2

tra cứu “PLSQL dấu ngoặc nhọn đôi ". – Benoit

+1

'<<' and '>>' là các dấu phân cách nhãn, do đó trong '<>' 'foo' là nhãn. Tìm thêm từ tài liệu Oracle: [Các nguyên tắc cơ bản về ngôn ngữ PL/SQL] (http://docs.oracle.com/cd/E11882_01/appdev.112/e17126/fundamentals.htm) và [Các câu lệnh điều khiển PL/SQL] (http://docs.oracle.com/cd/E11882_01/appdev.112/e17126/controlstatements.htm). – user272735

+1

Bài viết này sẽ cung cấp cho bạn một nền tảng tốt trong ghi nhãn khối và sử dụng của nó: http://www.devshed.com/c/a/Oracle/Database-Interaction-with-PLSQL-Nested-Blocks-in-Depth/1/ Hy vọng nó giúp... – Ollie

Trả lời

2

Như đã đề cập bởi các bình luận câu hỏi, điều này được sử dụng để đặt tên báo cáo hợp chất và cũng là một mục tiêu cho GOTO. Bạn có thể sử dụng để sử dụng nhãn trong END và END LOOP mà có thể là tuyệt vời để có thể đọc, như <<countdown>> for i in 1.9 loop blah; end loop countdown;

Dưới đây là một ví dụ:

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; 
/

đầu ra là:

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