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,右边绿色三角符号为运行,小的粉色方形按钮为单步跟踪,单步跳出等;

oracel存储过程编写 以及plsql存储过程的debug的更多相关文章

  1. Oracle/PLSQL存储过程详解

    原文链接:https://blog.csdn.net/zezezuiaiya/article/details/79557621 Oracle/PLSQL存储过程详解 2018-03-14 17:31: ...

  2. 你真的会玩SQL吗?玩爆你的数据报表之存储过程编写(上)

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  3. mysql存储过程编写-入门案例-遁地龙卷风

    (-1)写在前面 这篇文章只是简要的叙述了mysql存储过程编写的基本概念. 我使用的mysql版本是5.7.9-log. 参照<<深入浅出MySQL>>. (0) delim ...

  4. Atitit mysql存储过程编写指南

    Atitit mysql存储过程编写指南 1.1. 设定参数与返回值  `obj_id` int ,,返回类型 varchar(200)1 1.2. 在语句中使用传入的obj_id参数1 1.3. 测 ...

  5. plsql 存储过程 测试

      plsql 存储过程 测试 CreationTime--2018年8月14日09点54分 Author:Marydon 1.找到要运行的存储过程-->选中-->右键-->测试 2 ...

  6. sybase的存储过程编写经验和方法

    1.如果用到其他库的Table或View,务必在当前库中建立View来实现跨库操作,最好不要直接使用“databse.dbo.table_name”,因为sp_depends不能显示出该SP所使用的跨 ...

  7. plsql 存储过程 介绍。

    /* 7-22 知识总结? 1. 存储过程 2.函数 3.包 */ /*1.什么是存储过程? 语法? 存储过程:类似于Java中的方法:完成一个特定的功能,一系列代码 (增删改操作和一些逻辑判断,se ...

  8. MySQL存储过程详解 mysql 存储过程

    原文地址:MySQL存储过程详解  mysql 存储过程作者:王者佳暮 mysql存储过程详解 1.     存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储 ...

  9. MySQL存储过程详解 mysql 存储过程(二)

    mysql存储过程详解 1.      存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL ...

随机推荐

  1. snmpv3-snmpd.conf解析

    1.先指定createUser语句,设置密码和传输密钥. createUser user1 createUser user2 MD5 user2password createUser user3 MD ...

  2. 【wireshark】抓包和文件格式支持

    1. 抓包 捕获从网络适配器提取包,并将其保存到硬盘上. 访问底层网络适配器需要提升的权限,因此和底层网卡抓包的功能被封装在dumpcap中,这是Wireshark中唯一需要特权执行的程序,代码的其他 ...

  3. linux文件的硬连接和软连接

    建立软连接:ln -s 原路径 目标路径 原理示意图: 特点: 1.     相当于win中的快捷方式 2.     删除链接文件,源文件不受影响 3.     删除源文件,链接文件失效 4.     ...

  4. mysql 练习 和链接 pymysql 练习题

    python操作数据库 1. 查询student表的所有记录 2. 查询student表的第2条到第4条记录 3. 查询所有学生的学号(id).姓名(name)和报读课程(department)的信息 ...

  5. 在vue项目中使用swiper2.7.6

    $ npm install swiper@2.7.6 --save-dev npm WARN rollback Rolling back node-pre-gyp@0.10.0 failed (thi ...

  6. Ubuntu16.04 / OpenCV / Python 源码安装

    为什么需要源码安装? 1. 对 Python 版的 OpenCV,Ubuntu 有两种安装方式: 源码安装:官网(https://opencv.org/releases.html)下载源代码,在机器上 ...

  7. js02--对象、函数、switch、for、异常、表单验证

    现在我们接着来继续学习有关js的一些基础. 1.undefined与null    undefined:当变量声明但尚未赋值时,它的类型就是undefined    null:表示一个不存在的对象,它 ...

  8. 剑指offer五十五之链表中环的入口结点

    一.题目 一个链表中包含环,请找出该链表的环的入口结点. 二.思路 方法一: 假设x为环前面的路程(黑色路程),a为环入口到相遇点的路程(蓝色路程,假设顺时针走), c为环的长度(蓝色+橙色路程). ...

  9. (转)教你手工mysql拆库

    原文:http://www.cnblogs.com/cchust/p/3859967.html 互联网网站应用大多采用mysql作为DB存储,限于mysql单机性能的瓶颈,为了支撑更大容量和更大的访问 ...

  10. 在Mac OS X上启用Apache和PHP

    因为Mac OS X上都已自带了Apache和PHP,所以都无需进行安装,只要按照自己的需要进行设置即可. 找到httpd.conf文件,并用编辑器打开. 加载PHP模块.找到 #LoadModule ...