【正文】
REPLACE PACKAGE cur_pack IS CURSOR ord_cur(vcode VARCHAR2) RETURN order_master%ROWTYPE。 PROCEDURE ord_pro(vcode VARCHAR2) IS or_rec order_master%ROWTYPE。 (’返回的值為39。END cur_pack。 自定義復(fù)雜的安全權(quán)限252。 觸發(fā)器限制執(zhí)行觸發(fā)器的條件,該條件必須為真才能激活觸發(fā)器252。 (39。l 啟用、禁用和刪除觸發(fā)器ALTER TRIGGER aiu_itemfile disable。 DDL 觸發(fā)器 在模式中執(zhí)行 DDL 語(yǔ)句時(shí)執(zhí)行252。 行級(jí)觸發(fā)器 對(duì)DML語(yǔ)句修改的每個(gè)行執(zhí)行一次252。)。begin select user into opt_user from dual。yyyy/mm/dd hh:mi:ss39。 elsif deleting then (opt_user||39。)||39。在39。已在test_trg中插入數(shù)據(jù)39。. INSTEAD OF 觸發(fā)器INSTEAD OF 觸發(fā)器只能用于視圖。已激活觸發(fā)器39。. 用戶事件觸發(fā)器例如:創(chuàng)建dropped_obj表CREATE TABLE dropped_obj ( obj_name VARCHAR2(30), obj_type VARCHAR2(20), drop_date DATE)。drop view emp_view。 視圖必須不包含GROUP BY子句;252。l 刪除視圖DROP VIEW view_name18.. 從單獨(dú)的表中創(chuàng)建視圖語(yǔ)法:CREATE VIEW view_name AS SELECT * |COL1[,COL2,…] FROM table_name WHERE expression例如: CREATE VIEW emp _ view AS SELECT emp_id,emp_name,phone FROM employee_tbl. 從多表中創(chuàng)建視圖語(yǔ)法:CREATE VIEW VIEW_NAME AS SELECT * |COL1[,COL2,….] FROM TABLE_NAME1,TABLE_NAME2,… WHERE EXPRESSION例如: CREATE VIEW employee_summary AS SELECT , FROM employee_tbl e,employee_pay_tbl p WHERE = . 從視圖中創(chuàng)建視圖語(yǔ)法:CREATE VIEW2 AS SELECT * FROM VIEW1例如: CREATE subsummary AS SELECT * FROM employee_summary19. 索引l 語(yǔ)法:CREATE [UNIQUE] [CLUSTER] INDEX index_name ON table_name(clo_name 升/降序,…...)ASC:升序,DESC:降序UNIQUE 每一個(gè)索引只對(duì)應(yīng)唯一的數(shù)據(jù)記錄;CLUSTER 聚簇索引,是指索引項(xiàng)的順序與表中記錄的物理順序一致的索引組織。INCREMENT BY: 指定序列號(hào)之間的間隔,該值可為正的或負(fù)的整數(shù),但不可為0。在升序時(shí),序列可從比最小值大的值開(kāi)始,缺省值為序列的最小值。MINVALUE:指定序列的最小值。l SQL中序列的用法SELECT FROM dualSELECT FROM dual21. 同義詞19.20.21.. 概念Oracle數(shù)據(jù)庫(kù)中提供了同義詞管理的功能。在Oracle數(shù)據(jù)庫(kù)中的大部分?jǐn)?shù)據(jù)庫(kù)對(duì)象,如表、視圖、同義詞、序列、存儲(chǔ)過(guò)程、包等等,數(shù)據(jù)庫(kù)管理員都可以根據(jù)實(shí)際情況為他們定義同義詞。公用同義詞往往用來(lái)標(biāo)示一些比較普通的數(shù)據(jù)庫(kù)對(duì)象,這些對(duì)象往往大家都需要引用。刪除公有Oracle同義詞的語(yǔ)法:Drop [public] synonym 同義詞名稱. 作用l 多用戶協(xié)同開(kāi)發(fā)中,可以屏蔽對(duì)象的名字及其持有者。 l 為分布式數(shù)據(jù)庫(kù)的遠(yuǎn)程對(duì)象提供位置透明性。同義詞在數(shù)據(jù)庫(kù)鏈中的作用就是提供位置透明性。例如:,該文件存放的位置為:$ORACLE_HOME/network/admin/在其中加入被叫數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)信息tzinfo = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = tzinfo) ) )然后建立數(shù)據(jù)庫(kù)鏈create database link mylink1 connect to scott identified by tiger using 39。l 未配置本地服務(wù)create database link linkname connect to dbuser identified by dbpassword using 39。 select *from logsmylink2。其中l(wèi)inkname 是數(shù)據(jù)鏈名稱,dbuser登陸用戶名,dbpassword 登陸密碼,HOST= 對(duì)方ip,PORT =端口,SERVICE_NAME=數(shù)據(jù)庫(kù)的sid例如:create public database link mylink2connect to scott identified by tiger using 39。 。22.. 創(chuàng)建數(shù)據(jù)鏈l 已配置本地服務(wù)create public database link DBLink名稱connect to 被連接庫(kù)的用戶名identified by 被連接庫(kù)的密碼 using 39。Create database link 數(shù)據(jù)庫(kù)鏈名connect to user名identified by 口令using ‘Oracle連接串’。 l 為用戶簡(jiǎn)化sql語(yǔ)句。當(dāng)然,這個(gè)同義詞的創(chuàng)建者,可以通過(guò)授權(quán)控制其他用戶是否有權(quán)使用屬于自己的私有同義詞。l 公用Oracle同義詞:由一個(gè)特殊的用戶組Public所擁有。在使用同義詞時(shí),Oracle數(shù)據(jù)庫(kù)將它翻譯成對(duì)應(yīng)方案對(duì)象的名字。為降序指定最小值為1026。MAXVALUE:指定序列可生成的最大值。忽略該子句時(shí),缺省值為1。一般使用序列自動(dòng)地生成主碼值。 不能使用DISTINCT子句;252。l 基本語(yǔ)法:CREATE VIEW view_name ASSELECT STATEMENT[WITH CHECK OPTION]l 視圖的查詢對(duì)視圖的查詢與對(duì)基本表查詢一樣l 視圖的更新對(duì)視圖的更新最終要轉(zhuǎn)換成對(duì)基本表的更新視圖更新條件:252。END。END。創(chuàng)建觸發(fā)器CREATE OR REPLACE TRIGGER emp_view_trg INSTEAD OF UPDATE ON emp_view FOR EACH ROWBEGIN UPDATE emp_view SET name=: WHERE id = :。 end if。yyyy/mm/dd hh:mi:ss39。)。||to_char(sysdate,39。已更新test_trg中的數(shù)據(jù)39。在39。end。 else raise_application_error(20020,39。 DML 觸發(fā)器 在對(duì)表或視圖執(zhí)行DML語(yǔ)句時(shí)執(zhí)行252。DROP TRIGGER aiu_itemfile。||sal_diff)。l 例如create or replace trigger trig_sal after update of sal on emp1 for each row when()declare sal_diff number。 啟用復(fù)雜的業(yè)務(wù)邏輯l 觸發(fā)器由三部分組成:252。l 特定事件可以是執(zhí)行更新的DML語(yǔ)句和DDL語(yǔ)句l 觸發(fā)器不能被顯式調(diào)用l 觸發(fā)器的功能:252。 END LOOP。 LOOP FETCH ord_cur INTO or_rec。END cur_pack。 RETURN子句指定的數(shù)據(jù)類型可以是:178。 游標(biāo)的定義分為游標(biāo)規(guī)范和游標(biāo)主體兩部分。\(^o^)/~39。 end print_str。 end print。end my_package。l 語(yǔ)法:程序包規(guī)范:CREATE [OR REPLACE]PACKAGE package_name IS|AS[Public item declarations][Subprogram specification]END [package_name]。16. 程序包l 程序包是對(duì)相關(guān)過(guò)程、函數(shù)、變量、游標(biāo)和異常等對(duì)象的封裝。哈哈~39。 形參不能是 PL/SQL 類型252。EXCEPTION Exception handlers。 end。||a)。||b)。a=39。end。過(guò)程參數(shù)的三種模式:IN用于接受調(diào)用程序的值默認(rèn)的參數(shù)模式OUT用于向調(diào)用程序返回值 IN OUT用于接受調(diào)用程序的值,并向調(diào)用程序返回更新的值例如:create or replace procedureswap(temp1 in out number,temp2 in out number)istemp number。exception WHEN NO_DATA_FOUND THEN (39。創(chuàng)建過(guò)程的語(yǔ)法:創(chuàng)建過(guò)程,可指定運(yùn)行過(guò)程需傳遞的參數(shù)CREATE [OR REPLACE] PROCEDURE procedure name [(parameter list)]IS|AS local variable declarationBEGIN包括在過(guò)程中要執(zhí)行的語(yǔ)句 executable statements處理異常(可選)[EXCEPTION exception handlers]END。 close emp_cur。 打開(kāi)動(dòng)態(tài)SQL語(yǔ)句 loop fetch emp_cur into var_emp。例如:declare type my_cur is ref cursor。聲明強(qiáng)類型的 REF 游標(biāo)(有返回值):TYPE my_cur IS REF CURSOR RETURN emp%ROWTYPE。end。語(yǔ)法:FOR record_index IN cursor_nameLOOP executable statementsEND LOOP。 end loop。begin op