国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Oracle之包

2019-11-09 13:28:08
字體:
來源:轉載
供稿:網友

Oracle(持續更新中)

《Oracle11g之安裝與卸載》 《Oracle之常用命令》 《Oracle之用戶管理》 《Oracle之pl/sql》 《Oracle之塊》 《Oracle之存儲過程》 《Oracle之函數》 《Oracle之包》


包用于在邏輯上組合存儲過程和函數,它由包和包體兩部分組成。

包:只包含了過程和函數的說明,但是沒有過程和函數的實現代碼,類似于java中的接口。

包體:用于實現包規范中的過程和函數,類似于java中接口的實現。

創建包

  可以使用create package 命令來創建包。

  代碼如下:

create or replace package sp_package is PRocedure p_insert(in_info varchar2);--定義p_insert存儲過程 function f_select(in_info varchar2) return varchar2;--定義f_select函數end;

顯示數據庫中所有包

  –user_objects表為數據庫中保存所有對象

  代碼如下:

select object_name from user_objectswhere object_type='PACKAGE';

  如圖顯示:

這里寫圖片描述

創建包體

  可以使用create package body 命令創建包體。

  代碼如下:

create or replace package body sp_package is--創建包體procedure p_insert(in_info varchar2) is--實現p_insert存儲過程 begin insert into data (info) values (in_info);--在data表中插入 end;function f_select(in_info varchar2)--實現f_select函數return varchar2 is out_info varchar2(20); begin select info into out_info from data where info =in_info;--查詢data表 return out_info;--必須攜帶返回值 end;end;

在命令窗口中調用包

  當調用包的過程或是函數時,在過程和函數前需要帶有包名。

  (1)調用包中存儲過程

  代碼如下:

call sp_package.p_insert('aabbcc');

  如圖所示: 這里寫圖片描述

  (2)調用包中函數

  代碼如下:

var res varchar2(10);--定義變量call sp_package.f_select('aabbcc') into:res;--調用包中函數,并將返回值賦值print res;--打印結果

  如圖所示:

這里寫圖片描述

java中調用包

  其實調用包中的存儲過程以及函數,只是在原先調用存儲過程以及函數中加上包名。

  Oracle jar包csdn下載地址:http://download.csdn.net/download/abrazen_zz/9749345

  (1)調用包中存儲過程

  代碼如下:

Class.forName("oracle.jdbc.driver.OracleDriver");//加載驅動 Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "tiger");//獲得連接 CallableStatement cstm = conn.prepareCall("{call sp_package.p_insert(?)}");//連接對應的存儲過程,指明包名 cstm.setString(1, "ccnn");//設置插入數據,1代表上述中第1個? cstm.execute();//執行

  (2)調用包中函數

  代碼如下:

Class.forName("oracle.jdbc.driver.OracleDriver");//加載驅動 Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "tiger");//獲得連接 CallableStatement cstm = conn.prepareCall("{?=call sp_package.f_select(?)}");//連接對應的存儲過程 cstm.registerOutParameter(1, oracle.jdbc.OracleTypes.VARCHAR); //設置返回類型 cstm.setString(2, "ccnn");//設置數據,2對應第二個? cstm.execute();//執行 String result = cstm.getString(1);//得到返回數據 System.out.println("執行結果:"+result);
上一篇:文章標題

下一篇:安裝MySQL參考資料

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 原平市| 都匀市| 时尚| 芜湖市| 克什克腾旗| 富阳市| 无为县| 秀山| 旬阳县| 淮安市| 汉源县| 卢龙县| 七台河市| 潢川县| 扬州市| 安图县| 南康市| 冕宁县| 临汾市| 临潭县| 金阳县| 哈密市| 大理市| 嵊州市| 彭州市| 东至县| 福清市| 和平县| 中卫市| 太仆寺旗| 当雄县| 宽甸| 通道| 甘孜县| 鲁山县| 西峡县| 山东| 遂昌县| 常德市| 泗阳县| 枣阳市|