Chinaunix首页 | 论坛 | 博客
  • 博客访问: 55746
  • 博文数量: 23
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 281
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-04 16:00
文章分类

全部博文(23)

文章存档

2014年(19)

2008年(1)

2007年(3)

我的朋友

分类: Oracle

2014-05-23 15:53:27

一、应用背景:
     PL/SQL是SQL的语言的扩展,是SQL和过程语言整合而成一种语言。在PL/SQL中可以完美的使用SQL语句。
  在PL/SQL中,DCL语句不可以直接使用(COMMIT和ROLLBACK除外)。本文介绍如何在PL/SQL中使用DCL语句。

二、DCL:

   1、定义:DCL= Data Control Language,是数据控制语言,包括 GRANT、REVOKE、COMMIT、ROLLBACK。
   2、作用:系统和对象授权,收权,事务提交,事务回滚。
   3、不能使用declare声明的变量

三、PL/SQL中DCL的使用:

  语法:

     格式:execute immediate 'DCL';
           or 
           commit;
           or 
           rollback;
                                     注意:DCL中的单引号需要转义,如“'”转义为“ ''”。

四、实例应用

   1、在PL/SQL中使用GRANT授权给用户: 


    --set serverout on;      打开服务器输出。


    begin
      execute immediate 'grant create table to hgx';
    end;


    执行结果:
  
    PL/SQL procedure successfully completed.


    --使用绑定变量


    begin
      execute immediate 'grant create table to &user_name';
    end;


  2、在PL/SQL中的使用REVOKE收回权限: 


    --set serverout on;      打开服务器输出。
    begin
      execute immediate 'revoke create table from hgx';
    end;


    begin
      execute immediate 'revoke create table from &user_name';
    end;
  
    执行结果:


    PL/SQL procedure successfully completed.


   
  3、在PL/SQL中的使用COMMIT: 


    --set serverout on;      打开服务器输出。    
    begin
      execute immediate 'commit';           --此处可以直接使用'commit;
      --commit;
    end;
   
    执行结果:
    
    PL/SQL procedure successfully completed.




  4、在PL/SQL中的使用ROLLBACK: 


    --set serverout on;      打开服务器输出。    
    begin
      execute immediate 'rollback';         --此处可以直接使用'rollback;
      --rollback;
    end;
   
    执行结果:
    
    PL/SQL procedure successfully completed.

阅读(302) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~