oracle plsql 游标的使用
发布时间:2020-12-12 15:36:41 所属栏目:百科 来源:网络整理
导读:set serveroutput on;DECLAREstr_tab_name VARCHAR2(100);str_tab_owner VARCHAR2(20); num_contain_QT_loc number; str_exec_grant varchar2(200); cursor cur is SELECT distinct(tb_pri.table_name) as TB_NAME,tb_pri.owner as TB_OWNER FROM dba_tab_pr
set serveroutput on; DECLARE str_tab_name VARCHAR2(100); str_tab_owner VARCHAR2(20); num_contain_QT_loc number; str_exec_grant varchar2(200); cursor cur is SELECT distinct(tb_pri.table_name) as TB_NAME,tb_pri.owner as TB_OWNER FROM dba_tab_privs tb_pri inner join (select owner,table_name from dba_tables where owner in ('BUAT_META','BUAT_AUDIT','BUAT_MAINT','BUAT_METRICS','BUAT_TRANS')) tb_info on tb_pri.table_name = tb_info.table_name and tb_pri.owner = tb_info.owner; BEGIN open cur; loop fetch cur into str_tab_name,str_tab_owner; exit when cur%notfound; select length(str_tab_name) - INSTR(str_tab_name,'_QT') into num_contain_QT_loc from dual; if num_contain_QT_loc > 2 then str_exec_grant := 'GRANT DELETE,INSERT,SELECT,UPDATE ON '|| str_tab_owner ||'.'||str_tab_name||' TO GCE1_DMM_UPDATE_ROLE'; dbms_output.put_line('str_tab_name :'||str_tab_name || ',str_tab_owner : ' || str_tab_owner || ',grant 4.' ); else str_exec_grant := 'GRANT SELECT ON '|| str_tab_owner ||'.'||str_tab_name||' TO R2_DMM_READONLY_ROLE'; dbms_output.put_line('str_tab_name :'||str_tab_name || ',str_tab_owner : ' || str_tab_owner || ',grant select.'); end if; dbms_output.put_line('sql :' || str_exec_grant); execute immediate str_exec_grant; end loop; close cur; exception when others then if cur%isopen then close cur; end if; END; / (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 线路编号如何在Oracle触发器中工作?
- icinga2+postgresql
- ruby – 使用bsearch查找将新元素插入到排序数组中的索引
- out.print(JSONArray.fromObject(al2)); 得到的是一个Strin
- swfobject.embedSWF参数
- Flex DataGrid与ComboBox itemRenderer
- 使用 JSONP 实现跨域通信,第 1 部分: 结合 JSONP 和 jQuer
- c# – 为什么我的$.ajax调用不会从cshtml文件返回一个json对
- 与使用带有getter和setter的Private字段相比,VB.NET中的Pro
- 如何在C中用模板编写的库的闭源