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

正文內(nèi)容

oracle數(shù)據(jù)庫(kù)實(shí)用教程第三章 pl/sql程序設(shè)計(jì)(文件)

 

【正文】 ? 觸發(fā)器在數(shù)據(jù)庫(kù)里以獨(dú)立的對(duì)象存儲(chǔ),它與存儲(chǔ)過程不同的是存儲(chǔ)過程通過其它程序來啟動(dòng)運(yùn)行或直接啟動(dòng)運(yùn)行,而觸發(fā)器是由一個(gè)事件來啟動(dòng)運(yùn)行,觸發(fā)器是當(dāng)某個(gè)事件發(fā)生時(shí)自動(dòng)地隱式運(yùn)行,并且觸發(fā)器不能接收參數(shù)。 ? 替代觸發(fā)器 ? 在 Oracle里,不能直接對(duì)由兩個(gè)以上的表建立的視圖進(jìn)行操作,所以給出了替代觸發(fā)器。 DML觸發(fā)器 ? 建立 BEFORE語(yǔ)句觸發(fā)器 ? 【例 3 30】 建立一個(gè)行級(jí)觸發(fā)器,當(dāng)選課表被刪除一條記錄時(shí),把被刪除記錄寫到選課表刪除日志表中去。 SQL create or replace trigger 2 before delete on for each row 3 begin 4 將修改前數(shù)據(jù)插入到日志記錄表 del_emp, 以供監(jiān)督使用。2023610239。 SQL select * from sc_his。 SQL create or replace trigger tri_emp 2 before insert or update or delete on emp 3 begin 4 if to_char(sysdate,39。) IN (39。) then 5 case 6 when inserting then 7 raise_application_error(20231,39。不能在休息日更新雇員 39。)。 15 / ? 建立 AFTER語(yǔ)句觸發(fā)器 ? 參照完整性是指若兩個(gè)表之間具有主從關(guān)系,當(dāng)刪除主表數(shù)據(jù)時(shí),必須確保相關(guān)的從表數(shù)據(jù)已經(jīng)被刪除; ? 當(dāng)修改主表的主鍵列數(shù)據(jù)時(shí),必須確保相關(guān)從表數(shù)據(jù)已經(jīng)被修改。 ? 若刪除學(xué)生主表中學(xué)號(hào)為’ 20236101’,則從表 SC1中相關(guān)的數(shù)據(jù)也被刪除。 ? 【例 332】當(dāng) DEPT表的 deptno發(fā)生變化時(shí), EMP表的相關(guān)行也要跟著進(jìn)行適當(dāng)?shù)男薷摹? ? 當(dāng)編寫 P L / S Q L 應(yīng)用程序時(shí) , 只能直接嵌入SELECT語(yǔ)句 、 DML語(yǔ)句和事務(wù)控制語(yǔ)句 , 不能直接嵌入 DDL語(yǔ)句和 DCL語(yǔ)句 。 ? 異常情況處理 (EXCEPTION)是用來處理正常執(zhí)行過程中未預(yù)料的事件 , 包括預(yù)定義的錯(cuò)誤和自定義錯(cuò)誤 。 ? Oracle編寫的程序一般分為存儲(chǔ)過程和函數(shù) , 都存放在 Oracle數(shù)據(jù)庫(kù)字典中 。 ? 在 Oracle里 , 觸發(fā)器事件指的是對(duì)數(shù)據(jù)庫(kù)的表進(jìn)行的 INSERT、 UPDATE及 DELETE操作或?qū)σ晥D進(jìn)行類似的操作 。 ? 觸發(fā)器在數(shù)據(jù)庫(kù)里以獨(dú)立的對(duì)象存儲(chǔ) , 它與存儲(chǔ)過程不同的是 , 存儲(chǔ)過程通過其它程序來啟動(dòng)運(yùn)行或直接啟動(dòng)運(yùn)行 , 而觸發(fā)器是由一個(gè)事件來啟動(dòng)運(yùn)行 。 有兩種類型的異常情態(tài):用戶定義 (user_define) 和預(yù)定義 ( predefined )。 ? 為了讓 PL/SQL中變量的類型和數(shù)據(jù)表中的字段的數(shù)據(jù)類型一致 , Oracle 9i提供了 %type定義方法 。 8 end。2023610139。 SQL create table SC1( 2 Stu_no char(8) , 3 Cou_no char(3), 4 Grade number(3), 5 CONSTRAINT pk_sc1 PRIMARY KEY (Stu_no,Cou_no), 6 foreign key(Stu_no) references Student(Stu_no) 7 on delete cascade, 8 foreign key(Cou_no) references Course(Cou_no) 9 on delete cascade, 10 check ((grade is null) or (grade between 0 and 100)))。 13 end if。 10 when deleting then 11 raise_application_error(20231,39。)。,39。,39。 ? 使用條件謂詞 ? ORACLE 提供三個(gè)參數(shù) INSERTING, UPDATEING,DELETING 用于判斷觸發(fā)了哪些操作。a0339。 6 end。 表已創(chuàng)建。 ? 管理觸發(fā)器 ? Oracle 提供了顯示觸發(fā)器信息、禁止觸發(fā)器 和激活觸發(fā)器等功能。 ? 在 Oracle里,觸發(fā)器事件指的是對(duì)數(shù)據(jù)庫(kù)的表進(jìn)行的 INSERT、UPDATE及 DELETE操作或?qū)σ晥D進(jìn)行類似的操作。 過程和函數(shù)的優(yōu)點(diǎn) 3. 9 觸發(fā)器 ? 觸發(fā)器是許多關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)都提供的一項(xiàng)技術(shù)。 PL/SQL 過程已成功完成。2023612139。 15 / ? ( 3)進(jìn)行授權(quán) SQL grant execute on add_stu to green。 12 WHEN e_integrity THEN 13 RAISE_APPLICATION_ERROR(20231,39。 6 BEGIN 7 insert into (stu_no,stu_name) 8 values(v_sno,v_sname)。否則 personal用戶沒法創(chuàng)建存儲(chǔ)過程的權(quán)限。 SQL grant select,insert,update,delete ON student to personal。 ? GRANT語(yǔ)法: GRANT system_privilege | role TO user | role | PUBLIC [WITH ADMIN OPTION] GRANT object_privilege | ALL column ON FROM user | role | PUBLIC WITH GRANT OPTION 過程和函數(shù)的安全性 ? 【例 29】假定表 student是用戶 scott的私有表,用戶 personal是開發(fā)者,最終用戶是 green。用戶對(duì)其所擁有的對(duì)象可以進(jìn)行任何操作,其他用戶在被授予了合適的權(quán)限以后也可以訪問這些對(duì)象。學(xué)號(hào)不存在 39。(帶有 OUT參數(shù)) SQL CREATE OR REPLACE FUNCTION get_dept 2 (v_sno IN varchar2, v_name OUT varchar2) 3 return varchar2 4 AS 5 v_sdept %TYPE。)。 6 EGIN 7 select grade into v_grade 8 from sc 9 where stu_no=v_sno and cou_no=v_o。 ? 建立帶 IN參數(shù)的函數(shù) ? 建立函數(shù)時(shí),通過使用輸入?yún)?shù),可以將應(yīng)用程序的數(shù)據(jù)傳遞到函數(shù)中,最終通過執(zhí)行函數(shù)可以將結(jié)果返回到應(yīng)用程序中。 5 BEGIN 6 select username into v_user from user_users。與存儲(chǔ)過程不同的是函數(shù)必須返回某些值,而存儲(chǔ)過程可以不返回任何值。||v_phone_no。539。轉(zhuǎn)換規(guī)則:第一個(gè)數(shù)字為 2,前面加上 5 ,其余的加上 6。 14 / ? 建立帶 IN OUT參數(shù)的存儲(chǔ)過程 ? 定義過程時(shí),不僅可以指定 IN和 OUT參數(shù),也可以指定IN OUT參數(shù)。 10 EXCEPTION 11 WHEN no_data_found THEN 12 RAISE_APPLICATION_ERROR(20230,39。)。學(xué)號(hào)與課程號(hào)不能重復(fù) 39。 SQL CREATE OR REPLACE PROCEDURE add_scv 2 (v_sno %TYPE, v_o %TYPE, v_grade %TYPE) 3 IS 4 e_integrity EXCEPTION。 207月 05 上午 +08:00 調(diào)用完成。在 SQL*Plus環(huán)境中調(diào)用過程有兩種方法 : ? 方法一:使用 execute命令調(diào)用過程 SQL set serveroutput on。 SQL CREATE OR REPLACE PROCEDURE data_time 2 IS 3 BEGIN 4 (systimestamp)。 16 end。||)。 then 10 (||39。課程號(hào) 學(xué)號(hào) 成績(jī) 39。 ? 當(dāng)使用游標(biāo)開發(fā) PL/SQL 應(yīng)用程序時(shí),為了簡(jiǎn)化程序代碼,建議大家使用游標(biāo) FOR循環(huán)。語(yǔ)法如下: FOR record_name IN cursor_name LOOP Ststement1。 9 mit。,39。,39。 SQL BEGIN 2 UPDATE student 3 SET stu_age=19 4 WHERE stu_no=39。 ? 當(dāng)一個(gè) DML語(yǔ)句執(zhí)行時(shí), PL/SQL內(nèi)部打開一個(gè)游標(biāo),語(yǔ)句的結(jié)果被保存在 4個(gè)游標(biāo)屬性中。 15 close stu_cursor。 13 (v_sno||39。 6 begin 7 if not stu_cursor%ISOPEN then 8 open stu_cursor。(使用FETCH….INTO 語(yǔ)句) SQL set serveroutput on SQL declare
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1