日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle包和包体以及与非包体定义函数、过程的区别

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle包和包体以及与非包体定义函数、过程的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.Oracle中的包和包體

Oracle中的包和包體與java中的接口和類才關系特別類似,我們就根據對比學習一下包和包體吧!

2.oracle包和包體與自定義函數,過程區別

  • 2.1 如果直接create 函數,函數不會出現在包里,而是在function目錄下面,如果在包里創建,則會出現在包里,他們兩者有什么區別?

答:

1)直接創建的函數,是數據公共函數。在調用函數的時候直接調用函數名帶上參數就可以。2)而建在包體里的函數是私有函數,在有在包體里才能直接用函數名帶參數調用。 外部程序要調用需要--包名.函數名(參數)--這樣去調用。

3.創建Oracle包以及實現包

sql語句如下:

-- 包(pakage)和包體(package body) -- 首先創建一個包含字段comm的emp表,再創建下面的包和包體create or replace package test_package is-- 聲明全局變量:默認獎金數額g_comm number:=100;-- 聲明存儲過程:用于重置獎金數額procedure proc_reset_comm(p_comm in number);-- 聲明函數:用于求所有員工中最高工資function func_maxsal_emp return number; end test_package; /create or replace package body test_package is -- 實現存儲過程procedure proc_reset_comm(p_comm in number)isbeginif nvl(p_comm,0)>g_comm theng_comm:=p_comm;end if;dbms_output.put_line(g_comm);end proc_reset_comm;-- 實現函數function func_maxsal_emp return numberisv_maxsal emp.sal%type;beginselect max(sal) into v_maxsal from a_emp;return v_maxsal;end func_maxsal_emp; end; /-- 測試包和包體 exec test_package.proc_reset_comm(111); select test_package.func_maxsal_emp() from dual;

測試是否可以在包體里創建自定義函數

-- 一個已經創建好的自定義函數 -- 編寫將字符串倒敘排列的函數:比如輸入abc 返回cba create or replace function func_reverse_abc(str varchar2) return varchar2 is v_length number(4); --字符串的長度 v_temp varchar2(1); --截取的單個字符 v_result varchar2(1000); --處理后的結果 begin-- 計算字符串長度select length(str) into v_length from dual;-- 使用循環倒敘字符串for i in reverse 1..v_length loopv_temp := substr(str,i,1);v_result:=v_result||v_temp;end loop; return v_result; end; / select func_reverse_abc('abc') from dual;--------------------------------------------------------------------------- 現在將自定義函數合并到上面的創建的包和包體中-- 包(pakage)和包體(package body) create or replace package test_package is-- 聲明全局變量:默認獎金數額g_comm number:=100;-- 聲明存儲過程:用于重置獎金數額procedure proc_reset_comm(p_comm in number);-- 聲明函數:用于求所有員工中最高工資function func_maxsal_emp return number; end test_package; /create or replace package body test_package is -- 1.實現存儲過程procedure proc_reset_comm(p_comm in number)isbeginif nvl(p_comm,0)>g_comm theng_comm:=p_comm;end if;dbms_output.put_line(g_comm);end proc_reset_comm;-- 2.實現函數function func_maxsal_emp return numberisv_maxsal emp.sal%type;beginselect max(sal) into v_maxsal from a_emp;return v_maxsal;end func_maxsal_emp;------------------------------------------------------- 包中沒有的,自定義函數 此處使用create function就直接報錯,故刪除createfunction func_reverse_abc(str varchar2) return varchar2isv_length number(4); --字符串的長度v_temp varchar2(1); --截取的單個字符v_result varchar2(1000); --處理后的結果begin-- 計算字符串長度select length(str) into v_length from dual;-- 使用循環倒敘字符串for i in reverse 1..v_length loopv_temp := substr(str,i,1);v_result:=v_result||v_temp;end loop; return v_result;end func_reverse_abc; end; /------------------------------------------------------------------------- -- 結果說明:在編譯運行包和包體時,沒有報任何錯誤 -- 但是在測試自定方法是報錯,無法調用這個自定義方法 -- 結論:不能在包體中自定義包中不存在的函數和過程-- 測試包和包體 exec test_package.proc_reset_comm(111); select test_package.func_maxsal_emp() from dual; -- 自定義函數測試(前綴加包名,也測試不成功) select func_reverse_abc('abc') from dual;

總結

以上是生活随笔為你收集整理的Oracle包和包体以及与非包体定义函数、过程的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩欧美网站 | 欧美午夜精品理论片a级按摩 | av视| 色婷婷在线视频 | 欲色av| 亚洲蜜桃视频 | 禁断介护老人中文字幕 | a天堂中文在线观看 | 国产日韩网站 | 亚洲一区二区三区四区五区午夜 | 一级黄色播放 | 狠狠干b | 免费萌白酱国产一区二区三区 | 免费在线观看一区二区 | 精品深夜av无码一区二区老年 | 亚洲精品国产一区 | 国产美女极度色诱视频www | 亚洲xx视频 | 国产一区二区免费在线观看 | 日韩综合在线观看 | 国产视频一区二区在线播放 | 涩涩视频在线观看 | 欧美精品二区三区四区免费看视频 | 91福利视频在线观看 | 狠狠做深爱婷婷久久综合一区 | 911国产| 亚洲黄色网址大全 | 成人在线观看一区二区 | 婷婷五月综合久久中文字幕 | 精品国产乱码久久久久久久 | 国产裸体永久免费视频网站 | 综合在线亚洲 | 中文婷婷 | 狠狠干一区二区 | 调教91 | 国产私拍| 久久精品视频一区 | 午夜理伦三级做爰电影 | 99热这里只有精品1 亚洲人交配视频 | 永久av| 亚洲精品一区二区在线 | 天使色吧 | 小草av| 黑人操日本女优 | a亚洲天堂| 成人精品免费在线观看 | 五月激情婷婷网 | jizz黑人| a毛毛片| 精品视频在线观看一区 | 在线毛片网 | 影音先锋中文字幕在线播放 | 亚洲人成无码www久久久 | 老头老太吃奶xb视频 | 久久久久一级 | 午夜激情视频在线播放 | 日本成人一区二区三区 | 五月天天色 | 福利网址在线观看 | 久久久精品人妻av一区二区三区 | 另一种灿烂生活 | 樱花视频在线观看 | 91精品国产乱码久久 | 免费看黄色的网站 | 麻豆蜜桃视频 | 男生插女生视频 | 亚洲av无码专区国产乱码不卡 | 久久国产一区二区三区 | 黄网在线观看免费 | 蜜桃视频导航 | 国产成人精品123区免费视频 | 国模视频在线 | www.亚洲在线 | 日本韩国欧美在线 | 天天爽天天干 | 天天碰免费视频 | 日本高清三区 | 欧美一级视频在线观看 | 特级一级黄色片 | 国产精品一区二区精品 | 色婷在线| www.日批 | 日日射av | 欧美在线播放一区二区 | 老司机久久 | 婷婷丁香六月 | 亚洲精品成人在线视频 | 国产精品99久久久久久人 | 国产精品成人久久久久久久 | 亚洲影院在线 | 日韩精品在线观看AV | 自拍99| 波多野吉衣伦理片 | 精品成人免费一区二区在线播放 | 国产九色91回来了 | 国产精品第157页 | 毛片基地在线播放 | 欧美一区国产一区 | 久中文字幕 |