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 别名
表名 别名