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

正文內(nèi)容

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

2025-02-24 20:37 上一頁面

下一頁面
 

【正文】 ? 觸發(fā)器在數(shù)據(jù)庫里以獨立的對象存儲,它與存儲過程不同的是存儲過程通過其它程序來啟動運行或直接啟動運行,而觸發(fā)器是由一個事件來啟動運行,觸發(fā)器是當(dāng)某個事件發(fā)生時自動地隱式運行,并且觸發(fā)器不能接收參數(shù)。 ? 替代觸發(fā)器 ? 在 Oracle里,不能直接對由兩個以上的表建立的視圖進行操作,所以給出了替代觸發(fā)器。 DML觸發(fā)器 ? 建立 BEFORE語句觸發(fā)器 ? 【例 3 30】 建立一個行級觸發(fā)器,當(dāng)選課表被刪除一條記錄時,把被刪除記錄寫到選課表刪除日志表中去。 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語句觸發(fā)器 ? 參照完整性是指若兩個表之間具有主從關(guān)系,當(dāng)刪除主表數(shù)據(jù)時,必須確保相關(guān)的從表數(shù)據(jù)已經(jīng)被刪除; ? 當(dāng)修改主表的主鍵列數(shù)據(jù)時,必須確保相關(guān)從表數(shù)據(jù)已經(jīng)被修改。 ? 若刪除學(xué)生主表中學(xué)號為’ 20236101’,則從表 SC1中相關(guān)的數(shù)據(jù)也被刪除。 ? 【例 332】當(dāng) DEPT表的 deptno發(fā)生變化時, EMP表的相關(guān)行也要跟著進行適當(dāng)?shù)男薷摹? ? 當(dāng)編寫 P L / S Q L 應(yīng)用程序時 , 只能直接嵌入SELECT語句 、 DML語句和事務(wù)控制語句 , 不能直接嵌入 DDL語句和 DCL語句 。 ? 異常情況處理 (EXCEPTION)是用來處理正常執(zhí)行過程中未預(yù)料的事件 , 包括預(yù)定義的錯誤和自定義錯誤 。 ? Oracle編寫的程序一般分為存儲過程和函數(shù) , 都存放在 Oracle數(shù)據(jù)庫字典中 。 ? 在 Oracle里 , 觸發(fā)器事件指的是對數(shù)據(jù)庫的表進行的 INSERT、 UPDATE及 DELETE操作或?qū)σ晥D進行類似的操作 。 ? 觸發(fā)器在數(shù)據(jù)庫里以獨立的對象存儲 , 它與存儲過程不同的是 , 存儲過程通過其它程序來啟動運行或直接啟動運行 , 而觸發(fā)器是由一個事件來啟動運行 。 有兩種類型的異常情態(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 提供三個參數(shù) INSERTING, UPDATEING,DELETING 用于判斷觸發(fā)了哪些操作。a0339。 6 end。 表已創(chuàng)建。 ? 管理觸發(fā)器 ? Oracle 提供了顯示觸發(fā)器信息、禁止觸發(fā)器 和激活觸發(fā)器等功能。 ? 在 Oracle里,觸發(fā)器事件指的是對數(shù)據(jù)庫的表進行的 INSERT、UPDATE及 DELETE操作或?qū)σ晥D進行類似的操作。 過程和函數(shù)的優(yōu)點 3. 9 觸發(fā)器 ? 觸發(fā)器是許多關(guān)系數(shù)據(jù)庫系統(tǒng)都提供的一項技術(shù)。 PL/SQL 過程已成功完成。2023612139。 15 / ? ( 3)進行授權(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)建存儲過程的權(quán)限。 SQL grant select,insert,update,delete ON student to personal。 ? GRANT語法: 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。用戶對其所擁有的對象可以進行任何操作,其他用戶在被授予了合適的權(quán)限以后也可以訪問這些對象。學(xué)號不存在 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ù)時,通過使用輸入?yún)?shù),可以將應(yīng)用程序的數(shù)據(jù)傳遞到函數(shù)中,最終通過執(zhí)行函數(shù)可以將結(jié)果返回到應(yīng)用程序中。 5 BEGIN 6 select username into v_user from user_users。與存儲過程不同的是函數(shù)必須返回某些值,而存儲過程可以不返回任何值。||v_phone_no。539。轉(zhuǎn)換規(guī)則:第一個數(shù)字為 2,前面加上 5 ,其余的加上 6。 14 / ? 建立帶 IN OUT參數(shù)的存儲過程 ? 定義過程時,不僅可以指定 IN和 OUT參數(shù),也可以指定IN OUT參數(shù)。 10 EXCEPTION 11 WHEN no_data_found THEN 12 RAISE_APPLICATION_ERROR(20230,39。)。學(xué)號與課程號不能重復(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。課程號 學(xué)號 成績 39。 ? 當(dāng)使用游標(biāo)開發(fā) PL/SQL 應(yīng)用程序時,為了簡化程序代碼,建議大家使用游標(biāo) FOR循環(huán)。語法如下: 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)一個 DML語句執(zhí)行時, PL/SQL內(nèi)部打開一個游標(biāo),語句的結(jié)果被保存在 4個游標(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 語句) SQL set serveroutput on SQL declare
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1