CREATE TABLE TEST_CASE
(
ID NUMBER(19,2),
CURRENCY_TYPE VARCHAR2(30),
PAIDAMT NUMBER(19,2),
RECVDAMT NUMBER(19,2),
AMTDUE NUMBER,
TRANSACTION_DATE VARCHAR2(30)
);
名前にAMTが含まれるフィールドをフェッチするプロシージャを作成しました。しかし、手順は実行中にエラーを示しています。なぜこのエラーが発生するのか理解できません。
create or replace procedure chk_amt
(
vtbl varchar2
)
as
tblcursor sys_refcursor;
tblsqlstr varchar2(1000);
importedrows VARCHAR2(1000);
BEGIN
tblsqlstr := 'Select COLUMN_NAME from user_tab_columns where table_name= '|| vtbl ||' and COLUMN_NAME like upper(''%AMT%'')' ;
OPEN tblcursor for tblsqlstr;
loop
fetch tblcursor into importedrows;
DBMS_OUTPUT.PUT_LINE(importedrows);
EXIT WHEN tblcursor%NOTFOUND;
end loop;
CLOSE tblcursor;
end;
/
エラーは
ORA-00904: "TEST_CASE": invalid identifier
ORA-06512: at "***.CHK_AMT", line 11
ORA-06512: at line 2
このエラーを解決するにはどうすればよいですか?