判断语句: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. Android Studio安卓学习笔记(二)Android项目结构

    上一篇代码,我们学习了Android的功能以及如何用Android Studio开发第一个安卓程序.下面就要介绍Android项目结构.为日后学习打基础. 一:Android项目结构 打开MyFris ...

  2. NLP(十) 主题识别

    主题识别 是发现输入文本集合中存在的主题的过程 LDA算法,即狄利克雷分布算法 from nltk.tokenize import RegexpTokenizer from nltk.corpus i ...

  3. c#搭建jenkins自动构建环境

    这边我使用的是参数化构建过程,文笔比较差劲,就直接上干货了 1.定义构造参数 2.设置jenkins工作空间目录,在此定义了版本号和工作目录构建参数 3.配置svn 4.构建触发器,用于轮询查看svn ...

  4. POJ - 3026 Borg Maze BFS加最小生成树

    Borg Maze 题意: 题目我一开始一直读不懂.有一个会分身的人,要在一个地图中踩到所有的A,这个人可以在出发地或者A点任意分身,问最少要走几步,这个人可以踩遍地图中所有的A点. 思路: 感觉就算 ...

  5. 洛谷P3951 小凯的疑惑 - 数学 /扩展欧几里得

    传送门 题意:求出a和b不能通过线性组合(即n*a+m*b)得到的最大值: 思路:摘自洛谷: 不妨设 a<b 假设答案为 x 若 x≡m*a ( mod b )(1≤m≤b−1) (mod3)什 ...

  6. bzoj 4025 二分图 lct

    题目传送门 题解: 首先关于二分图的性质, 就是没有奇环边. 题目其实就是让你判断每个时段之内有没有奇环. 其次 lct 只能维护树,(反正对于我这种菜鸟选手只会维护树), 那么对于一棵树来说, 填上 ...

  7. codeforces 761 D. Dasha and Very Difficult Problem(二分+贪心)

    题目链接:http://codeforces.com/contest/761/problem/D 题意:给出一个长度为n的a序列和p序列,求任意一个b序列使得c[i]=b[i]-a[i],使得c序列的 ...

  8. 洛谷 P1980【计数问题】 题解(2)

    还有一种办法,就是用stringstream函数将每一次的数全都转化成char一维数组样式的字符串,然后逐位扫一遍即可. (记得判断字符时将规定数字+48) //Stand up for the fa ...

  9. Eclipse For Mac下中文乱码解决

    在Mac os 版本的eclipse下引入java项目或是源代码,经常会碰到其中中文部分都是乱码.对于这一问题,经过小试,可以解决. 1.打开eclipse 偏好设置 2.General ——> ...

  10. 上海地铁游移动APP需求分析

    人们在现实的生活中会遇到各种各样的问题,有不同的需求,我们需要加以解决,开发一个软件是一个很好的方法去解决这些需求和问题.那么,作为一个软件团队如何才能准确而全面地找到这些需求呢?主要有一下几个步骤. ...