不知道为什么不支持这种,使用以下方式解决:
SET SERVEROUTPUT ON
DECLARE
v_sql VARCHAR2(1000);
v_err_msg VARCHAR2(2000);
BEGIN
FOR table_rec IN (SELECT table_name FROM all_tables WHERE owner = 'INTERFACE') LOOP
BEGIN
v_sql := 'GRANT SELECT ON INTERFACE."' || table_rec.table_name || '" TO c##wolf';
EXECUTE IMMEDIATE v_sql;
DBMS_OUTPUT.PUT_LINE('已成功授权表: ' || table_rec.table_name);
EXCEPTION
WHEN OTHERS THEN
v_err_msg := SQLERRM;
DBMS_OUTPUT.PUT_LINE('授权失败 - 表: ' || table_rec.table_name || ', 错误: ' || v_err_msg);
END;
END LOOP;
END;
/可能的原因还是表名有小写。
评论0
暂时没有评论