powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / что означает текст в двойных угловых скобках в plsql блоке?
13 сообщений из 13, страница 1 из 1
что означает текст в двойных угловых скобках в plsql блоке?
    #39491468
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
begin <<FINISH_PROCESS0>> 	dbms_output.put_line('hello world'); end;
/



что это
Код: plaintext
<<FINISH_PROCESS0>>
такое и почему это работает?
...
Рейтинг: 0 / 0
что означает текст в двойных угловых скобках в plsql блоке?
    #39491486
Maxim Demenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.,

RTFM

Regards

Maxim
...
Рейтинг: 0 / 0
что означает текст в двойных угловых скобках в plsql блоке?
    #39491488
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
что означает текст в двойных угловых скобках в plsql блоке?
    #39491596
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicRTFM PL/SQL statement (FAQ)

[ << label >> ]... [ DECLARE declare_section ] body

BEGIN statement [ statement | inline_pragma ]...
[ EXCEPTION exception_handler [ exception_handler ]... ] END [ name ] ;

name

The name of the block to which END applies—a label, function name, procedure name, or package name.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> ed
Wrote file afiedt.buf

  1  <<L_label>>
  2  begin
  3   null;
  4* end L_name;
SQL> /

PL/SQL procedure successfully completed.

SQL>


L_name к чему applies?


....
stax
...
Рейтинг: 0 / 0
что означает текст в двойных угловых скобках в plsql блоке?
    #39491616
a label
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stax..L_name к чему applies?к block
...
Рейтинг: 0 / 0
что означает текст в двойных угловых скобках в plsql блоке?
    #39491625
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a labelstax..L_name к чему applies?к block

гугл

Имя блока, к которому применяется END - метка, имя функции, имя процедуры или имя пакета.

Имя блока
1) метка
2) имя функции
3) имя процедуры
4) имя пакета

где есть блок?

ps
Имя блока, к которому применяется END - метка, имя функции, имя процедуры, имя пакета или блок.
так?


.....
stax
...
Рейтинг: 0 / 0
что означает текст в двойных угловых скобках в plsql блоке?
    #39491651
Maxim Demenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..,

Ни к чему не применяется. Синтактическая погрешность толерируемая sqlplus
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> set echo on
SQL> <<L_label>>
  2  begin
  3    null;
  4    goto L_name;
  5  end L_name;
  6  /
  goto L_name;
       *
ERROR at line 4:
ORA-06550: line 4, column 8:
PLS-00201: identifier 'L_NAME' must be declared
ORA-06550: line 4, column 3:
PL/SQL: Statement ignored



Regards

Maxim
...
Рейтинг: 0 / 0
что означает текст в двойных угловых скобках в plsql блоке?
    #39491665
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<<extrn>>
declare
  l_var varchar2(200) := 'External';
begin
  <<intrn>>
  declare
    l_var varchar2(200) := 'Internal';
  begin
    dbms_output.put_line(intrn.l_var);
    dbms_output.put_line(extrn.l_var);
  end;
end;

anonymous block completed
Internal
External
...
Рейтинг: 0 / 0
что означает текст в двойных угловых скобках в plsql блоке?
    #39491673
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Demenkostax..,

Ни к чему не применяется. Синтактическая погрешность толерируемая sqlplus
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> set echo on
SQL> <<L_label>>
  2  begin
  3    null;
  4    goto L_name;
  5  end L_name;
  6  /
  goto L_name;
       *
ERROR at line 4:
ORA-06550: line 4, column 8:
PLS-00201: identifier 'L_NAME' must be declared
ORA-06550: line 4, column 3:
PL/SQL: Statement ignored



Regards

Maxim

причем сдесь плюс, как он может толерирувать?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare
 i int :=0;
begin
 null;
 <<M_label>>
 begin
  i:=i+1;
  dbms_output.put_line(i);
  if i<5 then
     goto M_label;
  end if;
 end B_block;
 null ;
end;
/


.....
stax
...
Рейтинг: 0 / 0
что означает текст в двойных угловых скобках в plsql блоке?
    #39491676
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<<extrn>>
declare
  l_var varchar2(200) := 'External';
begin
  <<intrn>>
  declare
    l_var varchar2(200) := 'Internal';
  begin
    dbms_output.put_line(intrn.l_var);
    dbms_output.put_line(extrn.l_var);
  end;
end;

anonymous block completed
Internal
External



ето понятно
...
end L_name;

L_name кто?

.....
stax
...
Рейтинг: 0 / 0
что означает текст в двойных угловых скобках в plsql блоке?
    #39491687
Maxim Demenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..,

Согласен, плюс не причем. Но тем не менее, имя метки не применимо ни к чему.
https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/block_declaration.htm Optionally, when used to label a block, the label_name can also appear at the end of the block without the angle brackets
из чего можно сделать вывод, что если блок не помечен LABEL, то этот же самый LABEL не должен appear at the end of the block without the angle brackets

Regards

Maxim
...
Рейтинг: 0 / 0
что означает текст в двойных угловых скобках в plsql блоке?
    #39491713
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..
ето понятно
...
end L_name;

L_name кто?


В анонимном блоке - по ходу никто.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<<extrn>>
declare
  l_var varchar2(200) := 'External';
begin
  <<intrn>>
  declare
    l_var varchar2(200) := 'Internal';
  begin
    dbms_output.put_line(intrn.l_var);
    dbms_output.put_line(extrn.l_var);
  end aaa;
end bbb;

anonymous block completed
Internal
External



Если же pl/sql блок не помечен, а поименован (функция, процедура) - тогда стреляет.
...
Рейтинг: 0 / 0
что означает текст в двойных угловых скобках в plsql блоке?
    #39491728
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousstax..ето понятно
...
end L_name;

L_name кто?


В анонимном блоке - по ходу никто.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<<extrn>>
declare
  l_var varchar2(200) := 'External';
begin
  <<intrn>>
  declare
    l_var varchar2(200) := 'Internal';
  begin
    dbms_output.put_line(intrn.l_var);
    dbms_output.put_line(extrn.l_var);
  end aaa;
end bbb;

anonymous block completed
Internal
External



Если же pl/sql блок не помечен, а поименован (функция, процедура) - тогда стреляет.

тоесть
Имя блока, к которому применяется END - метка, имя функции, имя процедуры, имя пакета или никто.

ps
раньше считал что блок с меткой уже не анонимный (именован)

.....
stax
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / что означает текст в двойных угловых скобках в plsql блоке?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]