包頭
創(chuàng)新互聯(lián)是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護(hù)、網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)站備案、服務(wù)器租用、空間域名、軟件開發(fā)、成都小程序開發(fā)等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運(yùn)營推廣經(jīng)驗(yàn)的科技公司,有著多年的網(wǎng)站建站經(jīng)驗(yàn),致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開一個(gè)面向全國乃至全球的業(yè)務(wù)窗口:建站聯(lián)系熱線:13518219792
create or replace package package_name is
prcedure p1;
prcedure p2(v1 in char, v2 in date);
end package_name;
包體
create or replace package body package_name is
prcedure p1 is
begin
--代碼省略
end p1;
prcedure p2(v1 in char, v2 in date) is
begin
--代碼省略
end p2;
end package_name;
25、包
(1)定義包頭
語法:
CREATE [OR REPLACE] PACKAGE [schame_name.]包名
IS | AS
包描述
包描述:可以是變量、常量及數(shù)據(jù)類型定義和游標(biāo)定義,也可以是存儲(chǔ)過程、函數(shù)定義和參數(shù)列表返回值類型。
例:
CREATE OR REPLACE PACKAGE employeePackage
AS
--類型定義
Type empRecType is record(
Empno number(4),
Salary number
)
--變量定義
p1 varchar2(20);
type t_departmentNo table is table of dept.deptno%type
index by binary_integer;
--游標(biāo)定義
Cursor order_sal retrurn EmpRecType;
--聘用員工過程
Procedure HireEmployee(p_EmpNo emp.empno%type);
End employeePackage;
例:
CREATE OR REPLACE PACKAGE scott.pkg_displayproduct
IS
procedure prc_getproductinfo
(
pid scott.product.prodid%type,
pname out scott.product.prodname%type,
ctname out scott.product.CATEGORYID%type,
dscp out scott.product.description%type
);
function fun_getstock
(
pid scott.product.prodid%type
)
return number;
END pkg_displayproduct;
(2)定義包體
語法:
CREATE OR REPLACE PACKAGE BODY [schame_name.]包名
IS | AS
包體描述;
END 包名;
包名:將要?jiǎng)?chuàng)建的包名稱,該名稱可以和包頭所在的包名相同,也可以不同。
包體描述:游標(biāo)、存儲(chǔ)過程或者函數(shù)的定義
包體是可選的,如果在包頭中沒有聲明任何存儲(chǔ)過程或者函數(shù),則包體就不存在,即使在包頭有變量、游標(biāo)或者類型的聲明
(3)引用包中對(duì)象
BEGIN
[schame_name.][包名.]對(duì)象名;
END;
調(diào)用方式如下:
using (var conn = new OracleConnection(oradb))
using (var cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "PKG_NAME.INSERT_FUNC";
cmd.BindByName = true;
cmd.Parameters.Add("Return_Value", OracleDbType.Int16,
ParameterDirection.ReturnValue);
cmd.Parameters.Add("i_description", OracleDbType.Varchar2, 1000,
promotionEventSetupDetails.PromotionDescription,
ParameterDirection.Input);
cmd.Parameters.Add("i_theme", OracleDbType.Varchar2, 80,
promotionEventSetupDetails.PromotionTheme,
ParameterDirection.Input);
cmd.Parameters.Add("o_id", OracleDbType.Varchar2,
ParameterDirection.Output);
cmd.Parameters.Add("o_error_msg", OracleDbType.Varchar2,
ParameterDirection.Output);
conn.Open();
using (var dr = cmd.ExecuteReader())
{
// 業(yè)務(wù)代碼
}
}
先create package,在里面聲明procedure
然后再create package body,在package body里面編寫procedure的代碼即可(相當(dāng)于create procedure)。
包里沒有create procedure
示例如下:
CREATE OR REPLACE PACKAGE pkg_test IS
PROCEDURE pro_test(V_OLD IN VARCHAR2,V_NEW IN VARCHAR2);
...
END test;
/
CREATE OR REPLACE PACKAGE BODY pkg_test IS
...
PROCEDURE pro_test(V_OLD IN VARCHAR2,V_NEW IN VARCHAR2) IS
BEGIN
...
END;
...
END pkg_test;
1、首先點(diǎn)擊桌面左下角的開始菜單按鈕在打開的選擇窗口中找到圖中的選項(xiàng),點(diǎn)擊打開窗口界面即可。
2、然后在如圖所示的界面中選擇創(chuàng)建數(shù)據(jù)庫的選項(xiàng),再點(diǎn)擊next即可即可。
3、然后打開圖中的設(shè)置窗口,選擇第一項(xiàng)使用默認(rèn)的配置然后按照提示輸入對(duì)應(yīng)的選項(xiàng)和驗(yàn)證信息即可。
4、這里是剛剛設(shè)置的信息選項(xiàng),可以檢查一些主要的信息確認(rèn)后即可點(diǎn)擊next按鈕繼續(xù)就是說開始創(chuàng)建了。
5、等待即可,中途不需要手動(dòng)設(shè)置修改。數(shù)據(jù)庫創(chuàng)建完成后,點(diǎn)擊關(guān)閉按鈕關(guān)閉創(chuàng)建向?qū)Ы缑妫纯尚陆ㄒ粋€(gè)數(shù)據(jù)庫。
本文名稱:oracle怎么新建包體,oracle包的使用
標(biāo)題網(wǎng)址:http://chinadenli.net/article30/hohipo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站策劃、網(wǎng)站排名、建站公司、網(wǎng)頁設(shè)計(jì)公司、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)