Oracle 存储过程判断语句正确写法和时间查询方法
判断语句: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 存储过程判断语句正确写法和时间查询方法的更多相关文章
- Oracle存储过程中跳出循环的写法
注:本文来源于: < Oracle存储过程中跳出循环的写法 > Oracle存储过程中跳出循环的写法 记录exit和return的用法 1:exit用来跳出循环 loop IF V_ ...
- Oracle 存储过程调用语句
#oracle 存储过程调用语句declare v_custName varchar2(10); --客户姓名 v_num number; --订单分布天数 v_time number; --每日订单 ...
- SQL判断语句用法和多表查询
1.格式化时间sql语句 本例中本人随便做了两张表,和实际不是很相符,只是想说明sql语句的写法. 例1表格式如下: 需求:查询出本表,但需要使time字段的时间格式为yyyy-MM-dd,比如:20 ...
- 8.Smarty的条件判断语句的写法
{if $newObj eq 'a'} welcome a {elseif $a eq 'b'} welcome b {else} welcome others {/if}
- SSE图像算法优化系列十六:经典USM锐化中的分支判断语句SSE实现的几种方法尝试。
分支判断的语句一般来说是不太适合进行SSE优化的,因为他会破坏代码的并行性,但是也不是所有的都是这样的,在合适的场景中运用SSE还是能对分支预测进行一定的优化的,我们这里以某一个算法的部分代码为例进行 ...
- oracle一条语句插入多个值的方法
今天在实践过程中遇到一个问题, 我想往数据库插入多条数据时,使用了如下语句: insert into 表1 (字段1,字段2) values (1,2),(2,3),(3,4); 这条语句在mysql ...
- Oracle存储过程中不支持DML语言的解决方法(针对遇见的DROP关键字)
---存储过程中的原语句: ---删除表 DROP TABLE A_NEWTDDATA; --报错 经查询:存储过程不支持DML语言: 解决方法: execute immediate 'DROP TA ...
- 利用游标返回结果集的的例子(Oracle 存储过程)JAVA调用方法和.NET调用方法
在sqlplus中建立如下的内容: 1.程序包 SQL> create or replace package types 2 as 3 type cursorType is re ...
- Oracle存储过程 使用游标、数组的配合查询
查询输入的门牌号码是否在标准门牌库中存在.存在则返回相应的号码. public string GetValidate(){ OracleConnection conn = ConnectOra(); ...
随机推荐
- 体验SpringCloud Gateway
Spring Cloud Gateway是Spring Cloud技术栈中的网关服务,本文实战构建一个SpringCloud环境,并开发一个SpringCloud Gateway应用,快速体验网关服务 ...
- 图解Nginx限流配置
本文以示例的形式,由浅入深讲解Nginx限流相关配置,是对简略的官方文档的积极补充. Nginx限流使用的是leaky bucket算法,如对算法感兴趣,可移步维基百科先行阅读.不过不了解此算法,不影 ...
- 牛客练习赛17 B-好位置
传送门 题意:本来惯例中文题不解释的, 但是有些人不懂这个题意, 简单的来说, 就是s1每一个的每一个字符都可以和别的字符构成一个子串 == s2. 算了还是惯例中文题意不解释吧. 题解:其实以前写 ...
- light 1205 - Palindromic Numbers(数位dp)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1205 题解:这题作为一个数位dp,是需要咚咚脑子想想的.这个数位dp方程可能不 ...
- Different Integers 牛客网暑期ACM多校训练营(第一场) J 离线+线状数组或者主席树
Given a sequence of integers a1, a2, ..., an and q pairs of integers (l 1, r1), (l2, r2), ..., (lq, ...
- lightoj 1044 - Palindrome Partitioning(需要优化的区间dp)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1044 题意:求给出的字符串最少能分成多少串回文串. 一般会想到用区间dp暴力3个for ...
- 【LeetCode】240-搜索二维矩阵 II
题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示例: 现有矩阵 m ...
- spring boot项目后台运行
spring boot项目后台运行 Spring Boot应用的几种运行方式: (1)运行Spring Boot的应用主类 (2)使用Maven的Spring Boot插件mvn spring-boo ...
- .netcore 使用阿里云短信
准备工作 阿里云上申请短信服务 创建短信应用.签名.短信模板并申请审核,如果审核不通过,接口是调不通的. 配置专门用来发短信的accessKeyId和 accessKeySecret 开始开发 下载安 ...
- 人工智能-智能创意平台架构成长之路(四)-丰富多彩的banner图生成解密第一部分(对标阿里鹿班的设计)
我们之前讲了很多都是平台架构的主体设计,应用架构设计以及技术架构的设计,那么现在我们就来分享一下丰富多彩的banner图是怎么生成出来的. banner图的生成我们也是不断的进行迭代和优化,这块是最核 ...