您的位置:首页 > 数据库 > Oracle

oracle存储过程之immediate

2015-03-31 18:55 176 查看
CREATE or REPLACE PROCEDURE UPDATEUSERDATA

Authid Current_User

is

delsql varchar2(400);

BEGIN

FOR T IN ( SELECT * FROM ORACLEUSER) LOOP

BEGIN

delsql := 'delete '|| T.C_USERNAME ||'.sys_group_command where c_group = ''Manager'' and c_command like ''sal.salbiz.market.%''';

execute immediate delsql;

commit;

END;

END LOOP;

END UPDATEUSERDATA;

首先是读取ORACLEUSER表字段C_USERNAME,利用dba的权限去动态更新用户某表或删除、新增数据

Authid Current_User 使用调用者权限,即假如去掉这句、调用存储过程会导致权限不足提示

引用详解:

thank:http://bbs.csdn.net/topics/360053754
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: