Oracle存储过程的详细操作学习实例一

Oracle存储过程的详细操作学习实例一

因为目前项目要进行迁库,对于存储过程的迁移有点难,企业原先的旧架构已经很老了,涉及到的存储过程很多,每一个存储过程的逻辑也很复杂,从Oracle到GBase库,很多不同之处,不适配很难操作;所以开始将Oracle和gbase各自的存储过程和语法这块在这周时间学习一下,先更新关于Oracle的存储过程的学习和实际工作的操作,之后是GBase的存储过程的学习,然后将连着进行对比,再去修改适配问题。因为GBase存储过程用的是Mysql的语法,所以mysql的存储学习一下也是有帮助的。

  • 实际工作遇到的这句存过中的语句:涉及到的函数一起分析一下:

    S_DATE已经定义了 :S_DATE VARCHAR(30)

  • S_DATE := TO_CHAR(LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE), -7)) + 1,'YYYY-MM-DD');
    

从里面的函数看起:

TRUNC():

select trunc(sysdate) from dual --2020-05-29 今天的日期为2020-05-29;
此处就是取存过执行的时候当前的日子

ADD_MONTHS():

有两个参数,第一个参数是日期在这里指的就是TRUNC(SYSDATE)
第二个参数是对日期进行加减的数字(以月为单位的):-7 今天的日期开始 减7个月。

LAST_DAY(date)函数

:LAST_DAY函数返回指定日期对应月份的最后一天。
ADD_MONTHS(TRUNC(SYSDATE), -7)) 但是后面又+1 ;
LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE), -7)) + 1 :这句话的涵义:取当前日期的前7个月的这个月份的最后一天日期,+1 则为后一个月的第一天日期。

to_char(date,‘格式’)函数:

是将数值型或者日期型转化为字符型 。

将例子中时间( LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE), -7)) + 1)转换成后面的格式‘YYYY-MM-DD’的字符串类型;

即:将取到的最终的日期按照这样的格式赋值给S_DATE。

其实每个函数的具体功能很多,只要搜就能搜到,这里我只列举我工作中遇到的实际问题,如果有任何问题,希望纠正。

你可能感兴趣的:(Oracle数据库)