|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Прочие БД - Проблемы с созданием и вызовом PL/SQL процедур в oracle XE |
|
Прочие БД - Проблемы с созданием и вызовом PL/SQL процедур в oracle XE
|
Новый участник Сообщения: 30 |
Профиль | Отправить PM | Цитировать
Для обучения PL/SQL использую Oracle XE, пользуюсь им через веб-интерфейс, я разблокировал демо-пользователя HR, который был в базе данных по-умолчанию, дал ему все полномочия, и использую заранее заготовленые демо-таблицы, но возникают некоторые проблемы. Например, мне нужно создать некоторую процедуру, я ввожу в поле для запросов следующий код
create or replace procedure ADD_JOB(id JOBS.JOB_ID%type,title JOBS.JOB_TITLE%type) as begin insert into JOBS (JOB_ID, JOB_TITLE) values (id,title); end ADD_JOB; declare begin ADD_JOB('IT_DBA','Database Administrator'); ADD_JOB('ST_MAN','Stock Manager'); end; ORA-06550: line 3, column 2: PLS-00905: object HR.ADD_JOB is invalid ORA-06550: line 3, column 2: PL/SQL: Statement ignored ORA-06550: line 4, column 2: PLS-00905: object HR.ADD_JOB is invalid ORA-06550: line 4, column 2: PL/SQL: Statement ignored 1. declare 2. begin 3. ADD_JOB('IT_DBA','Database Administrator'); 4. ADD_JOB('ST_MAN','Stock Manager'); 5. end; Кто-нибудь может помочь всё же заставить процедуру запускаться? |
|
Отправлено: 21:14, 11-05-2008 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать http://download.oracle.com/docs/cd/B...b14261/toc.htm
Очень рекомендую читать официальную документацию. |
Отправлено: 23:07, 17-05-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 30
|
Профиль | Отправить 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; Потом запускаю свой пример, приведённый выше (я там переименовал только параметр id, тк id является ключевым словом, а в веб-интерфейсе подсветки нет), он выдаёт Statement proceeded, то есть выражение выполнено... Запускаю процедуру из примера - работает, запускаю свою - результат, что и в первом сообщении. Вроде прочёл про создание процедур и в книге и в документации по ссылке, делаю как и описано - CREATE OR REPLACE PROCEDURE <...> AS <...> BEGIN <...> END; но что-то толку от этого никакого, не могу сам разобраться, поэтому и прошу помощи.... |
Отправлено: 14:23, 18-05-2008 | #3 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Странные какие-то глюки были, всё заработало, проблема была в неправильном символе перехода на новую строку (я текст в gedit'е набирал), если набирать непосредственно в окошке веб-интерфейса или в каком-нибудь другом редакторе, то всё работает нормально...
|
Отправлено: 20:50, 20-05-2008 | #4 |
Новый участник Сообщения: 2
|
Профиль | Сайт | Отправить PM | Цитировать Цитата ElVоvan:
Цитата ElVоvan:
execute ADD_JOB('IT_DBA','Database Administrator'); execute ADD_JOB('ST_MAN','Stock Manager'); а вот так не пробЫвал? PS: не называй идентификаторы типа job или jobs! потомучто в оракле job - это специальный объект. т.е. блок pl/sql выполняющейся по расписанию |
|||
Отправлено: 14:44, 13-06-2008 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
MSFT SQL Server - [решено] Преобразование скрипта для Oracle в скрипт для SQL | EvgeniyQQQ | Программирование и базы данных | 3 | 25-03-2009 01:26 | |
Прочие БД - Oracle SQL Developer: отображение значений полей. | BacuJIuu KypraHoB | Программирование и базы данных | 0 | 28-11-2008 16:10 | |
ответы на задания по курсу ORACLE PL/SQL | Vlad Drakula | Программирование и базы данных | 2 | 25-05-2006 09:16 | |
Проблемы с созданием Makefile... | Zippy | Программирование и базы данных | 5 | 18-08-2004 19:38 | |
Проблемы с созданием FTP | Shima | Сетевые технологии | 3 | 15-06-2004 14:56 |
|