版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Oracle數(shù)據(jù)庫對象第九章回顧與作業(yè)點評什么是PL/SQL?在PL/SQL中有幾種循環(huán)結(jié)構(gòu)?游標(biāo)的作用是什么?如何讀取游標(biāo)中的記錄?預(yù)習(xí)檢查什么是PL/SQL?PL/SQL語法結(jié)構(gòu)?PL/SQL中如何實現(xiàn)異常處理?游標(biāo)的使用分為哪幾個步驟?本章任務(wù)使用函數(shù)實現(xiàn)數(shù)據(jù)處理使用過程實現(xiàn)數(shù)據(jù)處理使用包實現(xiàn)程序代碼的組織本章目標(biāo)學(xué)會在Oracle中使用過程學(xué)會在Oracle中使用函數(shù)學(xué)會在Oracle中使用視圖學(xué)會在Oracle中使用序列過程簡介什么是過程將SQL或者PL/SQL代碼塊集中用于完成特定功能的集合過程的結(jié)構(gòu)聲明部分:包括類型、變量、游標(biāo)執(zhí)行部分:完成功能而編寫的SQL語句或則是PL/SQ
2、L代碼塊異常處理部分過程的應(yīng)用創(chuàng)建過程創(chuàng)建過程不使用DECLARE關(guān)鍵字在創(chuàng)建過程時可指定參數(shù)CREATE OR REPLACE PROCEDURE procedure_name ( parameter1 IN | OUT | IN OUT param1_type parameter2 IN | OUT | IN OUT param2_typeparameterN IN | OUT | IN OUT paramN_type IS | ASprocedure _body;創(chuàng)建過程可選參數(shù)SQL語句或者PL/SQL語句塊過程的應(yīng)用-創(chuàng)建名稱為ShowInfo 的過程CREATE OR REPLAC
3、E PROCEDURE ShowInfo-聲明一個輸入?yún)?shù)( Major IN varchar2 ) AS-聲明一個游標(biāo),在查詢語句中使用輸入?yún)?shù)值作為查詢條件CURSOR s_info IS select firstname,lastname fromstudent where major = Major;BEGIN -使用FOR 循環(huán)提取游標(biāo)數(shù)據(jù) FOR s_stu IN s_info LOOP Dbms_Output.put_line(s_stu.firstname|s_stu.lastname); END lOOP;END;聲明過程設(shè)置參數(shù)過程具體實現(xiàn)過程的調(diào)用與刪除過程的調(diào)用與刪除-
4、已定義好一個過程ShowInfo,接收一個參數(shù)-調(diào)用有參過程BEGIN ShowInfo(MUSIC);END;-調(diào)用無參過程BEGIN ShowInfo;END;-刪除過程DROP PROCEDURE 過程名通過過程名進(jìn)行調(diào)用,并傳遞參數(shù)無參過程直接調(diào)用過程名稱刪除過程函數(shù)簡介什么是函數(shù)與過程類似,是一組SQL語句或者PL/SQL語句塊的集合,同時能夠返回執(zhí)行結(jié)果函數(shù)的結(jié)構(gòu)聲明部分:包括類型、變量、游標(biāo)執(zhí)行部分:完成功能而編寫的SQL語句或則是PL/SQL代碼塊異常處理部分函數(shù)的應(yīng)用創(chuàng)建函數(shù)創(chuàng)建函數(shù)不使用DECLARE關(guān)鍵字在創(chuàng)建函數(shù)時可指定參數(shù)CREATE OR REPLACE FUNCT
5、ION function_name ( parameter1 IN | OUT | IN OUT param1_typeparameter2 IN | OUT | IN OUT param2_typeparameterN IN | OUT | IN OUT paramN_typeRETURN returntype IS | AS function _body;創(chuàng)建過程可選參數(shù)指定返回結(jié)果類型函數(shù)的應(yīng)用函數(shù)題內(nèi)允許有多個return執(zhí)行return語句,函數(shù)將執(zhí)行結(jié)束并返回結(jié)果-創(chuàng)建函數(shù)CREATE OR REPLACE Function GETCOUNT(Major IN varchar2 )
6、-聲明返回類型return number AS f_count number;BEGIN-使用INTO 語句將結(jié)果賦值給變量select count(*) into f_count from students where major=Major ;-使用RETURN 語句返回return f_count;END;聲明函數(shù)設(shè)置返回類型返回結(jié)果過程的調(diào)用與刪除過程的調(diào)用與刪除執(zhí)行那個DROP語句后,函數(shù)將被永久刪除-調(diào)用函數(shù)-DECLARE-聲明變量接收函數(shù)的返回值 v_count number;BEGIN v_count:=GETCOUNT(MUSIC); Dbms_Output.put_lin
7、e(v_count);END;-刪除過程DROP FUNCTION 函數(shù)名定義變量接收函數(shù)返回值調(diào)用函數(shù)并傳遞參數(shù)刪除函數(shù)過程與函數(shù)的比較過程與函數(shù)的比較 過程函數(shù)標(biāo)識符PROCEDUREFUNCTION返回值必須使用變量形參用函數(shù)名直接返回賦值不能賦值并定義類型可以定義類型,并直接賦值調(diào)用方式獨立的過程調(diào)用句以表達(dá)式方式調(diào)用目的完成一系列的數(shù)據(jù)處理獲得函數(shù)返回值Oracle中的包什么是包包是有存儲在一起的相關(guān)對象組成的PL/SQL結(jié)構(gòu)用于邏輯組合相關(guān)的自定義類型、變量、游標(biāo)、過程和函數(shù)包的組成包的規(guī)范(又稱包頭)用于定義常量、變量、游標(biāo)、過程和函數(shù)等用戶與程序的接口可以在保內(nèi)引用,也可以被外
8、部程序調(diào)用包的主題是包規(guī)范的實現(xiàn),包括變量、游標(biāo)、過程和函數(shù)等包體內(nèi)的內(nèi)容不能被外部應(yīng)用程序調(diào)用包規(guī)范的創(chuàng)建創(chuàng)建包的規(guī)范CREATE OR REPLACE PACKAGE package_name AUTHID USER | DEFINER IS | ASPRAGMA SERIALLY_REUSABLE;COLLECTION _TYPE_DEFINITIONRECORD_TYPE_DEFINITIONSUBTYPE_DEFINITIONCOLLECTION_DECLARATIONCONSTANT_DECLARATIONEXCEPTION_DECLARATIONVARIABLE_DECLARAT
9、ION CURSOR_DECLARATION FUNCTION_DECLARATIONPROCEDURE_DECLARATIONEND package_name;允許定義的規(guī)范內(nèi)容包規(guī)范的創(chuàng)建創(chuàng)建包的規(guī)范-創(chuàng)建包頭-create or replace package emp_package as-聲明存儲過程,用于插入一條記錄- procedure my_proc( lend_num varchar2, lend_name varchar2, ledn_sex varchar2, major varchar2);end emp_package; 定義包頭在包內(nèi)定義存儲過程包頭結(jié)束包體的創(chuàng)建創(chuàng)建
10、包的主體CREATE OR REPLACE PACKAGE BODY package_name AUTHID USER | DEFINER IS | ASPRAGMA SERIALLY_REUSABLE;COLLECTION _TYPE_DEFINITIONRECORD_TYPE_DEFINITIONSUBTYPE_DEFINITIONCOLLECTION_DECLARATIONCONSTANT_DECLARATIONEXCEPTION_DECLARATIONVARIABLE_DECLARATION CURSOR_DECLARATION FUNCTION_DECLARATIONPROCEDUR
11、E_DECLARATIONBEGIN statementsEND package_name; 使用BODY標(biāo)識包體對包頭的實現(xiàn)包體的創(chuàng)建創(chuàng)建包的主體-創(chuàng)建包體-create or replace package body emp_package as-存儲過程的實現(xiàn)-procedure my_proc( lend_num varchar2, lend_name varchar2, lend_sex varchar2, major varchar2) is begin insert into emp(lnum,lname,lsex,major)values (lend_num,lend_name
12、,lend_sex,major); end my_proc;end emp_package對包頭內(nèi)定義的過程具體實現(xiàn)包的調(diào)用包的調(diào)用使用包名作為前綴,對包中的對象進(jìn)行調(diào)用package_name.type_name;BEGIN emp_package.my_proc(1010,Loader,male,music);END;調(diào)用emp_package包中的存儲過程Oracle的內(nèi)置包Oracle內(nèi)置的包 包名稱說明DBMS_ALERT用于數(shù)據(jù)庫報警,允許會話間通信DBMS_JOB用于任務(wù)調(diào)度服務(wù)DBMS_LOB用于大對象類型操作DBMS_PIPE用于數(shù)據(jù)庫管道,允許會話間通信DBMS_SQL用于
13、執(zhí)行動態(tài)SQLDBMS_FILE用于文本文件的輸入與輸出練習(xí)編寫過程實現(xiàn)插入數(shù)據(jù)需求說明:新北汽車4S店新到一批進(jìn)口汽車,為了便于管理,要求編寫并創(chuàng)建過程,實現(xiàn)向數(shù)據(jù)庫插入新車信息數(shù)據(jù)數(shù)據(jù)庫表字段要求車型系列排量價格出廠年份車身編號完成時間:20分鐘練習(xí)編寫函數(shù)實現(xiàn)插入數(shù)據(jù)需求說明:修改前一個練習(xí)代碼,使用函數(shù)實現(xiàn)相同功能實現(xiàn)思路:編寫函數(shù),其參數(shù)與車輛信息相對應(yīng)調(diào)用函數(shù)時,一并將車輛信息傳遞將影響的行數(shù)作為函數(shù)返回值完成時間:10分鐘練習(xí)使用包實現(xiàn)數(shù)據(jù)插入需求說明:編寫一個包,分別包含前兩個練習(xí)的過程和函數(shù),通過調(diào)用包實現(xiàn)向數(shù)據(jù)庫插入記錄的功能實現(xiàn)思路:首先定義包的規(guī)范在包的規(guī)范中定義過程和
14、函數(shù)在包體內(nèi)分別具體實現(xiàn)過程和函數(shù)完成時間:15分鐘共性問題集中講解常見調(diào)試問題及解決辦法代碼規(guī)范問題共性問題集中講解視圖視圖的特點是一個數(shù)據(jù)庫中虛擬的表經(jīng)過查詢操作形成的結(jié)果具有普通表的結(jié)構(gòu)不能實現(xiàn)數(shù)據(jù)的存儲對視圖的修改將會影響實際的數(shù)據(jù)表視圖的應(yīng)用創(chuàng)建視圖VIEW:用于創(chuàng)建視圖CHECK POINT:必須要滿足的視圖的約束刪除視圖CREATE OR REPLACE VIEW view_name AS WITH CHECK OPTION DROP VIEW view_name視圖的應(yīng)用通過視圖查詢學(xué)生信息創(chuàng)建視圖從視圖中讀取數(shù)據(jù)刪除視圖-創(chuàng)建視圖-create or replace view
15、 v_student as select * from students ;-從視圖中檢索數(shù)據(jù)-select * from v_student;-刪除視圖-DROP VIEW v_student;序列序列的概念是一個數(shù)據(jù)庫的內(nèi)置對象產(chǎn)生一系列唯一的數(shù)值序列的作用實現(xiàn)類似SQL Server中主鍵自增的效果序列的應(yīng)用序列的創(chuàng)建序列的修改CREATE SEQUENCE seq_name increment by n start with n maxvalue n | nomaxvalue minvalue n | nominvalue ;SEQUENCE聲明序列-修改序列ALTER SEQUENC
16、E seq_name increment by n maxvalue n | nomaxvalue minvalue n | nominvalue ;使用ALTER修改序列序列的應(yīng)用序列的刪除序列的調(diào)用DROP SEQUENCE seq_name- 創(chuàng)建序列-create sequence seq_IDminvalue 1maxvalue 1000start with 1increment by 1cache 20;-查看未生成新序列之前的id-select id from test;-調(diào)用序列-insert INTO test (id) values(seq_id.nextval);-查看產(chǎn)
17、生的序列-select id from test;創(chuàng)建一個名稱為seq_ID的序列調(diào)用nextval獲取序列生成的數(shù)值數(shù)據(jù)庫鏈?zhǔn)裁词菙?shù)據(jù)庫鏈?zhǔn)且粋€建立在本地的路徑用于方便地實現(xiàn)不同數(shù)據(jù)庫之間的通信數(shù)據(jù)庫鏈?zhǔn)裁词菙?shù)據(jù)庫鏈?zhǔn)且粋€建立在本地的路徑用于方便地實現(xiàn)不同數(shù)據(jù)庫之間的通信數(shù)據(jù)庫鏈的創(chuàng)建DATABASE LINK:表示創(chuàng)建數(shù)據(jù)庫鏈SERVERNAME/SERVERURL:表示在連接時使用的服務(wù)名或者包含服務(wù)完整信息的路徑CREATE PUBLIC DATABASE LINK link_nameCONNECT TO username IDENTIFIED BY passwordUSING SER
18、VERNAME / SERVERURL;數(shù)據(jù)庫鏈的使用調(diào)用數(shù)據(jù)庫鏈數(shù)據(jù)庫鏈的創(chuàng)建 -創(chuàng)建名稱為link_goods 的數(shù)據(jù)庫鏈- create database link link_goods connect to jbit identified by bdqn using (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.34)(PORT = 1521) (CONNECT_DATA =(SERVICE_NAME = prd34) ); -訪問數(shù)據(jù)庫鏈 - select * from goodslink_goodsselect * from tablenamelink_name使用遠(yuǎn)程數(shù)據(jù)庫完整路徑創(chuàng)建
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全新公司合同擔(dān)保協(xié)議下載
- 借貸居間合同
- 食品檢測服務(wù)合同
- 吊車施工合同
- 個人借款給企業(yè)的合同范文
- 污水處理廠運(yùn)維合同履約承諾書
- 基于線性材料插值的超彈性結(jié)構(gòu)拓?fù)鋬?yōu)化方法研究
- 多參量智能光纖傳感系統(tǒng)研究
- 列車軸裝通風(fēng)式制動盤流量特性的數(shù)值研究
- 開放世界中的目標(biāo)感知與多任務(wù)決策方法研究
- 高考模擬作文“文化自信:春節(jié)走向世界”導(dǎo)寫+范文3篇
- 蘇教版三年級下冊數(shù)學(xué)計算能手1000題帶答案
- 改善護(hù)理服務(wù)行動計劃總結(jié)報告
- 湖南汽車工程職業(yè)學(xué)院單招職業(yè)技能測試參考試題庫(含答案)
- 第2課+古代希臘羅馬(教學(xué)設(shè)計)-【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 中儲糧蘭州公司考試筆試題庫
- 焊接機(jī)器人在汽車制造中應(yīng)用案例分析報告
- 重建成長型思維課件
- 電捕焦油器火災(zāi)爆炸事故分析
- 質(zhì)量問題分析及措施報告
- 汽修廠安全風(fēng)險分級管控清單
評論
0/150
提交評論