• oracel存储过程编写 以及plsql存储过程的debug


    1、语法:

      create or replace procedure messagebackup_createTable       //此处存储过程名称不能超过30个字符

    as  tableName varchar2(100);     //声明变量

         tableCount  Number;

      thisYearMonth;

    begin 

      thisYearMonth:=TO_CHAR(sysdate,'yyyyMM');       //给变量赋值使用   :=  

      tableName:='MESSAGEBACKUP_'||thisYearMonth;       //oracle大小写敏感,尽量使用大写;使用变量连接是使用符号  ||变量

      select count(1) into tableCount from user_tables  where table_name = tableName;   //如果上一行tableName的赋值使用的是小写,这块会出错,明明已经建好了这个表但是查询的时候还是0,缺又不能重新创建;   判断当前用户下是否有要创建的表,并将数量赋值给tableCount,select count(1) into tableCount from user_tables where table_name = tableName; 

      if tableCount=0  then 

      execute immediate 'create table '||tableName||'                               //execute immediate  立刻执行,如果当前存储结构下边用到当前创键的表格就不会报不存在的

      as select * from MESSAGEBUCKUP_TEMP where 1=2';               //复制表结构而不复制表数据的oracle写法    如果需要新建很多表结构一样的表,可以把基本表结构建立出来,然后复制这个表结构,这样如果改了基本表结构就只需要修改基础表结构,不够用改存储结构;

      execute immediate 'create index IDX_MSG_'||thisYearMonth||'_MOBILE'  on '||tableName||' (MOBILE)';   //在表tableName的Mobile字段建立索引

      EXECUTE IMMEDIATE 'create sequence MSGBAK_'||thisYearMonth||'_ID_SEQ       //建立sequence 主要是为了主键自增

      INCREMENT BY 1
      START WITH 1
      NOMAXVALUE
      NOCYCLE
      NOCACHE';


      EXECUTE IMMEDIATE 'create or replace trigger T_MSGBAK_'||thisMonth||'_ID           //建立触发器为了表新增行的时候触发给行的ID设置自增值
      before insert on '||tableName1||'
      for each row
      begin
        select MSGBAK_'||thisMonth||'_ID_SEQ.nextval into :new.id from dual;
      end;';         // 触发器结束需要有分号  ;  也就是说在 ''号里边的分号必须有不然会报错;

      end if;     //结束一个if条件

      if  xxx then  xxxx   end if;     //另一个if条件

    END messagebackup_createTable;    //结束这个存储过程

    2、执行存储过程

      begin

        messagebackup_createTable;

      end;

    3、plsql如何大小写切换

      选中需要改变大小写的文本单击右键-->选项-->选择大写(小写)

    4、plsql存储过程的debug

      登录plsql选择MyObject  --> procedure -->选中要debug的存储过程单击右键 --> test(测试)-->弹出窗点击搜索那个图片启动debug,右边绿色三角符号为运行,小的粉色方形按钮为单步跟踪,单步跳出等;

  • 相关阅读:
    HTML5印章绘制电子签章图片,中文英文椭圆章、中文英文椭圆印章
    送别2019,期待2020!
    [系列] Go
    当查询的数据来自多个数据源,有哪些好的分页策略?
    究竟什么样的开发流程是规范的?
    Git 分支设计规范
    API 接口设计规范
    一线技术管理者究竟在管什么事?
    一个人被提拔,不仅仅是能力,而是信任
    [系列] Go 如何解析 JSON 数据?
  • 原文地址:https://www.cnblogs.com/dujiudizhimo/p/10705305.html
Copyright © 2020-2023  润新知