【发布时间】:2016-06-07 11:16:22
【问题描述】:
我正在尝试从表中提取数据。多个表的名称可以以逗号分隔值(如 a、b、c)的形式给出,并且基于此我需要将数据提取到文件中。下面是通过 SQL*Plus 运行的代码:
declare
p_schema_name varchar2(1000) := '&1';
p_table_names varchar2(4000) := '&2';
p_statement varchar2(4000);
begin
p_statement := 'select * from :x'||'.'||':y';
for foo in (
select
regexp_substr (replace(p_table_names, ' ', ''), '[^,]+', 1, level) as txt
from dual
connect by
regexp_substr (replace(p_table_names, ' ', ''), '[^,]+', 1, level) is not null)
loop
execute immediate p_statement using p_schema_name, foo.txt;
end loop;
end;
当我执行此脚本时,我收到以下错误:
ORA-00903: invalid table name
ORA-06512: at line 14
我哪里做错了?
【问题讨论】:
标签: oracle plsql dynamic-sql