PL/SQL 程序设计

其实是为了优化公司的一个数据库存储过程,感觉不精通sql又不行,所以开这篇,每天学点相关知识,记录学习过程。

1.

2.存储过程

 1 PROCEDURE OutboundOrder -- 出库单
 2 (
 3 p_contractselfno varchar2
 4 ,p_PageNum varchar2
 5 ,p_MaxRow varchar2
 6 ,p_FrTime varchar2
 7 ,p_ToTime varchar2
 8 ,O_TBL OUT TBL
 9 ) IS
10 start_ime date:=to_date('0001-1-1 00:00:00','yyyy-mm-dd hh24:mi:ss');
11 Fr_Time date:=to_date(p_FrTime,'yyyy-mm-dd hh24:mi:ss');
12 To_Time date:=to_date(p_ToTime,'yyyy-mm-dd hh24:mi:ss');
13 BEGIN
14    ...
15 END;

第一行是存储过程名称;2~9行是传入的参数;9~12是临时变量,这里可以写一些对传入参数的转换,也可以声明一些后面使用的临时变量。

BEGIN和END之间就是存储过程的具体实现了。

 

select to_date('0001-1-1 11:00:00','yyyy-mm-dd hh24:mi:ss')+65536 as dt from dual

日期加一个数字 相当于加了这个数字的天数

 

1.NVL2(expr1,expr2,expr3) 

  功能:如果参数表达式expr1值为NULL,则NVL2()函数返回参数表达式expr3的值;如果参数表达式expr1值不为NULL,则NVL2()函数返回参数表达式expr2的值。

NVL( string1, replace_with)

  功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。

2.在FROM子句中可用以下两种格式为表或视图指定别名:
表名 as 别名
表名 别名

 

posted on 2017-09-21 09:00  吃肉不吃菜  阅读(128)  评论(0编辑  收藏  举报

导航