上篇《懵懂oracle之存儲(chǔ)過程》已經(jīng)給大家介紹了很多關(guān)于開發(fā)存儲(chǔ)過程相關(guān)的基礎(chǔ)知識(shí),筆者盡最大的努力總結(jié)了所有接觸到的關(guān)于存儲(chǔ)過程的知識(shí),分享給大家和大家一起學(xué)習(xí)進(jìn)步。本篇文章既是完成上篇文章中未來得及總結(jié)的關(guān)于存儲(chǔ)過程的調(diào)用、測(cè)試等知識(shí)的匯總分享,也是對(duì)上篇文章的存儲(chǔ)過程的一個(gè)調(diào)試改錯(cuò)過程(由于知識(shí)的局限性和書寫時(shí)的疏忽等,之前的存儲(chǔ)過程有誤之處難免,正在不斷更改中,如果能得到大家的指正將使這個(gè)工作進(jìn)行地更快更好,助人為快樂之本!)。
下面步入正題,介紹本篇知識(shí)匯總和分享:
一、存儲(chǔ)過程的調(diào)用(代碼中sp_hll_test_20170415這個(gè)存儲(chǔ)過程可參見《懵懂oracle之存儲(chǔ)過程》,請(qǐng)注意查看使用最新的代碼)。
1 declare -- 如果不需要定義參數(shù),那么就可去掉此declare部分,只使用begin……end塊 2 a number; 3 b date; 4 c varchar2(20); 5 d number; 6 status user_tables.status%type; 7 -- e varchar2(20); 長(zhǎng)度過小 8 /* 9 務(wù)必注意出參或出入?yún)樽兞繒r(shí),變量有長(zhǎng)度限制時(shí)不得小于在存儲(chǔ)過程中會(huì)達(dá)到的最大值,10 否則會(huì)導(dǎo)致過長(zhǎng)的字符串無法存入這個(gè)長(zhǎng)度不夠的變量中,而報(bào)錯(cuò):11 ORA-06502: PL/SQL: 數(shù)字或值錯(cuò)誤 : 字符串緩沖區(qū)太小12 */13 e varchar2(200);14 begin15 /*16 存儲(chǔ)過程調(diào)用時(shí),參數(shù)可以為常量、變量或綁定變量,參數(shù)調(diào)用方式可以為定位調(diào)用、命名調(diào)用或混合調(diào)用,17 同時(shí)參數(shù)