2013-01-02 2 views
1

Я написал процедуру pl-sql для обновления таблицы.Процедура PL-SQL Выполняется успешно, но не обновляет таблицу

CREATE OR REPLACE 
PROCEDURE EMP_UPDATE (emp IN NUMBER, div_code IN VARCHAR2) 
AS 
BEGIN 

    UPDATE EMP_CATEGORY 
SET EMP_CATEGORY.DIV_CODE = div_code  
WHERE EMP_CATEGORY.EMP_NO = emp; 
    COMMIT; 

END EMP_UPDATE; 

Запрос обновления в одиночку работает отлично и обновляет table.But, когда он используется в процедуре он показывает

Procedure executed successfully 
Query time: 0.018ms 
Affected rows: 1 

но фактическая запись таблицы не переодеваться. Я не могу понять, что случилось с этой процедурой. Может кто-нибудь указать, где я сделал ошибку?

+0

Это было закрыто как слишком локализованное. Но для меня это похоже на широко распространенную ошибку. Решение является интересным и полезным. – mdahlman

ответ

3

Пожалуйста, попробуйте изменить имя переменной ввода emp IN NUMBER на I_EMP IN NUMBER или что-то в этом роде, так как таблица имеет столбец с именем emp.

+0

Спасибо за ответ, но я не думаю, что это проблема. Я тоже это пробовал. Я отредактировал процедуру в соответствии с тем, как я ее изменил. – direndd

+2

В таблице есть столбец с именем 'DIV_CODE'? Если да, то переименуйте имя переменной 'DIV_CODE' в' I_DIV_CODE' или что-то в этом роде. – TechDo

+0

Да, у него есть столбец с именем DIV_CODE. И я изменил имя параметра на деление. И это сработало! Большое спасибо за помощь !!! (Y): D – direndd

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