Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Передача параметров по умолчанию в хранимую процедуру  [new]
mantap
Member

Откуда:
Сообщений: 72
Есть процедура с параметром "Имя", подскажите пожалуйста, сделал так:
CREATE OR REPLACE PROCEDURE PrintName(Name VARCHAR:=Null)
IS
BEGIN

IF Name IS Null THEN dbms_output.put_line('Default Name');
ELSE dbms_output.put_line(Name);
END IF;

END


Сама процедура удачно создалась, но при вызове без передачи Name получается ошибка: PLS-00306: wrong number or types of arguments in call to 'PrintName'
Вот код вызова:
BEGIN
PrintName();
END


Подскажите пожалуйста что не правильно сделал, взаранее спасибо!
20 апр 12, 16:53    [12447249]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметров по умолчанию в хранимую процедуру  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
varchar2 ?
20 апр 12, 16:55    [12447258]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметров по умолчанию в хранимую процедуру  [new]
mantap
Member

Откуда:
Сообщений: 72
Да, там VARCHAR2, по памяти код писал, извиняюсь, подскажите что делать
20 апр 12, 16:56    [12447277]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметров по умолчанию в хранимую процедуру  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10045
mantap
Подскажите пожалуйста что не правильно сделал, взаранее спасибо!


SQL> set serveroutput on
SQL> BEGIN
  2  PrintName();
  3  END;
  4  /
Default Name

PL/SQL procedure successfully completed.

SQL> BEGIN
  2  PrintName;
  3  END;
  4  /
Default Name

PL/SQL procedure successfully completed.

SQL> 


SY.
20 апр 12, 16:57    [12447278]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметров по умолчанию в хранимую процедуру  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
PROCEDURE PrintName(Name VARCHAR DEFAULT Null)
20 апр 12, 16:57    [12447283]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметров по умолчанию в хранимую процедуру  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
mantap,

Версия сервера и клиента какая?

create or replace procedure killme_p (p varchar:=null) is
begin
 dbms_output.put_line(nvl(p,'Null'));
end;
/

set serveroutput on
begin
 killme_p;
end;
/

Null

И до кучи, параметр переименуйте, от греха подальше.
20 апр 12, 16:59    [12447300]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметров по умолчанию в хранимую процедуру  [new]
mantap
Member

Откуда:
Сообщений: 72
Спасибо за ответы, проверил, действительно всё нормально, редактор синтаксис мне там намешал немного, не подскажете удобный редактор для PL/SQL запросов?
20 апр 12, 17:01    [12447315]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметров по умолчанию в хранимую процедуру  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
mantap,

sqlplus + vim
20 апр 12, 17:02    [12447335]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметров по умолчанию в хранимую процедуру  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
mantap,

И оракловый Sql Developer
20 апр 12, 17:03    [12447340]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить