2016-08-19 4 views
-1

Я хочу удалить запись из таблицы на основе идентификатора, используя хранимую процедуру. Значение Id должно передаваться как параметр. Но при попытке этого кода данные в таблице не удаляются. Может кто-нибудь помочь мне пройти через этотPL/SQL Хранимая процедура

create or replace procedure PROC_INV_DELETE(num in number) 
is 
begin 

    delete from table_name 
    where id = '&num'; 
    commit; 

end; 
/

ответ

1

это будет делать свою работу:

create or replace procedure PROC_INV_DELETE(num in number) 
is 
begin 

    delete from table_name 
    where id = num; ---No need to use & and '' here 
    commit; 

end; 
/

Призвание:

declare 

a number:= '&num' ; 

Begin 

    PROC_INV_DELETE(a); 

end; 
/
Enter value for num: 4 
old 3: a number:= '&num' ; 
new 3: a number:= '4' ; 

PL/SQL procedure successfully completed. 
+0

Не нравится это. при выполнении процедуры он должен запрашивать динамическое значение от пользователя. – Shine

+1

Процедура остается прежней, только вы должны изменить способ ее вызова. См. Мой пост еще раз, – XING

+1

@Anonymous - сама процедура не может быть интерактивной. Вот почему вам нужна «обертка». Обертка получает значение от пользователя и передает его в процедуру. Не забудьте добавить обработку исключений! –

Смежные вопросы