资源描述:
《关于存储过程编写的心得》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、关于存储过程编写的一点总结一•数据类型和相关函数1.数字PLSJNTEGER:-2147483647〜2147483647NUMBER:十进制或者整数相关函数:ABS(n)绝对值CEIL(n)向上取整FLOOR(n)向下取整ROUND(m[,n])四舍五入TRUNC(m[,n])截取GREATEST何,n...])最大值LEAST(n[,n...J)最小值MOD(m,n)余数SIGN(n)符号2.字符CHAR:定长字符VARCHAR2:变长字符相关函数:INITCAP/LOWER/UFPER(c)大小写格式化INSTR/INSTRB(cl,c2Ln
2、l,m]J)搜索指定字符/字节的位置索引LENGTH/LENGTHB(c)字符/字节数TRIM([LEADING
3、TRAILING
4、BOTH][c2FROM]cl)从左/右/全部截掉指定字符SUBSTR(c,m[,n])截取REPLACE(cl,c2[,c3])替代3.日期DATE相关函数ADD_MONTHS(d,n)增加月份LAST_DAY(d)当月最后一天MONTHS_BETWEEN(d1,d2)两个H期Z间的月数其它函数:TO_CHAR(d
5、/TO_NUMBER(c[,fmtJ)/TO_DATE(cl,fmtJ)转换函数DECODE(expr
6、,case,result],case,result...][,default])嵌入式IF条件判断函数二•匿名块和存储过程结构存贮过程应该是一组经过压缩处理的经常使用的一组命令,如交叉表的查询、更新和插入操作。存贮过程允许程序员简单地将该过程作为一个两数來调用,而不是重复地执行过程内部的语句。而且存贮过程还有些附加的优点。当存贮过程执行时,SQL语句将在服务器中继续运行,一些数据信息将会返冋给用户的电脑直至过程执行完毕。这会极大地提高性能并带来了附加的好处。存贮过程在第一次执行时,在数据库经过了编译操作,编译的映象将存贮在服务器的过程中。因此你不必
7、在每一次执行它的时候都对它进行优化,这也使性能得到了提高。头部分1CREATEORREPLACEPROCEDUREPRC_ACCOUNTMONEYIS23V_COSTTYPEYD_XTCS・SXZ$TYPE;4声明部分55V_DNFLVARCHAR2(1000);6V_GNFLNUMBER(12r4);8gBEGIN101112V_BEGINTIME:=SYSDATE;V^COSTTYPE:=•I*;V_DNFL:=0.001;主13V_GNFL:=0.001;14SELECTSXZINTOVCOSTTYPEFROMYDXTCSWHERESX=,违
8、约金计经方式r15IEV^COSTTYPE=■丄,THEN16FORRECINC^LACKINFOLOOP体17BEGIN18SELECTA.DNFLZA・GNFL19INTOVDNFLrVGNFL20FROMYD_WYFLA,YD_YHJBDAB21WHEREB.HH二V_HH部22ANDA.ID=B.WYFL;23EXCEPTION24WHENOTHERSTHEN25INSERTINTOYDWYJJSYCHXX(ZXSJ,HHzYCSH)26VALUES(SYSDATErV_HHr1用户档案中违约费室:ED和费室表中:ED不能关联27END;2
9、8V_QFHJ:=V^BCYJDF-V_BCYSJE;分29ENDLOOP;30ELSE31NULL;32ENDIF;33V^ENDTIME:=SYSDATE;34INSERTINTOYD_0VEPHONEYLOG35(DATETIMEBEGINTIME,ENDTIME,FLAG)36VALVES37(SYSDATEZV_BEGINTIHE10、NTIME,ENDTIME,FLAG)部分44VALUES45(SYSDATErV_BEGINTIMEZV_ENDTIMEZ0);46COMMIT;47ENDPRC^ACCOUNTMONEY;48/匿名块就是将头部分改成DECLARE的存储过程.语法格式:createprocedureprocedurename[[()©parameternamedatatype[(length)
11、(precision[,scale])[=default][output][,@parameter_namedatatype[(length)
12、(precision[,s
13、cale])[=default][output]]...[)]][withrecompile]asSQL_statemen