没看错的话你这个写法是嵌套表的写法啊. 如果你真的是访问的嵌套表的话改成这样就好了. select * from table(select t.subs_type_tbname from A t where t.subs_svc_type = 2001)
select * from (select subs_type_tbname from A as a_table where subs_svc_type = 2001)很久没用oracle了,不知道这么写可不可以 其实你那个地方可以不要写table你试一试吧
没用table,执行sql语句,可以,使用oracle sql develop
declare v_sql varchar2(200); begin v_sql:='select * from table(select t.subs_type_tbname from A t where t.subs_svc_type = 2001) '; execute immediate v_sql; end;
要这么用!!DECLARE V_SQL VARCHAR2(200); l_i INT; BEGIN select t.subs_type_tbname INTO V_SQL from A t where t.subs_svc_type = 2001; V_SQL := 'select count(*) from '||V_SQL; EXECUTE IMMEDIATE V_SQL INTO l_i; dbms_output.put_line(l_i); END; /
select * from table(select subs_type_tbname from A where subs_svc_type = 2001) a
加歌任意字母试一试
如果你真的是访问的嵌套表的话改成这样就好了.
select * from table(select t.subs_type_tbname from A t where t.subs_svc_type = 2001)
其实你那个地方可以不要写table你试一试吧
v_sql varchar2(200);
begin
v_sql:='select * from table(select t.subs_type_tbname from A t where t.subs_svc_type = 2001) ';
execute immediate v_sql;
end;
要这么用!!DECLARE
V_SQL VARCHAR2(200);
l_i INT;
BEGIN
select t.subs_type_tbname INTO V_SQL from A t where t.subs_svc_type = 2001;
V_SQL := 'select count(*) from '||V_SQL;
EXECUTE IMMEDIATE V_SQL INTO l_i;
dbms_output.put_line(l_i);
END;
/