oracle存过select into 表名,表名是一个变量,我试了几次都报错,求高手帮看

1、 V_SQL := 'SELECT COUNT(1) into V_FLAG FROM User_Tables WHERE table_name = ' || V_BK_TABLE;
EXECUTE IMMEDIATE V_SQL;
2、V_SQL := 'SELECT COUNT(1) FROM User_Tables WHERE table_name = ' || V_BK_TABLE;
EXECUTE IMMEDIATE V_SQL INTO V_FLAG;
我这两种写法都报错:标识符无效ORA-06512
最新回答
狙击甜心

2024-11-22 08:25:36

declare 
v_sql varchar2(2000);
V_BK_TABLE varchar2(20);
v_flag int;
begin
  V_BK_TABLE:='A'; -- 给表名变量赋值
V_SQL := 'SELECT COUNT(1) FROM User_Tables WHERE table_name ='||''''||V_BK_TABLE||'''';
EXECUTE IMMEDIATE V_SQL INTO V_FLAG;
dbms_output.put_line(v_flag);
end;

其他的不解释了,自己看吧