freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

oracle3968607246-文庫吧在線文庫

2025-02-14 09:42上一頁面

下一頁面
  

【正文】 o=p_empno。 RETURN v_returnvalue。 END LOOP。 【例】 用 PL/SQL塊調(diào)用 SQLDECLARE 2 v_pwd %TYPE。 ? 過程與函數(shù)比較 1. 通過設(shè)置 OUT參數(shù),過程和函數(shù)都可以返回一個(gè)以上的值 2. 過程和函數(shù)都具有聲明、執(zhí)行、異常處理部分 3. 都可以使用位置或名稱對應(yīng)調(diào)用過程和函數(shù) 4. 函數(shù)可以在表達(dá)式和 SQL語句中調(diào)用,過程不行 一般來說:返回一個(gè)值用函數(shù),一個(gè)以上用過程 子程序和包 包的概念 包的聲明 包體 重載封裝子程序 包的管理 系統(tǒng)預(yù)定義包 2/27/2023 Oracle 10g管理及應(yīng)用 包的概念 在 Oracle中,對于邏輯上相關(guān)的類型、變量及子程序等可以集成在一起,組成命名的 PL/SQL程序塊,這種特殊的程序塊稱為包。 包的聲明 (續(xù) ) 【例】創(chuàng)建包頭,它包含有關(guān)包的內(nèi)容信息。 解雇員工子程序引起的異常定義 e_employeenothired EXCEPTION。 所有類型元素不必都出現(xiàn)。 Check to see if the DELETE operatiojn was successful. If it didn’ t match any an error. IF SQL%NOTFOUND THEN RAISE e_employeenothired。 CURSOR c_departments IS SELECT deptno FROM dept。 END departmentlist。39。對包 FireEmployeePackage修改如下: CREATE OR REPLACE PACKAGE FireEmployeePackage AS 解雇雇員子程序引起的異常定義 e_EmployeeNotHired EXCEPTION。 重載封裝子程序 (續(xù) ) 根據(jù)雇員姓名刪除員工子程序代碼 PROCEDURE FireEmployee(p_eName,%TYPE)IS BEGIN DELETE FROM emp WHERE ename=p_Ename。 ? 僅兩個(gè)子程序的返回類型不同,則不能重載 PROCEDURE overloadMeToo RETURN DATE。 ?調(diào)用程序包中的過程 方案名 .程序包名 .過程名 ?調(diào)用程序包中的函數(shù): 方案名 .程序包名 .過程名 【例】調(diào)用 UserMan方案下的 MyPack包中 GetPwd函數(shù),返回指定用戶的密碼信息 : SET ServerOutput ON。 ?DROP PACKAGE BODY命令刪除程序包體 : DROP PACKAGE BODY 。 2/27/2023 Oracle 10g管理及應(yīng)用 概述(續(xù)) 使用觸發(fā)器時(shí)要注意: ( 1)觸發(fā)器與過程、函數(shù)有所不同,不能接受參數(shù),不能顯式調(diào)用。 ?觸發(fā)器不返回結(jié)果集,與存儲過程一樣。系統(tǒng)觸發(fā)器有兩種不同觸發(fā)事件,即 DDL( CREATE、 ALTER、 DROP)或數(shù)據(jù)庫( LOGON、LOGOFF、 SERVERERROR、 STARTUP和SHUTDOWN等)。 [EXCEPTIOIN 異常處理代碼 。SUN39。 創(chuàng)建及使用觸發(fā)器 (續(xù) ) ? 測試語句觸發(fā)器 SQLUPDATE emp SET sal=sal* WHERE deptno=10。 ERROR 位于第 1 行 : ORA20230:工資只漲不降 ORA06512: 在 , line 4 ORA04088: 觸發(fā)器 39。 觸發(fā)器的主要作用是能夠?qū)崿F(xiàn)由主鍵和外鍵所不能保證的復(fù)雜的參照完整性和數(shù)據(jù)的一致性,實(shí)現(xiàn)比 CHECK約束更復(fù)雜的數(shù)據(jù)完整性。 創(chuàng)建及使用觸發(fā)器 (續(xù)) ? 刪除 Trigger Drop Trigger Trigger_nam SQLDrop Trigger secure_emp。 ? : OLD 標(biāo)識舊數(shù)據(jù)(在內(nèi)存表中偽記錄行) ? : NEW 標(biāo)識新數(shù)據(jù)(在內(nèi)存表中偽記錄行) 例:為數(shù)據(jù)符合商業(yè)邏輯或企業(yè)規(guī)則,需要使用約束對輸入數(shù)據(jù)限制,下面以確保員工工資不低于其原有工資為例, 創(chuàng)建及使用觸發(fā)器 (續(xù) ) CREATE OR REPLACE TRIGGER emp_sal BEFORE UPDATE OF sal ON emp FOR EACH ROW BEGIN IF :: THEN raise_application_error(20230,’工資只漲不降’ )。不能在休息日或時(shí)間改變雇員信息 39。DY39。 2) 行觸發(fā)器 對發(fā)生一次 DML操作 ,則在每個(gè)被作用行上都會執(zhí)行一次觸發(fā)器代碼 .也就是說 , DML操作影響到多行數(shù)據(jù),觸發(fā)器就要執(zhí)行多次觸發(fā)器代碼。 2) INSTEADOF觸發(fā)器 只能定義在試圖上,與DML觸發(fā)器不同,當(dāng)觸發(fā)器執(zhí)行時(shí),激發(fā)它的DML語句不執(zhí)行。 ( 5)觸發(fā)器大小不能超過 32KB,否則可設(shè)計(jì)合適的存儲過程替代觸發(fā)器或在觸發(fā)器代碼中調(diào)用存儲過程。 ( 2)實(shí)現(xiàn)比 CHECK約束更復(fù)雜的數(shù)據(jù)完整性。)。 包管理 ?包的作用域 包頭中聲明的任何對象都是全局的,可以在包體外部引用它們。 重載封裝子程序 (續(xù) ) 刪除雇員編號 7973和雇員姓名為 Lilly 的兩名員工: BEGIN (7939)。 BEGIN DELETE FROM emp WHERE empno=p_empno。 END。 WHERE UserId = UserId。 EXIT WHEN c_departments%NOTFOUND。 BEGIN SELECT COUNT(*) INTO num FROM emp WHERE deptno=p_deptno。 CREATE OR REPLACE PACKGAE BODY employeepackage AS 游標(biāo)定義 CURSOR order_sal RETURN emprectype IS SELECT empno,sal FROM emp ORDER BY sal。 / 包的聲明 (續(xù) ) 【例】下面介紹一個(gè)示例創(chuàng)建程序包 MyPack,它包含前面 2小節(jié)中的過程 ResetPwd和函數(shù) GetPwd: CREATE OR REPLACE PACKAGE IS PROCEDURE ResetPwd ( UserId IN NUMBER)。 TYPE t_departmentnotable IS TABLE OF %TYPE INDEX BY BINARY_INTEGER。在包中所有的子程序和游標(biāo)等必須在包頭中進(jìn)行聲明,然后,再在包體中使用。能再賦值 ,該值只讀不能修改,調(diào)用結(jié)束時(shí) 返回調(diào)用環(huán)境,實(shí)參沒有改變。 RETURN outpwd。 END taxinfo。 RETURN v_returnvalue。 函數(shù) (續(xù) ) ?CREATE FUNCTION語句來創(chuàng)建函數(shù): CREATE [ OR REPLACE ] FUNCTION 函數(shù)名 [( 參數(shù)名 [ IN | OUT | IN OUT ]數(shù)據(jù)類型 , … 參數(shù)名 [ IN | OUT | IN OUT ]數(shù)據(jù)類型 )] [ RETURN 函數(shù)返回值的類型 ] IS | AS [ 局部變量聲明 ] BEGIN 過程體 RETURN 函數(shù)返回值 END [ 過程名 ]。 DECLARE CURSOR c_employee IS SELECT empno,ename FROM emp。 函數(shù) 【例】編寫一個(gè)員工應(yīng)交的個(gè)人所得稅金的函數(shù),個(gè)人所得稅等于本人工資的 8%。,3000,NULL,20)。 CREATE OR REPLACE PROCEDURE hirenewemployee ( p_empno %TYPE, p_ename %TYPE, p_job %TYPE, p_mgr %TYPE, p_hiredate %TYPE, 過程和函數(shù) (續(xù) ) p_sal %TYPE, p_m %TYPE, p_deptno %TYPE) AS BEGIN INSERT INTO emp(empno,ename,job,mgr, hiredate,sal,m,deptno) VALUES(p_empno,p_ename,p_job,p_mgr, p_hiredate,p_sal,p_m,p_deptno)。 BEGIN FOR emp_record IN sal_cursor(30) LOOP UPDATE emp SET sal=* WHERE CURRENT OF sal_cursor。 游標(biāo) FOR循環(huán) (續(xù) ) 例如:游標(biāo) FOR循環(huán)可以直接使用 SELECT語句。 游標(biāo) FOR循環(huán) (續(xù) ) ?游標(biāo) FOR循環(huán)語法如下: FOR 〈記錄類型變量〉 IN 〈游標(biāo)名〉 LOOP … END LOOP。 DECLARE CURSOR MyCur(varType NUMBER) IS SELECT UserId, UserName FROM Users WHERE UserType = varType。用戶編號 :39。 打開顯示模式 DECLARE 開始聲明部分 /* 聲明記錄類型 */ TYPE User_Record_Type IS RECORD ( UserId %Type, UserName %Type)。 || varName)。 用來保存游標(biāo)中的用戶編號 定義游標(biāo) , varType為參數(shù) , 指定用戶類型編號 CURSOR MyCur(varType NUMBER) IS SELECT UserId, UserName FROM Users WHERE UserType = varType。 || varName)。 保存游標(biāo)中的用戶編號 定義游標(biāo) , varType為參數(shù) , 指定用戶類型編號 CURSOR MyCur(varType NUMBER) IS SELECT UserId, UserName FROM Users WHERE UserType = varType。用戶編號 :39。 DECLARE varName VARCHAR2(50)。 關(guān)閉游標(biāo) (39。其值是 %FOUND屬性值的非。 UPDATE emp SET sal=var_sal* WHERE CURRENT OF sal_cursor。 || varName)。 聲明變量 ,用來保存游標(biāo)中的用戶名 定義游標(biāo) , varType為參數(shù) , 指定用戶類型編號 CURSOR MyCur(varType NUMBER) IS SELECT UserId, UserName FROM Users WHERE UserType = varType。 END LOOP。 游標(biāo)控制語句(續(xù)) 【例】利用游標(biāo)依次檢索 10個(gè)員工的編號和姓名,保存在變量中: SET SERVEROUTPUT ON。 …
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1