oracle 自定义函数中使用隐式游标 + 动态拼凑sql 的执行

CREATE OR REPLACE
FUNCTION "getTableNameByAloneId" (v_alone_id IN VARCHAR2)
RETURN VARCHAR2
Authid Current_User
AS
v_count int(8);
v_table_name VARCHAR2(100);
v_sql VARCHAR2(1000);
v_alone VARCHAR2(150);

BEGIN

for var_record in(
select table_name from all_tables where owner='NC66' and table_name like 'IUFO_MEASPUB_%' and num_rows>0
) loop
--<<THE_NEXT>>
v_sql:='select  count(alone_id) from ' || var_record.TABLE_NAME||' where alone_id ='''||v_alone_id||'''';
DBMS_OUTPUT.PUT_LINE(v_sql);
execute IMMEDIATE v_sql into v_alone ;
DBMS_OUTPUT.PUT_LINE('v_alone='||v_alone);
if v_alone>0 then v_table_name:=var_record.TABLE_NAME;
return v_table_name;
end if;
end loop;
    RETURN v_table_name;
END ;

猜你喜欢

转载自blog.csdn.net/zy103118/article/details/86622887