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

全部博文(23)

文章存档

2014年(19)

2008年(1)

2007年(3)

我的朋友

分类: Oracle

2014-05-23 15:48:18

一、应用背景:
     PL/SQL是SQL的语言的扩展,是SQL和过程语言整合而成一种语言。在PL/SQL中可以完美的使用SQL语句。
  在PL/SQL中,DDL语句在使用时,需要使用特殊的格式。本文介绍如何在PL/SQL中使用DDL语句。
二、DDL:

   1、定义:DDL= Data Definition Language,是数据定义语言,包括 CREATE、ALTER、DROP语句。
   2、作用:创建对象,修改对象,删除对象。
   3、在PL/SQL中DDL的执行需要使用特殊的格式.
   4、不能使用declear中声明的变量。
三、PL/SQL中DDL的使用:

  语法:

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

四、实例应用


   1、CREATE 在PL/SQL中的使用: 


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


    begin
      execute immediate 'create table books (id number,name char(10))';
    end;


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


    SQL> desc books
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     ID                                                 NUMBER
     NAME                                               CHAR(10)




    begin
      execute immediate 'create table &table_name (id number,name char(10))';
    end;


  2、ALTER 在PL/SQL中的使用: 


    --set serverout on;      打开服务器输出。
    begin
      execute immediate 'alter table books add (pubish varchar2(50))';
    end;
  
    执行结果:
    
     PL/SQL procedure successfully completed.


     SQL> desc books
      Name                                      Null?    Type
      ----------------------------------------- -------- ----------------------------
      ID                                                 NUMBER
      NAME                                               CHAR(10)
      PUBISH                                             VARCHAR2(50)


    begin
      execute immediate 'alter table &table_name add (pubish varchar2(50))';
    end;


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


    --set serverout on;      打开服务器输出。    
    begin
      execute immediate 'drop table books';
    end;
   
    执行结果:
     PL/SQL procedure successfully completed.


     SQL> desc books
     ERROR:
     ORA-04043: object books does not exist


     begin
       execute immediate 'drop table &table_name';
     end;




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