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. Spring JdbcTemplate源码阅读报告

    写在前面 spring一直以删繁就简为主旨,所以设计出非常流行的bean管理模式,简化了开发中的Bean的管理,少写了很多重复代码.而JdbcTemplate的设计更令人赞叹,轻量级,可做ORM也可如 ...

  2. 结合 RunLoop 和 Instrument 定位卡顿

    iOS 应用,丝般顺滑的理想情况就是 60FPS (对于 iPad Pro 是 240FPS),即在 16ms 之内完成一次渲染.如果找到在每次渲染花费了多久,究竟做了什么事情,那么就可以进行针对性的 ...

  3. day 46 Django 学习3 数据库单表操作以及反向解析

    前情提要: Django 已经学了不少了, 今天学习链接数据库的操作.以及相关的反向解析等 一:反向解析 1:反向解析模板层 跳转时设定url会随着前面的路由改变而改变         2:反向解析之 ...

  4. 手把手教你如何安装和使用Karma-Jasmine

    注意:本文中出现的资料链接.karma的插件安装等,均可能需要翻$墙后才能正确执行. Jasmine是一个Javascript的测试工具,在Karma上运行Jasmine可完成Javascript的自 ...

  5. openerp学习笔记 视图样式(表格行颜色、按钮,字段只读、隐藏,按钮状态、类型、图标、权限,group边距,聚合[合计、平均],样式)

    表格行颜色:             <tree string="请假单列表" colors="red:state == 'refuse';blue:state = ...

  6. 安装Hive-0.10.0-CDH4.5.0所遇异常

    Note: 虚拟机访问Win7中mysql(root用户+密码) hive出现异常1: FAILED: Error in metadata: java.lang.RuntimeException: U ...

  7. 【Java】认识 JDK,JRE,JVM

    JDK,JRE,JVM 今天我们讨论下这三个Java工具 JDK 全称Java Development ToolKit(Java 开发工具包). JDK是整个JAVA的核心,其包括了Java运行环境( ...

  8. Linux驱动:SPI驱动编写要点

    题外话:面对成功和失败,一个人有没有“冠军之心”,直接影响他的表现. 几周前剖析了Linux SPI 驱动框架,算是明白个所以然,对于这么一个庞大的框架,并不是每一行代码都要自己去敲,因为前人已经把这 ...

  9. 【数组】Remove Duplicates from Sorted Array II

    题目: Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For ex ...

  10. Android 开发工具类 07_ScreenUtils

    获得屏幕相关的辅助类: 1.获得屏幕高度: 2.获得屏幕宽度: 3.获得状态栏的高度: 4.获取当前屏幕截图,包含状态栏: 5.获取当前屏幕截图,不包含状态栏. import android.app. ...