powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странное поведение при передаче константы I в процедуру.
6 сообщений из 6, страница 1 из 1
Странное поведение при передаче константы I в процедуру.
    #39649784
rigor mortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет,
как-то странно получается. Определил в пакете две константы

Код: plsql
1.
2.
I varchar2(1 char) := 'I';
D varchar2(1 char) := 'D';



и процедуру

Код: plsql
1.
2.
3.
4.
PROCEDURE save1(
 ...
 p_type varchar2
  )



При вызове процедуры (в этом же пакете) если передать p_type => D то всё ок, а если I то пишет ошибку при компиляции:
Код: plsql
1.
2.
        save1(...
              p_type => I);




Error: PLS-00306: wrong number or types of arguments in call to 'SAVE1'

То есть рботает только если передать в виде p_type => 'I'. Кто-нибудь знает что за хрень?
...
Рейтинг: 0 / 0
Странное поведение при передаче константы I в процедуру.
    #39649788
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rigor mortisчто за хрень?Область видимости.
...
Рейтинг: 0 / 0
Странное поведение при передаче константы I в процедуру.
    #39649795
rigor mortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,

Константа D определена там же и с ней проблем нет.

Код: plsql
1.
2.
3.
 
save1(...
      p_type => D);



А так же в том же пакете I используется в условии и не ругается:

Код: plsql
1.
2.
3.
if (p_type = I) then
   ...
end if;
...
Рейтинг: 0 / 0
Странное поведение при передаче константы I в процедуру.
    #39649800
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rigor mortisКонстанта D определена там же и с ней проблем нет.

Значит где-то определена переменная i совсем другого, несовместимого с p_type типа.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Странное поведение при передаче константы I в процедуру.
    #39649814
merch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rigor mortis,

Константа определяется так. И никто втихаря ее не сможет переопределить.

Код: plsql
1.
2.
declare 
  l_const_chr  constant varchar2(1 char) := 'I';
...
Рейтинг: 0 / 0
Странное поведение при передаче константы I в процедуру.
    #39649837
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rigor mortis,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
  1  declare
  2    L  constant varchar2(1 char) := 'I';
  3    d  constant varchar2(1 char) := 'D';
  4  PROCEDURE save(p_type varchar2) as
  5  begin
  6   if L is not null then
  7    dbms_output.put_line('save='||p_type);
  8   end if;
  9  end;
 10  begin
 11   save(d);
 12   save(L);
 13* end;

SQL> /
save=D
save=I



как варіант переменная определена посл е процедуры

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
SQL> ed
Wrote file afiedt.buf

  1  declare
  2    d  constant varchar2(1 char) := 'D';
  3  PROCEDURE save(p_type varchar2) as
  4  begin
  5   if L is not null then
  6    dbms_output.put_line('save='||p_type);
  7   end if;
  8  end;
  9    L  constant varchar2(1 char) := 'I';
 10  begin
 11   save(d);
 12   save(L);
 13* end;
SQL> /
  L  constant varchar2(1 char) := 'I';
  *
ERROR at line 9:
ORA-06550: line 9, column 3:
PLS-00103: Encountered the symbol "L" when expecting one of the following:
begin function pragma procedure
ORA-06550: line 13, column 4:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
end not pragma final instantiable order overriding static
member constructor map



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


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