日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle PL/SQL語言初級教程之過程和函數(shù)

瀏覽:285日期:2023-11-21 08:19:53
過程和函數(shù) 過程和函數(shù)都以編譯后的形式存放在數(shù)據(jù)庫中,函數(shù)可以沒有參數(shù)也可以有多個參數(shù)并有一個返回值。過程有零個或多個參數(shù),沒有返回值。函數(shù)和過程都可以通過參數(shù)列表接收或返回零個或多個值,函數(shù)和過程的主要區(qū)別不在于返回值,而在于他們的調(diào)用方式。過程是作為一個獨立執(zhí)行語句調(diào)用的:pay_involume(invoice_nbr,30,due_date);函數(shù)以合法的表達(dá)式的方式調(diào)用:order_volumn:=open_orders(SYSDATE,30);創(chuàng)建過程的語法如下:CREATE [ OR REPLACE] PROCEDURE [schema.]procedure_name[parameter_lister]{ASIS}declaration_sectionBEGINexecutable_section[EXCEPTIONexception_section]END [procedure_name] 每個參數(shù)的語法如下:paramter_name mode datatype [(:=DEFAULT) value]mode有三種形式:IN、OUT、INOUT。IN表示在調(diào)用過程的時候,實際參數(shù)的取值被傳遞給該過程,形式參數(shù)被認(rèn)為是只讀的,當(dāng)過程結(jié)束時,控制會返回控制環(huán)境,實際參數(shù)的值不會改變。OUT在調(diào)用過程時實際參數(shù)的取值都將被忽略,在過程內(nèi)部形式參數(shù)只能是被賦值,而不能從中讀取數(shù)據(jù),在過程結(jié)束后形式參數(shù)的內(nèi)容將被賦予實際參數(shù)。INOUT這種模式是IN和OUT的組合;在過程內(nèi)部實際參數(shù)的值會傳遞給形式參數(shù),形勢參數(shù)的值可讀也可寫,過程結(jié)束后,形勢參數(shù)的值將賦予實際參數(shù)。創(chuàng)建函數(shù)的語法和過程的語法基本相同,唯一的區(qū)別在于函數(shù)有RETUREN子句CREATE [ OR REPLACE] FINCTION [schema.]function_name[parameter_list]RETURN returning_datatype{ASIS}declaration_sectionBEGINexecutable_section[EXCEPTION]exception_sectionEND [procedure_name] 在執(zhí)行部分函數(shù)必須有喲個或多個return語句。在創(chuàng)建函數(shù)中可以調(diào)用單行函數(shù)和組函數(shù),例如:CREATE OR REPLACE FUNCTION my_sin(DegreesIn IN NUMBER)RETURN NUMBERIS pi NUMBER=ACOS(-1);RadiansPerDegree NUMBER;BEGINRadiansPerDegree=pi/180;RETURN(SIN(DegreesIn*RadiansPerDegree));END包是一種將過程、函數(shù)和數(shù)據(jù)結(jié)構(gòu)捆綁在一起的容器;包由兩個部分組成:外部可視包規(guī)范,包括函數(shù)頭,過程頭,和外部可視數(shù)據(jù)結(jié)構(gòu);另一部分是包主體(package body),包主體包含了所有被捆綁的過程和函數(shù)的聲明、執(zhí)行、異常處理部分。打包的PL/SQL程序和沒有打包的有很大的差異,包數(shù)據(jù)在用戶的整個會話期間都一直存在,當(dāng)用戶獲得包的執(zhí)行授權(quán)時,就等于獲得包規(guī)范中的所有程序和數(shù)據(jù)結(jié)構(gòu)的權(quán)限。但不能只對包中的某一個函數(shù)或過程進(jìn)行授權(quán)。包可以重載過程和函數(shù),在包內(nèi)可以用同一個名字聲明多個程序,在運(yùn)行時根據(jù)參數(shù)的數(shù)目和數(shù)據(jù)類型調(diào)用正確的程序。創(chuàng)建包必須首先創(chuàng)建包規(guī)范,創(chuàng)建包規(guī)范的語法如下:CREATE [OR REPLACE] PACKAGE package_name{ASIS}public_variable_declarations public_type_declarations public_exception_declarations public_cursor_declarations function_declarations procedure_specificationsEND [package_name]創(chuàng)建包主體使用CREATE PACKAGE BODY語句:CREATE [OR REPLACE] PACKAGE BODY package_name{ASIS}private_variable_declarations private_type_declarations private_exception_declarations private_cursor_declarations function_declarations procedure_specificationsEND [package_name]私有數(shù)據(jù)結(jié)構(gòu)是那些在包主體內(nèi)部,對被調(diào)用程序而言是不可見的。觸發(fā)器(Triggers)觸發(fā)器是一種自動執(zhí)行響應(yīng)數(shù)據(jù)庫變化的程序。可以設(shè)置為在觸發(fā)器事件之前或之后觸發(fā)或執(zhí)行。能夠觸發(fā)觸發(fā)器事件的事件包括下面幾種:DML事件DDL事件數(shù)據(jù)庫事件DML事件觸發(fā)器可以是語句或行級觸發(fā)器。DML語句觸發(fā)器在觸發(fā)語句之前或之后觸發(fā)DML行級觸發(fā)器在語句影響的行變化之前或之后觸發(fā)。用戶可以給單一事件和類型定義多個觸發(fā)器,但沒有任何方法可以增強(qiáng)多觸發(fā)器觸發(fā)的命令。下表列出了用戶可以利用的觸發(fā)器事件:事件觸發(fā)器描述INSERT 當(dāng)向表或視圖插入一行時觸發(fā)觸發(fā)器UPDATE 更新表或視圖中的某一行時觸發(fā)觸發(fā)器DELETE從表或視圖中刪除某一行時觸發(fā)觸發(fā)器CREATE當(dāng)使用CREATE語句為數(shù)據(jù)庫或項目增加一個對象時觸發(fā)觸發(fā)器ALTER當(dāng)使用ALTER語句為更改一個數(shù)據(jù)庫或項目的對象時觸發(fā)觸發(fā)器DROP當(dāng)使用DROP語句刪除一個數(shù)據(jù)庫或項目的對象時觸發(fā)觸發(fā)器START打開數(shù)據(jù)庫時觸發(fā)觸發(fā)器,在事件后觸發(fā)SHUTDOWN 關(guān)閉數(shù)據(jù)庫時觸發(fā),事件前觸發(fā)LOGON當(dāng)一個會話建立時觸發(fā),事件前觸發(fā)LOGOFF當(dāng)關(guān)閉會話時觸發(fā),事件前觸發(fā)SERVER服務(wù)器錯誤發(fā)生時觸發(fā)觸發(fā)器,事件后觸發(fā)創(chuàng)建觸發(fā)器的語法如下:CREATE [OR REPLACE] TRIGGER trigger_name{beforeafterinstead of} eventON {table_or_view_nameDATABASE}[FOR EACH ROW[WHEN condition]]trigger_body只有DML觸發(fā)器(INSERT、UPDATE、DELETE)語句可以使用INSTEAD OF觸發(fā)器并且只有表的DML觸發(fā)器可以是BEFORE或AFTER觸發(fā)器。象約束一樣觸發(fā)器可以被設(shè)置為禁用或啟用來關(guān)閉或打開他們的執(zhí)行體(EXECUTE),將觸發(fā)器設(shè)置為禁用或啟用使用ALTER TRIGGER語句:ALTER TRIGGER trigger_name ENABLE;ALTER TRIGGER trigger_name DISABLE;要禁用或啟用表的所有觸發(fā)器,使用ALTER TABLE語句ALTER TRIGGER table_name DISABLE ALL TRIGGER;ALTER TRIGGER table_name ENABLE ALL TRIGGER;刪除觸發(fā)器使用DROP TRIGGERDROP TRIGGER trigger_name;數(shù)據(jù)字典Oracle數(shù)據(jù)字典包含了用戶數(shù)據(jù)庫的元數(shù)據(jù)。帶下劃線的表名稱中帶OBJ$、UET$、SOURCE$,這些表是在執(zhí)行CREATE DATABASE語句期間由sql.bsq腳本創(chuàng)建的,一般情況下用戶很少訪問這些表。腳本catalog.sql(通常位于$oracle_home/rdbms/admin)在CREATE DATABASE語句之后立即運(yùn)行,創(chuàng)建數(shù)據(jù)字典視圖。數(shù)據(jù)字典視圖大致可以分為三類:.前綴為USER_的數(shù)據(jù)字典視圖,包含了用戶擁有的對象的信息。.前綴為ALL_的數(shù)據(jù)字典視圖,包含了用戶當(dāng)前可以訪問的全部對象和權(quán)限的信息。.前綴為DBA_的數(shù)據(jù)字典視圖,包含了數(shù)據(jù)庫擁有的所有對象和權(quán)限的信息。在絕大多數(shù)數(shù)據(jù)字典視圖中都有象DBA_TABLES,ALL_TABLES和USER_TABLES這樣的視圖家族。Oracle中有超過100個視圖家族,所以要全面介紹這些視圖家族是單調(diào)乏味的而且沒有多大的意義。在下表中列出了最重要和最常用的視圖家族,需要注重的是每個視圖家族都有一個DBA_,一個ALL_一個USER_視圖。視圖家族(View Family)描述COL_PRIVS包含了表的列權(quán)限,包括授予者、被授予者和權(quán)限EXTENTS 數(shù)據(jù)范圍信息,比如數(shù)據(jù)文件,數(shù)據(jù)段名(segment_name)和大小INDEXES索引信息,比如類型、唯一性和被涉及的表IND_COLUMNS 索引列信息,比如索引上的列的排序方式OBJECTS 對象信息,比如狀態(tài)和DDL timeROLE_PRIVS角色權(quán)限,比如GRANT和ADMIN選項SEGMENTS 表和索引的數(shù)據(jù)段信息,比如tablespace和storageSEQUECNCES序列信息,比如序列的cache、cycle和ast_numberSOURCE 除觸發(fā)器之外的所有內(nèi)置過程、函數(shù)、包的源代碼SYNONYMS 別名信息,比如引用的對象和數(shù)據(jù)庫鏈接db_linkSYS_PRIVS 系統(tǒng)權(quán)限,比如grantee、privilege、admin選項TAB_COLUMNS 表和視圖的列信息,包括列的數(shù)據(jù)類型TAB_PRIVS 表權(quán)限,比如授予者、被授予者和權(quán)限TABLES表信息,比如表空間(tablespace),存儲參數(shù)(storage parms)和數(shù)據(jù)行的數(shù)量TRIGGERS 觸發(fā)器信息,比如類型、事件、觸發(fā)體(trigger body)USERS用戶信息,比如臨時的和缺省的表空間VIEWS視圖信息,包括視圖定義在Oracle中還有一些不常用的數(shù)據(jù)字典表,但這些表不是真正的字典家族,他們都是一些重要的單一的視圖。VIEW NAME描述USER_COL_PRIVS_MADE用戶授予他人的列權(quán)限USER_COL_PRIVS_RECD 用戶獲得的列權(quán)限USER_TAB_PRIVS_MADE 用戶授予他人的表權(quán)限USER_TAB_PRIVS_RECD用戶獲得的表權(quán)限其他的字典視圖中主要的是V$視圖,之所以這樣叫是因為他們都是以V$或GV$開頭的。V$視圖是基于X$虛擬視圖的。V$視圖是SYS用戶所擁有的,在缺省狀況下,只有SYS用戶和擁有DBA系統(tǒng)權(quán)限的用戶可以看到所有的視圖,沒有DBA權(quán)限的用戶可以看到USER_和ALL_視圖,但不能看到DBA_視圖。與DBA_,ALL,和USER_視圖中面向數(shù)據(jù)庫信息相反,這些視圖可視的給出了面向?qū)嵗男畔ⅰ? 在大型系統(tǒng)上化幾周時間手工輸入每一條語句 手工輸入帶用戶名變量的語句,然后再輸入每一個用戶名,這需要花好幾個小時的時間 寫一條SQL語句,生成需要的ALTER USER語句,然后執(zhí)行他,這只需要幾分鐘時間很明顯我們將選擇生成SQL的方法:例:SELECT 'ALTER USER'username'TEMPORARY TABLESPACE temp;'FROM DBA_USERSWHERE username<>'SYS' AND temporary_tablespace<>'TEMP';這個查詢的結(jié)果將被脫機(jī)處理到一個文件中,然后在執(zhí)行:ALTER USER SYSTEM TEMPORARY TABLESPACE temp;ALTER USER OUTLN TEMPORARY TABLESPACE temp;ALTER USER DBSNMP TEMPORARY TABLESPACE temp;ALTER USER SCOTT TEMPORARY TABLESPACE temp;ALTER USER DEMO TEMPORARY TABLESPACE temp;
標(biāo)簽: Oracle 數(shù)據(jù)庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
av资源亚洲| 国产精品三p一区二区| 免费精品国产的网站免费观看| 美女久久久久久| 国产伦理一区| 欧美视频精品全部免费观看| 日本a级不卡| 香蕉成人久久| 久久精品国产www456c0m| 香蕉久久精品| 蜜桃tv一区二区三区| 久久蜜桃资源一区二区老牛| 国产精品99一区二区三| 精品精品久久| 国产精品13p| 亚洲成av在线| 欧洲激情综合| 久久亚洲风情| 91欧美极品| 国产精品久久久久久久久久齐齐 | 日韩不卡一区二区| 中文视频一区| 欧美69视频| 国产精品视区| 亚洲人成高清| 91欧美极品| 久久99蜜桃| 国产精品羞羞答答在线观看| 国产精品美女久久久久久不卡| 国产精品永久| 日韩a一区二区| 欧美激情五月| 日韩欧美自拍| 免费在线看一区| 欧美有码在线| 国产成人黄色| 亚洲国产一区二区三区在线播放| 亚洲综合日韩| 国产欧美日韩精品一区二区三区| 国产精品一在线观看| 亚洲女同av| 欧美特黄视频| 日韩美女国产精品| 国产一区精品福利| 麻豆视频在线观看免费网站黄| 日韩精品久久久久久久电影99爱| 免费一二一二在线视频 | 91一区二区| 亚洲永久字幕| 国产精品视频首页| 999精品在线| 日本不卡一二三区黄网| 电影91久久久| 亚洲尤物在线| 国产在线不卡一区二区三区| 99精品99| 国产精品久久久久久久久久白浆| 中文字幕系列一区| 亚洲制服欧美另类| 国产精品激情电影| 欧美日韩国产一区二区三区不卡| 日韩在线视频一区二区三区| 国产一区二区三区久久| 99日韩精品| 乱一区二区av| 亚洲在线电影| 国产一区二区精品久| 伊人久久亚洲美女图片| 国产福利一区二区精品秒拍| 亚洲一级特黄| 国产亚洲高清一区| 好看不卡的中文字幕| 另类综合日韩欧美亚洲| 亚洲激情精品| 久久不卡日韩美女| 欧美日韩四区| 91青青国产在线观看精品| 美国欧美日韩国产在线播放| 97精品在线| 日本aⅴ免费视频一区二区三区| 日韩精品欧美| 免费日韩成人| 蜜桃av一区二区在线观看| 国产高潮在线| 国产欧美一区二区三区国产幕精品| 99精品在线| 毛片不卡一区二区| 蜜臀久久久久久久| 久久人人99| 国产欧美日韩| 天堂va蜜桃一区二区三区| 国产不卡人人| 国产精品一页| 亚洲精品影视| 一区视频在线| 精品欧美一区二区三区在线观看| 日韩高清欧美激情| 国产精品毛片一区二区三区| 在线中文字幕播放| 欧美aⅴ一区二区三区视频| 日韩影片在线观看| 久久国产66| 国产一区观看| 日韩欧美网址| 国产91欧美| 欧美亚洲免费| 石原莉奈一区二区三区在线观看| 久久久国产精品一区二区中文| 麻豆成人91精品二区三区| 日韩精品视频在线看| 午夜亚洲精品| 好吊日精品视频| 欧美成人精品| 在线视频观看日韩| 久久天堂精品| 欧美aa一级| 亚洲精品福利电影| 岛国av在线网站| 久久久久亚洲精品中文字幕| 久久国产视频网| 一区二区国产在线| 美女久久一区| 免费国产亚洲视频| 亚洲在线久久| 日韩精品一级| 日韩av一区二| 91综合久久爱com| 日韩国产一区二| 日本aⅴ亚洲精品中文乱码| 日本一区中文字幕| 日本不卡高清| 日本视频一区二区| 欧美另类中文字幕| 国产乱码精品一区二区亚洲| 欧美久久一区二区三区| 亚洲一二av| 爽好久久久欧美精品| 免费日韩av| 蜜臀av一区二区在线免费观看| 老色鬼久久亚洲一区二区| 蜜臀av在线播放一区二区三区| 亚洲精品免费观看| 欧美日一区二区三区在线观看国产免| 欧美日本久久| 国产三级一区| 精品九九在线| 欧美日韩精品免费观看视欧美高清免费大片 | 国产亚洲一级| 亚洲香蕉久久| 国产精品一区二区三区美女 | 久久婷婷丁香| 欧美女激情福利| 亚洲三级av| 国产乱人伦丫前精品视频| 精品国产欧美日韩| a日韩av网址| 亚洲精品小说| 亚洲乱码视频| 免费在线亚洲欧美| 91精品国产乱码久久久久久久| 亚洲神马久久| 国产精品久久久久久久久久齐齐| 蜜桃精品在线| 蜜臀av在线播放一区二区三区| 国产精品网址| 91精品在线观看国产| 首页亚洲欧美制服丝腿| 国产精品久久亚洲不卡| 视频福利一区| 日韩成人午夜精品| 日韩在线不卡| 中文视频一区| 福利视频一区| 性色一区二区| 精品国产一区二区三区av片| 免费精品国产的网站免费观看| 日日夜夜免费精品视频| 美日韩一区二区三区| 伊人网在线播放| 国产精品毛片在线看| 国产精品久久久久久久久久齐齐 | 韩国三级一区| 99日韩精品| 久久亚洲美女| 精品免费视频| 香蕉国产精品| 蜜桃视频一区二区三区| 国产欧美日韩综合一区在线播放| 国产精品极品在线观看| 卡一卡二国产精品| 中文另类视频| 亚洲专区视频| 麻豆国产精品一区二区三区| 欧美不卡高清| 日韩国产欧美视频| 国产不卡一区| 久久av一区二区三区| 91免费精品国偷自产在线在线| 另类欧美日韩国产在线| 久久国产中文字幕|