powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / может ли simple_integer быть out - параметром?
13 сообщений из 13, страница 1 из 1
может ли simple_integer быть out - параметром?
    #39668991
legg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ругается

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare
   sint simple_integer ;
   procedure tst (sint  out simple_integer ) is
   begin
     sint := 1;
     dbms_output.put_line(sint);
   end;    
begin
    tst(sint);
end;    


и
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare
   sint simple_integer :=1;
   procedure tst (sint  out simple_integer ) is
   begin
     sint := 1;
     dbms_output.put_line(sint);
   end;    
begin
    tst(sint);
end;  


не ругается
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare
   sint simple_integer :=1 ;
   procedure tst (sint in   out simple_integer ) is
   begin
     sint := 1;
     dbms_output.put_line(sint);
   end;    
begin
    tst(sint);
end;   


это так и задумано, а я не умею пользоваться документацией?
растолкуйте кто чем может, пожалуйста
...
Рейтинг: 0 / 0
может ли simple_integer быть out - параметром?
    #39668993
legg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
з.ы. Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
...
Рейтинг: 0 / 0
может ли simple_integer быть out - параметром?
    #39668999
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO undocumented фича для Not null

Переменная то OUT, но какое-то значение ей же присвоить при инициализации нужно.... а какое?
...
Рейтинг: 0 / 0
может ли simple_integer быть out - параметром?
    #39669002
legg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevIMHO undocumented фича для Not null

Переменная то OUT, но какое-то значение ей же присвоить при инициализации нужно.... а какое?
так во втором примере я пошел на поводу (не понятном мне) и присвоил. был грубо послан на ORA-06502: PL/SQL: numeric or value error
...
Рейтинг: 0 / 0
может ли simple_integer быть out - параметром?
    #39669004
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код который показывает мою мысль:


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declare
   sint simple_integer := 1 ;
   procedure tst1 (sint out NOCOPY pls_integer ) is  -- not IN 
   begin
     dbms_output.put_line( 'pls_integer BEFORE ' || NVL(TO_CHAR(sint), 'NULL' ) );
     sint := 2;
     dbms_output.put_line(sint);
   end;    

   procedure tst (sint in out NOCOPY simple_integer ) is
   begin
     dbms_output.put_line( 'simple_integer BEFORE '||sint);
     sint := 3;
     dbms_output.put_line(sint);
   end;    
begin
    tst1(sint);
    tst(sint);
end;


...
Рейтинг: 0 / 0
может ли simple_integer быть out - параметром?
    #39669006
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leggLeonid KudryavtsevIMHO undocumented фича для Not null

Переменная то OUT, но какое-то значение ей же присвоить при инициализации нужно.... а какое?
так во втором примере я пошел на поводу (не понятном мне) и присвоил. был грубо послан на ORA-06502: PL/SQL: numeric or value error
Вы присвоили ВНЕ процедуры.
А внутри процедуры, в начале выполнения, она оказалась NULL, т.к. НЕ IN
...
Рейтинг: 0 / 0
может ли simple_integer быть out - параметром?
    #39669007
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevПеременная то OUT, но какое-то значение ей же присвоить при инициализации нужно.... а какое?И ведь оракл гад default value для параметра в сигнатуре процедуры указать не дает.
...
Рейтинг: 0 / 0
может ли simple_integer быть out - параметром?
    #39669013
legg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

понял мыслю. так и есть. мог бы и сам догадаться. спасибо!
но все равно... как то нехорошо со стороны ораклы это явно в документации не написать. для тупых.
...
Рейтинг: 0 / 0
может ли simple_integer быть out - параметром?
    #39669015
legg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevleggпропущено...

так во втором примере я пошел на поводу (не понятном мне) и присвоил. был грубо послан на ORA-06502: PL/SQL: numeric or value error
Вы присвоили ВНЕ процедуры.
А внутри процедуры, в начале выполнения, она оказалась NULL, т.к. НЕ IN
да. я понял. разжевали. спасибо еще раз.
...
Рейтинг: 0 / 0
может ли simple_integer быть out - параметром?
    #39669021
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leggпонял мыслю. так и есть. мог бы и сам догадаться. спасибо!
но все равно... как то нехорошо со стороны ораклы это явно в документации не написать. для тупых.
+
меня сообщение об ошибки тоже вогнало в легкий ступор

AmKadИ ведь оракл гад default value для параметра в сигнатуре процедуры указать не дает.

+
PLS-00230: OUT and IN OUT formal parameters may not have default expressions
...
Рейтинг: 0 / 0
может ли simple_integer быть out - параметром?
    #39669025
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevPLS-00230: OUT and IN OUT formal parameters may not have default expressionsНу так и я об этом.
...
Рейтинг: 0 / 0
может ли simple_integer быть out - параметром?
    #39669212
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leggне умею пользоваться документациейTable 8-2 PL/SQL Subprogram Parameter Modes CharacteristicsThe default value of the type is NULL except for a record type with a non-NULL default value
...
If the default value of the formal parameter type is NULL, then the actual parameter must be a variable whose data type is not defined as NOT NULL.Поскольку синтаксис plsql не позволяет задать default для subtype,
...
Рейтинг: 0 / 0
может ли simple_integer быть out - параметром?
    #39669290
legg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-leggне умею пользоваться документациейTable 8-2 PL/SQL Subprogram Parameter Modes CharacteristicsThe default value of the type is NULL except for a record type with a non-NULL default value
...
If the default value of the formal parameter type is NULL, then the actual parameter must be a variable whose data type is not defined as NOT NULL.Поскольку синтаксис plsql не позволяет задать default для subtype,
вероятно Вы правы. Но, все-таки, прочитав указанные пункты и не зная заранее результат, я не смог бы уверенно предсказать, что второй анонимный блок из сабжа не скомпилируется. А фразы, подобные "In overloaded subprograms, SIMPLE_INTEGER and PLS_INTEGER actual parameters can be substituted for each other." - сбивали б с толку еще больше. Возможно это лично моя несообразительность виной, а многим все очевидно сразу :).
з.ы. как хорошо что есть sql.ru
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / может ли simple_integer быть out - параметром?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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