判断语句:if 条件 then
   if  条件  then ************;
   elsif  条件  then  ************;
   elsif 条件  then ************;
   end if;
  end if;

主要注意elsif 写法,少一个e

时间查询:to_char(t.uptime,'yyyy-mm-dd')='2015-10-27',用to_char函数转成字符型

和分页查询有关的存储过程:

create or replace procedure PROC_GET_CREATETASK
(
  var_regionCode in char := '',
  var_rwlx in nvarchar2 := '',
  var_uptime in nvarchar2 := '',
  var_orderfield in nvarchar2 := '',      
  var_ordertype in nvarchar2 := '',        
  var_pageindex in out number,          
  var_pagesize in out number,            
  var_totalRecords out number,          
  var_ret out SYS_REFCURSOR
)
is
  v_sql VARCHAR2(4000) := '';             
  v_sqlCount VARCHAR2(4000) := '';        
  v_where VARCHAR2(4000) := 'WHERE 1=1 and sftask=''鍚?'';
  v_totalPages number := 0;
  v_startRecord Number(10);               
  v_endRecord Number(10);                 
begin
  if var_regionCode is not null then
   if  var_regionCode='000000'  then v_where := v_where;
   elsif  substr(var_regionCode,3,4)='0000' then
    v_where := v_where || ' AND substr(t.xzqdm,0,2)=''' || substr(var_regionCode,1,2) || '''';
   elsif substr(var_regionCode,5,2)='00' then
    v_where := v_where || ' AND substr(t.xzqdm,0,4)=''' || substr(var_regionCode,1,4) || '''';
   end if;
  end if;

if var_rwlx is not null then
    v_where := v_where || ' AND t.RWLX = '''|| var_rwlx || '''';
  end if;
         
  if var_uptime is not null then
    v_where := v_where || ' AND to_char(t.uptime,''yyyy-mm-dd'') = ''' || var_uptime || '''';
  end if;

v_sql := v_sql || 'select rownum r,t.*  from VIEW_TASKMANAGE t ' || v_where;

v_sqlCount := v_sqlCount || 'select count(*) from (' || v_sql || ')';

execute immediate v_sqlCount into var_totalRecords;
        
  if var_orderfield <> '' then
    v_sql := v_sql || 'order by var_orderfield ';
  end if;

if var_ordertype <> '' then
    v_sql := v_sql || var_ordertype;
  end if;
                  
  if var_totalRecords > 0 then
  begin
    v_totalPages := ceil(var_totalRecords / var_pagesize);

if var_pageIndex < 1 then
      var_pageIndex := 1;
    end if;
    
    if var_pageIndex > v_totalPages then
      var_pageIndex := v_totalPages;
    end if;

v_startRecord := (var_pageIndex - 1) * var_pagesize + 1;
    v_endRecord := var_pageIndex * var_pagesize;
             
    v_sql := 'SELECT * FROM (' || v_sql || ') a where a.r between ' || v_startRecord || ' and ' || v_endRecord;
  end;
         
  end if;
         
  open var_ret for v_sql;

end PROC_GET_CREATETASK;

Oracle 存储过程判断语句正确写法和时间查询方法的更多相关文章

  1. Oracle存储过程中跳出循环的写法

    注:本文来源于: <  Oracle存储过程中跳出循环的写法   > Oracle存储过程中跳出循环的写法 记录exit和return的用法 1:exit用来跳出循环 loop IF V_ ...

  2. Oracle 存储过程调用语句

    #oracle 存储过程调用语句declare v_custName varchar2(10); --客户姓名 v_num number; --订单分布天数 v_time number; --每日订单 ...

  3. SQL判断语句用法和多表查询

    1.格式化时间sql语句 本例中本人随便做了两张表,和实际不是很相符,只是想说明sql语句的写法. 例1表格式如下: 需求:查询出本表,但需要使time字段的时间格式为yyyy-MM-dd,比如:20 ...

  4. 8.Smarty的条件判断语句的写法

    {if $newObj eq 'a'} welcome a {elseif $a eq 'b'} welcome b {else} welcome others {/if}

  5. SSE图像算法优化系列十六:经典USM锐化中的分支判断语句SSE实现的几种方法尝试。

    分支判断的语句一般来说是不太适合进行SSE优化的,因为他会破坏代码的并行性,但是也不是所有的都是这样的,在合适的场景中运用SSE还是能对分支预测进行一定的优化的,我们这里以某一个算法的部分代码为例进行 ...

  6. oracle一条语句插入多个值的方法

    今天在实践过程中遇到一个问题, 我想往数据库插入多条数据时,使用了如下语句: insert into 表1 (字段1,字段2) values (1,2),(2,3),(3,4); 这条语句在mysql ...

  7. Oracle存储过程中不支持DML语言的解决方法(针对遇见的DROP关键字)

    ---存储过程中的原语句: ---删除表 DROP TABLE A_NEWTDDATA; --报错 经查询:存储过程不支持DML语言: 解决方法: execute immediate 'DROP TA ...

  8. 利用游标返回结果集的的例子(Oracle 存储过程)JAVA调用方法和.NET调用方法

    在sqlplus中建立如下的内容: 1.程序包 SQL> create or replace package types  2  as  3      type cursorType is re ...

  9. Oracle存储过程 使用游标、数组的配合查询

    查询输入的门牌号码是否在标准门牌库中存在.存在则返回相应的号码. public string GetValidate(){ OracleConnection conn = ConnectOra(); ...

随机推荐

  1. nvm的安装与配置和基本使用(学习总结)

    nvm是来管理node的一个工具,为了方便使用不同版本的node.js运行环境,我们应该学习如何使用他 nvm安装方式 1.下载nvm,大家可以去github上下载,但因为github的CDN被墙,访 ...

  2. 你真的了解MyBatis中${}和#{}的区别吗?

    动态sql是mybatis的主要特性之一.在mapper中定义的参数传到xml中之后,在查询之前mybatis会对其进行动态解析. mybatis提供了两种支持动态sql的语法:#{} 和 ${}. ...

  3. J-Subarray_2019牛客暑期多校训练营(第二场)

    题意 有一个只由1,-1组成的数组,给出所有连续的1所在位置,求满足1的个数大于-1的个数的子区间的数量 题解 参考博客:https://www.cnblogs.com/Yinku/p/1122149 ...

  4. codeforces1076 A.B.C.D.E

    1076A 1076B 1076C 1076D 1076D A. Minimizing the String  You are given a string s consisting of n low ...

  5. hdu 1176免费馅饼(记忆化搜索)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1176 题意不解释了 简单的记忆化搜索可以拿来练练手,注意要从pos = 5 开始搜索 #include ...

  6. mysql 主主从配置

    配置主服务器:主服务器1 Ip:  192.168.0.1 主服务器2 Ip:  192.168.0.2 主服务器1配置 2.1.修改mysql配置文件 vim /etc/my.conf Server ...

  7. Java服务器-Disruptor使用注意

    最近看了一下部署游戏后台的服务器状况,发现我的一个Java程序其占用的CPU时长超过100%,排查后发现竟是Disruptor引起的,让我们来看看究竟为什么Disruptor会有这样的表现. 发现占用 ...

  8. webpack多页面应用打包问题-新增页面打包JS影响旧有JS资源

    webpack多页面应用打包问题:如果在项目里新增页面,pages目录中插入一个页面文件,然后打包代码,在webpack3中,新增页面文件上方文件打包出来的JS文件内容全部会改变,点击查看比对,发现问 ...

  9. 059 Python计算生态概览

    目录 一.概要 二.导学 三.实践能力 一.概要 从数据处理到人工智能 实例15-霍兰德人格分析雷达图 从Web解析到网络空间 从人机交互到艺术设计 实例16-玫瑰花绘制 二.导学 纵览Python计 ...

  10. C#委托(delegate、Action、Func、predicate)和事件

    一.前言 刚开始工作的时候,觉得委托和事件有些神秘,而当你理解他们之后,也觉得好像没有想象中的那么难.在项目中运用委托和事件,你会发现他非常棒,这篇博文算是自己对委托和事件的一次梳理和总结. 二.委托 ...