Проблема с динамическим SQL в Oracle - PullRequest
0 голосов
/ 19 апреля 2011

У меня есть хранимая процедура

create or replace  procedure GETFILE(TableName in VARCHAR2)
is
No_Rows Number :=0;
state varchar2(100);
begin
state :=' select    count(*)  into   :p_id     from   ' || inTableName;
EXECUTE IMMEDIATE state using out NO_ROWS;

end;
end;

Хранимая процедура создается успешно.Но когда я запускаю его, используя:

declare
begin
GETFILE('TABLE_NAME');
end;

Он показывает ошибку «ORA-01006: переменная привязки не существует».Есть идеи?

Ответы [ 2 ]

2 голосов
/ 19 апреля 2011

Будет ли это работать по вашему требованию (вы можете удалить put_line) ...:

create or replace  procedure GETFILE(inTableName in VARCHAR2)
is
No_Rows Number :=0;
state varchar2(100);
begin
 state :=' select    count(*)   from   ' || inTableName;
dbms_output.put_line(state);
EXECUTE IMMEDIATE state into NO_ROWS;
dbms_output.put_line(no_rows);
end;
/

declare
begin
getfile('dual');
end;
/
0 голосов
/ 19 апреля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...