我试图插入架构是动态的数据,就像用户输入架构名称一样。出于某种原因,我得到了ORA-000942: table doesn't exist
,即使表格存在于正确的模式中。光标中的动态表名
下面是代码:
declare
l_ext_files_names varchar2(4000) := '&1';
l_schema_name varchar2(4000) := '&2';
l_table_name varchar2(4000) := l_schema_name||'.files_tbl';
l_int_files_names varchar2(4000);
c_file_name sys_refcursor;
begin
open c_file_name for 'select file_names from '||l_table_name;
loop
fetch c_file_name into l_int_files_names;
if (l_int_files_names <> l_ext_files_names) then
insert into l_table_name (file_names, status)
values (l_files_names, 'done');
end if;
end loop;
close c_file_name;
end;
任何想法,我做了错误? 干杯提前:)
它可能是特权问题。 –
感谢您的回复。我尝试使用创建表的相同模式插入语句。插入语句很顺利。所以问题不在于特权。 – Jaanna
尝试使用相同用户的select语句和'set role NONE;'如果SELECT权限是通过ROLE授予的,它将不能在PL/SQL中使用。 –