Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для ElVоvan

Новый участник


Сообщения: 30
Благодарности: 0

Профиль | Отправить PM | Цитировать


Что-то не сильно помагает, у меня и так книга от авторов, работающих в оракл.

Взял один из примеров, приведённых по ссылке:
Код: Выделить весь код
CREATE OR REPLACE PROCEDURE award_bonus (emp_id NUMBER, bonus NUMBER) AS
   commission        REAL;
   comm_missing EXCEPTION;
BEGIN  -- executable part starts here
   SELECT commission_pct / 100 INTO commission FROM employees
    WHERE employee_id = emp_id;
   IF commission IS NULL THEN
      RAISE comm_missing;
   ELSE
      UPDATE employees SET salary = salary + bonus*commission 
      WHERE employee_id = emp_id;
   END IF;
EXCEPTION  -- exception-handling part starts here
   WHEN comm_missing THEN
      DBMS_OUTPUT.PUT_LINE('This employee does not receive a commission.');
      commission := 0;
   WHEN OTHERS THEN
      NULL; -- for other exceptions do nothing
END award_bonus;
Запускаю, в ответ пишет:
Код: Выделить весь код
Procedure created
Потом запускаю свой пример, приведённый выше (я там переименовал только параметр id, тк id является ключевым словом, а в веб-интерфейсе подсветки нет), он выдаёт Statement proceeded, то есть выражение выполнено... Запускаю процедуру из примера - работает, запускаю свою - результат, что и в первом сообщении. Вроде прочёл про создание процедур и в книге и в документации по ссылке, делаю как и описано - CREATE OR REPLACE PROCEDURE <...> AS <...> BEGIN <...> END; но что-то толку от этого никакого, не могу сам разобраться, поэтому и прошу помощи....

Отправлено: 14:23, 18-05-2008 | #3