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

Откуда:
Сообщений: 692
Привет всем.

Есть процедура с in/out параметром

create or replace procedure repVintage( v_variable in out nocopy varchar2 ) is
begin

v_variable := substr(abs(dbms_random.random),1,5);

 ZOO.PKG_Z13035_VIN.VinInsert (
 v_variable,                               ------------------> use a Variable here as this is OUT parameter
 date '2012-01-01', date '2012-08-31', date '2012-01-01', date '2012-08-31',
 0, 0, 0, 0, 0, 0, 0 );
end;


Пробую

exec repVintage(v_variable)


получаю ошибку

ORA-06550: line 1, column 18:
PLS-00201: identifier 'V_VARIABLE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored


Пробую

exec repVintage('1')


получаю другую ошибку

ORA-06550: line 1, column 18:
PLS-00363: expression '1' cannot be used as an assignment target
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored


Требуется отладить чужие баги, простите великодушно за ламерский вопрос, но как запустить процедуру?
11 сен 12, 15:49    [13146906]     Ответить | Цитировать Сообщить модератору
 Re: запустить процедуру с in/out параметром  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
ecivgamer,

:
11 сен 12, 15:52    [13146948]     Ответить | Цитировать Сообщить модератору
 Re: запустить процедуру с in/out параметром  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
ecivgamer,

var a varchar2
exec repVintage(:a)
11 сен 12, 15:52    [13146951]     Ответить | Цитировать Сообщить модератору
 Re: запустить процедуру с in/out параметром  [new]
OldBoyOdeSu
Member

Откуда: и куда?
Сообщений: 202
ecivgamer,

declare
v_param varchar2(4000) := '1';
begin
repVintage(v_param);
end;
11 сен 12, 15:55    [13146980]     Ответить | Цитировать Сообщить модератору
 Re: запустить процедуру с in/out параметром  [new]
ecivgamer
Member

Откуда:
Сообщений: 692
Bogdanov Andrey, спасибо


процедура начала выполняться, теперь получил следующую ошибку:

ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "ZOO.REPVINTAGE", line 6
ORA-06512: at line 1


Я так понимаю, нужно задать размер переменной - как правильно?
11 сен 12, 16:01    [13147036]     Ответить | Цитировать Сообщить модератору
 Re: запустить процедуру с in/out параметром  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
ecivgamer
Я так понимаю, нужно задать размер переменной - как правильно?
Например так: varchar2(4000)
11 сен 12, 16:08    [13147108]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить