ElVоvan
11-05-2008, 21:14
Для обучения 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;
мне в ответ выдаётся Statement processed.
0,02 seconds
То есть, вроде бы всё нормально, процедура появляется в object browser'e. Теперь я пытаюсь вызвать процедуру из анонимного блока и добавить в таблицу пару строк: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;
У пользователя есть права на использование процедур, модификацю своих же таблиц, у него вообще все права есть, процедура и её вызов просто взяты из книжки и адаптированы под существующие таблицы.
Кто-нибудь может помочь всё же заставить процедуру запускаться?
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;
мне в ответ выдаётся Statement processed.
0,02 seconds
То есть, вроде бы всё нормально, процедура появляется в object browser'e. Теперь я пытаюсь вызвать процедуру из анонимного блока и добавить в таблицу пару строк: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;
У пользователя есть права на использование процедур, модификацю своих же таблиц, у него вообще все права есть, процедура и её вызов просто взяты из книжки и адаптированы под существующие таблицы.
Кто-нибудь может помочь всё же заставить процедуру запускаться?