乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ORACLE 基礎(chǔ) - xlisan的日志 - 網(wǎng)易博客

       仙人不留果 2010-04-13

      一.Oracle數(shù)據(jù)類型
      1.字符數(shù)據(jù)類型
        .>   char:可以存儲(chǔ)字母數(shù)字值,長(zhǎng)度在1到2000個(gè)字節(jié)。
        .>   varchar2:存儲(chǔ)可變長(zhǎng)度的char類型字符串,大小在1到4000個(gè)字節(jié)范圍內(nèi)。
         .>   long:存儲(chǔ)可變長(zhǎng)度的字符數(shù)據(jù),最多存儲(chǔ)2GB。
       long類型的使用限制:       
       **************************************
       *{
       *..  一個(gè)表中只有一列可以為long數(shù)據(jù)類型。
       *..  long列不能定義為唯一約束或主鍵約束。
       *..  long列上不能建立索引。
       *..  過(guò)程或存儲(chǔ)過(guò)程不能接受long數(shù)據(jù)類型的參數(shù)。
       *}
       ***************************************
      2.數(shù)字?jǐn)?shù)據(jù)類型
      .>   number:存儲(chǔ)正數(shù),負(fù)數(shù),零,定點(diǎn)書和精度為38位的浮點(diǎn)數(shù)。
           number類型的格式:
        number[(p[,s])]
               其中p為精度,表示數(shù)字的總位數(shù); s為范圍,表示小數(shù)點(diǎn)右邊的位數(shù),它在-84至127之間。
      3.日期時(shí)間數(shù)據(jù)類型
      .>   date:存儲(chǔ)表的日期和時(shí)間數(shù)據(jù),使用7個(gè)字節(jié)固定長(zhǎng)度,
          每個(gè)字節(jié)分別存儲(chǔ)世紀(jì),年,月,日,小時(shí),分和秒;值從公元前4712年1月1日到公元9999年12月31日。
          {
             Oracle中的sysdate函數(shù)功能是返回當(dāng)前的日期和時(shí)間。
          }
      .>   timestamp:存儲(chǔ)日期的年,月,日以及時(shí)間的小時(shí),分和秒值。其中秒值精確到小數(shù)點(diǎn)后6位,同時(shí)包含時(shí)區(qū)信息。
          {
             Oracle中的systimestamp函數(shù)功能是返回當(dāng)前日期,時(shí)間和時(shí)區(qū)。
          }
      4.raw和long raw數(shù)據(jù)類型(二進(jìn)制數(shù)據(jù))
      .>  raw: 存儲(chǔ)基于字節(jié)的數(shù)據(jù)。最多存儲(chǔ)2000個(gè)字節(jié),使用需指定大小。raw數(shù)據(jù)類型可以建立索引。
      .>  long raw: 存儲(chǔ)可變長(zhǎng)度的二進(jìn)制數(shù)據(jù)。最多能存儲(chǔ)2GB;不能索引。與long類型的限制同效。
      5.lob數(shù)據(jù)類型('大對(duì)象')
          ***********************************
          * lob類型可以存儲(chǔ)多達(dá)4GB的非結(jié)構(gòu)化信息。
          * Oracle中的表可以有多個(gè)lob列,每個(gè)lob列可以是不同的lob類型。
          ***********************************
      .>  clob: 存儲(chǔ)大量的單字節(jié)字符數(shù)據(jù)和多字節(jié)字符數(shù)據(jù)。例:非結(jié)構(gòu)化的XML文檔。
      .>  blob: 存儲(chǔ)較大的二進(jìn)制對(duì)象。例:圖形,視頻,音頻等。
      .>  bfile: 文件定位器;指向位于服務(wù)器文件系統(tǒng)是的二進(jìn)制文件(存儲(chǔ)一個(gè)文件路徑)。
           -----------------------------------------------------------------------------------------------------------------------
      6.Oracle中偽列
      .> rowid: 返回行地址,可用來(lái)定位表中的一行??梢晕ㄒ坏貥?biāo)識(shí)數(shù)據(jù)庫(kù)中的一行。
       重要的用途
       ****************************
       *..  能一最快的方式訪問(wèn)表中的一行
       *..  能顯示表的行是如何存儲(chǔ)的
       *..  可以作為表中行的唯一標(biāo)識(shí)
       ****************************
      .> rownum: 對(duì)于一個(gè)查詢返回的每一行進(jìn)行標(biāo)識(shí);可用于限制查詢返回的行數(shù)。(不是數(shù)據(jù)表的實(shí)際列)

      二.Oracle中的sql操作符
      .>算數(shù)操作符:
       包括: +(加),-(減),*(乘),/(除)
        *和/具有相同的優(yōu)先級(jí),+和-j具有相同的優(yōu)先級(jí),*和/的優(yōu)先級(jí)高于+和-??捎眯±ㄌ?hào)來(lái)控制計(jì)算順序。
      .>比較操作符:
       包括:=(相等),!=(不相等),<(小于),>(大于),<=(小于等于),>=(大于等于)
             between....and...(檢查是否在兩個(gè)值之間)
             in(與列表中的值相匹配)
             link(匹配字符模式<模糊匹配>)
             is null(檢查是否為空)
      .>邏輯操作符:
       包括:
            and(與),or(或),not(非)
      .>集合操作符:
       包括:
            union(聯(lián)合):返回兩個(gè)查詢選定的所有不重復(fù)的行。
            union all(聯(lián)合所有):合并兩個(gè)查詢選定的所有行,包括重復(fù)的行。
            intersect(交集):返回兩個(gè)查詢共有的行。
                   minux(減集):返回有第一個(gè)查詢選定但是沒(méi)有被第二個(gè)查詢選定的行。
      .>連接操作符:
            || : 將兩個(gè)或多個(gè)字符串合并成一個(gè)字符串,或者將一個(gè)字符串與一個(gè)數(shù)值合并在一起。


      操作符的優(yōu)先級(jí)
      ************************************************
      *算數(shù)操作符  高
      *連接操作符  |
      *比較操作符  |
      *not邏輯操作符  |        
      *and邏輯操作符  |
      *or邏輯操作符           低                              
      ************************************************

      三.SQL函數(shù)
      .>日期函數(shù)
       add_months(d,n)<d是日期,n是月數(shù)>:返回指定日期加上指定月數(shù)后的日期值。
       months_between(d1,d2)<d1,d2都是兩個(gè)日期>:返回兩個(gè)日期之間的月數(shù)。
       last_day(d)<d是日期>:返回指定日期當(dāng)月的最后一天的日期值。
       round(d,[fmt])<d是日期,fmt指定格式模型>:返回日期值,此日期四舍五入為格式模型指定的單位。
         (fmt是一個(gè)選項(xiàng),默認(rèn)舍入為最靠近的那一天。
         如果格式為‘year’則舍入到年的開始,即1月1日;
         如果格式為‘month’則舍入到月的第一天;
         如果格式為‘day’則舍入到最靠近的星期天。
         )    
       next_day(d,day)<d是日期,day指定周內(nèi)任何一天 如‘星期一’>:返回指定的下一個(gè)星期幾的日期。
       trunc(d,[fmt])<d是日期,fmt指定格式模型>:返回日期值,指定日期截?cái)酁楦袷侥P椭付ǖ膯挝坏娜掌凇?br>   (與round函數(shù)類似,不同的是它只舍不入。)
       extract(fmt from d)<fmt指定格式模型,d是日期>:提取日期時(shí)間類型中的特定部分。  
         (fmt取值可以是:year,month,day,hour,minute,second;注意此處的格式不能使用單引號(hào)。)
      .>字符函數(shù)  
       函數(shù)     說(shuō)明  輸入         輸出結(jié)果
       initcp(char)       首字母大寫 select initcap('hell0') from dual     Hello
       lower(char)    轉(zhuǎn)換為小寫 select lower('FUN') from dual      fun
       upper(char)    轉(zhuǎn)換為大寫 select upper('sun') from dual      SUN
       ltrim(char,set)    左剪裁  select ltrim('xyzadams','xyz') from dual    adams
       rtrim(char,set)    右剪裁  select rtrim('xyzadams','ams')from dual            xyzad
       translate(char,from,to)   按字符翻譯 select translate('jack','abcd','1234') from dual   j12k
       peplace(char,search_str,replace_str) 字符串替換 select replace('jack and jue','j','bl') from dual  jack and blue
       instr(char,substr[,pos])  查找子串位置    select instr('worldwide','d') from dual     5 
       substr(char,pos,len)   取子字符串      select substr('abcdefg',3,2) from dual     cd
       concat(char1,char2)   連接字符串      select concat('Hello','world') from dual     Helloworld 
       =================================
       ..  chr(int)<int是ASCII碼>:根據(jù)ASCII碼返回對(duì)應(yīng)的字符。
       ..  lpad(str,int,char)和rpad(str,int,char)<str是源字符串,int指定總長(zhǎng)度,char是填充的字符>:用指定的字符(左|右)填充源字符串到指定長(zhǎng)度。
       ..  trim([[leading|trailing] trim_char] from trim_sourse)<trim_char指定裁剪的字符,trim_sourse是源字符串>
        (
         此函數(shù)組合了ltrim和rtrim的功能。
         leading選項(xiàng)時(shí)與ltrim相似,裁減與trim_char相等的開頭字符。
         trailing選項(xiàng)時(shí)與rtrim相似,裁減與trim_char相等的結(jié)尾字符。
        )
       ..  length(str)<str是字符串>:返回字符串的長(zhǎng)度。
       ..  decode(expr,search1,trsult1,search2,trult2...[,default])<expr是字符變量或數(shù)據(jù)表字段,search是expr的預(yù)期值,trsult是返回值,default是無(wú)匹配是返回的值>
        (
         decode函數(shù)進(jìn)行逐個(gè)值的替換。
        ) 
      .>數(shù)字函數(shù)
       函數(shù)  說(shuō)明  輸入     輸出結(jié)果
       abs(n)  取絕對(duì)值 select abs(-15) from dual  15
       ceil(n)  向上取整 select ceil(44.778) from dual  45
       sin(n)  正弦  select sin(1.571) from dual  0.999999979
       cos(n)  余弦  select cos(0) from dual   1
       sign(n)  取符號(hào)  select sign(-32) from dual  -1
       floor(n) 向下取整 select fllor(100.2) from dual  100
       power(n) m的n次冪 select power(4,2) from dual  16
       mod(m,n) 取余數(shù)  select mod(10,3) from dual  1
       round(m,n) 四舍五入 select round(100.256,2) from dual 100.26
       trunc(m,n) 截?cái)?nbsp; select trunc(100.256,2) from dual 100.25
       sqrt(n)  平放根  select sqrt(4) from dual  2
      .>轉(zhuǎn)換函數(shù)
       to_char(d|n[,fmt])<d是日期,n是數(shù)字,fmt是指定日期或數(shù)字的格式>:將指定的日期或數(shù)字轉(zhuǎn)換成字符串(varchar2)。
       to_date(char[,fmt])<char是日期格式的字符串,fmt是日期的格式>:將char或varchar數(shù)據(jù)類型轉(zhuǎn)換為日期類型。
       to_number(char)<char是包含數(shù)字的字符串>:將包含數(shù)字的字符串轉(zhuǎn)換為數(shù)字。
      .>其他函數(shù)
       nvl(expression1,expression2)<exprission1是變量或數(shù)據(jù)表字段,exprission2是一個(gè)值>:將空值替換為指定的值。
        (
         如果expression1為NULL,則nvl返回expression2
         如果expression1不為NULL,則nvl返回expression1
         <sexpression2的類型將轉(zhuǎn)換為expression1的類型>
        )
       nvl2(expression1,expression2,expression3)<exprission1是變量或數(shù)據(jù)表字段,exprission2和exprission3是一個(gè)值>:與nvl類似
        (
         如果expression1不為NULL,則nvl返回expression2
         如果expression1為NULL,則nvl返回expression3
        )
       nullif(expr1,expr2)<expr1,expr1分別為表達(dá)式>:比較兩個(gè)表達(dá)式,如果相等,則返回空值(null),否則返回expr1。
      .>分組函數(shù)
       avg(column)<column是列名>:返回參數(shù)中指定列的平均值。
       min(column)<column是列名>: 返回參數(shù)中指定列的最小值。
       max(column)<column是列名>: 返回參數(shù)中指定列的最大值。
       sum(column)<column是列名>: 返回記錄集中值的總和。
       count([distinct]*|column[,column..])<distinct選項(xiàng)指定去除重復(fù)項(xiàng),column是列名>: 返回記錄集中的行數(shù)。
       <group by子句用于將信息表化分為組,having字句用來(lái)指定group by的檢索條件>
      .>分析函數(shù)
       row_number() over ([partition by column] order by clause[,多列] [desc|esc])<column指定分組列名,clause指定排列列名>:為有序組中的每一行(化分部分的行或查詢返回的行)返回一個(gè)唯一的排序
       值,序號(hào)由order by字句指定,從1開始。(值相同,而排位不相同)

       rank () over ([partition by column] order by clause[,多列] [desc|esc])<column指定分組列名,clause指定排列列名>:計(jì)算一個(gè)值在一組值中的排位,排位是以1開頭的連續(xù)整數(shù),具有相等值的行排
       位相同,序數(shù)隨后跳躍相應(yīng)的數(shù)值。(值相同,排位相同,排位有可能不連續(xù))

       dense_rank() over ([partition by column] order by clause[,多列] [desc|esc])<column指定分組列名,clause指定排列列名>:計(jì)算一個(gè)行在一組有序行中的排位,排位是以1開頭的連續(xù)整數(shù),具有相同
       值的排位相同,并且排位是連續(xù)的。(值相同,排位相同,排位連續(xù))

      四.Oracle鎖
       鎖定是數(shù)據(jù)庫(kù)用來(lái)控制共享資源并發(fā)訪問(wèn)的機(jī)制。
      .>行級(jí)鎖(用于特定行)
       行級(jí)鎖是一中排他鎖,防止其他事務(wù)修改此行,當(dāng)是不會(huì)阻止讀取此行的操作。
       在使用insert,update,delete和select ...for update等語(yǔ)句時(shí),Oralce會(huì)自動(dòng)應(yīng)用行級(jí)鎖定。
       select...for update語(yǔ)句允許用戶每次選擇多行記錄進(jìn)行更新,這些記錄會(huì)被鎖定,且只能有發(fā)起查詢的用戶進(jìn)行編輯。只有在回滾或提交事務(wù)后,鎖定才會(huì)釋放,其他用戶才可以編輯這些記錄。
       {
        select ...for update [of column_list] [wait n | nowait ]<column_list是列的列表,n是等待的秒數(shù),nowait指定不等待>
        > of 子句用于指定即將更新的列,即鎖定行上的特定列。
        > wait 子句指定等待其他用戶釋放鎖的秒數(shù),防止無(wú)限制的等待。
       }
      .>表級(jí)鎖(用于整個(gè)表)
       表級(jí)鎖定將保護(hù)表數(shù)據(jù),在事務(wù)處理過(guò)程中,表級(jí)鎖會(huì)限制對(duì)整個(gè)表的訪問(wèn)。可以使用lock table語(yǔ)句顯示地鎖定表。表級(jí)鎖用來(lái)限制對(duì)表執(zhí)行添加,更新和刪除等修改操作。
              {
        lock table <table_name> in <lock_mode> mode [nowait];<table_name是鎖定表的名稱,lock_mode是鎖定的模式,nowait指定不等待>
        >lock_mode是鎖定的模式。
        >nowait 關(guān)鍵字用于防止無(wú)限期的等待其他用戶釋放鎖。
        (
        表級(jí)鎖的模式包括:
         >行共享(row share,rs): 允許其他用戶訪問(wèn)和鎖定該表,但是禁止排他鎖定整個(gè)表。
         >行排他(row exclusive,rx):與行共享相同,同時(shí)禁止其他用戶在此表上用共享鎖。
         >共享(share, s):僅允許其他用戶查詢表中的行,但不允許插入,更新和刪除。
         >共享行排他(share row exclusive,srx):執(zhí)行比共享鎖更多的限制。防止其他事物在表上應(yīng)用共享鎖,共享排他鎖以及排他鎖。
         >排他(exclusive,x):對(duì)表執(zhí)行最大限制。除了允許其他用戶查詢?cè)摫淼挠涗洠潘i防止其他事務(wù)對(duì)表做任何更改或在表上應(yīng)用任何類型的鎖。 
        )
        * 執(zhí)行commit或rollback命令可以釋放鎖定。
       }
      五.Oracle表分區(qū)
             表分區(qū)的優(yōu)點(diǎn):
        ..  改善表的查詢性能。
        ..  表更容易管理。
        ..  便于備份和恢復(fù)。 
        ..  提高數(shù)據(jù)安全性。
      .>范圍分區(qū)
       范圍分區(qū)根據(jù)表的某一列或一組列的值范圍,決定數(shù)據(jù)存儲(chǔ)在那個(gè)區(qū)上。
       在create table語(yǔ)句中增加parition子句可以創(chuàng)建表分區(qū)。
       語(yǔ)法:
       partition by rang (column_name)
       (
        partition part1 value less than(range1) [tablespace tbs1],
        partition part2 value less than(range2) [tablespace tbs2],
        ...... 
        partition partn value less than(MAXVALUE) [tablespace tbsN]
       );
       其中:
        column_name:是以其為基礎(chǔ)創(chuàng)建范圍分區(qū)的列,特定列的該列值稱為分區(qū)鍵。
        part1..partn:是分區(qū)的名稱。
        range1...MAXVALUE:是分區(qū)的邊界值。
        tbs1...tbsn:是分區(qū)所在的表空間(可選項(xiàng))。
      .>散列分區(qū)
       散列分區(qū)通過(guò)分區(qū)鍵值上執(zhí)行一個(gè)散列函數(shù)來(lái)決定數(shù)據(jù)的物理位置。(散列分區(qū)把記錄平均分布到不同的分區(qū),減少了磁盤I/O爭(zhēng)用的可能性)
       語(yǔ)法:
       partition by hash (column_name)
       partitions number_of_partitions [store in (tablespace_list)];
       或
       partition by hash (column_name)
       (
        partition part1 [tablespace tbs1],
        partition part2 [tablespace tbs2],
        .....
        partition partn [tablespace tbsn]
       )
       其中:
       column_name:是以其為基礎(chǔ)創(chuàng)建散列分區(qū)的列。
       number_of_partitions:是散列分區(qū)的數(shù)目,使用這種方法系統(tǒng)會(huì)自動(dòng)生成分區(qū)的名稱。
       tablespace_list:指定分區(qū)使用的表空間,如果分區(qū)數(shù)目比表空間的數(shù)目多,分區(qū)將會(huì)以循環(huán)的方式分配到表空間中。
      .>復(fù)合分區(qū)
       復(fù)合分區(qū)是范圍分區(qū)和散列分區(qū)的結(jié)合。
       語(yǔ)法:
       partition by rang (column_name1)
       subpartition by hash (column_name2)
       subpartitioins number_of_partitions [store in (tablespace_list)]
       (
        partition part1 value less than(range1) [tablespace tbs1],
        partition part2 value less than(range2) [tablespace tbs2],
        ...... 
        partition partn value less than(MAXVALUE) [tablespace tbsN]
       ) 
       其中:
       column_name1:是以其為基礎(chǔ)創(chuàng)建范圍分區(qū)的列。
       column_name2:是以其為基礎(chǔ)創(chuàng)建散列分區(qū)的列。
       number_of_partitions:是散列分區(qū)的數(shù)目。
       part1..partn:是分區(qū)的名稱。
       range1...MAXVALUE:是分區(qū)的邊界值。
      .>列表分區(qū)
       列表分區(qū)允許用戶明確地控制行到分區(qū)的映射。
       語(yǔ)法:
       partition by list (column_name) 
       (
          partition part1 values (values_list1),
         partition part2 values (values_list2), 
        ....
        partition partn values (DEFAULT)
       )
       其中:
       column_name:是以其為基礎(chǔ)創(chuàng)建列表分區(qū)的列。
       part1..partn:是分區(qū)的名稱。 
       values_list:是對(duì)應(yīng)分區(qū)鍵值的列表。
       DEFATLT:關(guān)鍵字允許存儲(chǔ)前面的分區(qū)不能存儲(chǔ)的記錄。
      ***************************************************************
      *在分區(qū)表中插入記錄:與在普通表中插入數(shù)據(jù)完全相同。
      *在分區(qū)表中查詢記錄:select * from 表名 partition (分區(qū)名)
      *刪除分區(qū)中的記錄: delete from 表名 partitioin (分區(qū)名)
      ***************************************************************

      <*>分區(qū)維護(hù)操作
      .>添加分區(qū)
       alter table ... ADD partition語(yǔ)句用于在現(xiàn)所有的最后一個(gè)分區(qū)(稱為'高'端)之后添加新的分區(qū)。
       例:
       alter table sales add partitions p4 values less than (4000);
      .>刪除分區(qū)
       alter table ... drop partition 語(yǔ)句用于刪除分區(qū)。(刪除分區(qū)時(shí),分區(qū)中的數(shù)據(jù)也隨之刪除)
       例:
       alter table sales drop partition p4;
      .>截?cái)喾謪^(qū)
       alter table ... truncate partition 語(yǔ)句用于截?cái)喾謪^(qū),截?cái)喾謪^(qū)將刪除分區(qū)中的所有記錄。
       例:
       alter table sales truncate partition p3;
      .>合并分區(qū)
       合并分區(qū)可將范圍分區(qū)表或復(fù)合分區(qū)表的兩個(gè)相鄰分連接起來(lái)。結(jié)果分區(qū)將繼承被合并的兩個(gè)分區(qū)的較高上界。
       語(yǔ)法:
       alter table table_name
       merge partitions partitions1_name,partitions2_name
       into partition3_name;
       其中: 
       table_name:是表名。
       partitions1_name,partitions2_name:是已有分區(qū)。
       partitions3_name:合并到分區(qū)的名稱。
      .>拆分分區(qū)
       使用split partition語(yǔ)句在表的開頭或中間添加分區(qū)。拆分分區(qū)允許用戶將一個(gè)分區(qū)拆分為兩個(gè)分區(qū)。當(dāng)分區(qū)過(guò)大,可以對(duì)分區(qū)進(jìn)行拆分。
       語(yǔ)法:
       alter table table_name split partition partiton_name at (value)
       into (partition partiton1,partition partiton2);
       其中:
       table_name:是表名。
       partiton_name:已有分區(qū)名。
       value:拆分分隔值。
       partition partiton1,partition partiton2:表示拆分后的新分區(qū)。
      六.同義詞
       同義詞是數(shù)據(jù)庫(kù)對(duì)像的一個(gè)別名,這些對(duì)象可以是表,視圖,序列,過(guò)程,函數(shù),程序包,甚至其他同義詞。 
       同義詞用途:
       {
        .. 簡(jiǎn)化sql語(yǔ)句
        .. 隱藏對(duì)象的名稱和所有者
        .. 為分布式數(shù)據(jù)庫(kù)的遠(yuǎn)程對(duì)象提供了位置透明性
        .. 提供對(duì)象的公共訪問(wèn)
       }
       同義詞允許應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象,不論哪個(gè)用戶或哪個(gè)數(shù)據(jù)庫(kù)擁有該對(duì)象。但是同義詞不能代替權(quán)限,在使用同義詞前要確保用戶已得到訪問(wèn)對(duì)象的權(quán)限。
       可以通過(guò)同義詞執(zhí)行select,insert,update,delete,lock table,grant和revoke等語(yǔ)句。同義詞只是表的一個(gè)別名,因此對(duì)它的所有操作都會(huì)影響到表。
      .>私有同義詞
       私有同義詞只能被當(dāng)前模式的用戶訪問(wèn)。
       私有同義詞名稱不可與當(dāng)前模式的對(duì)象名稱相同。
       要在自身的模式創(chuàng)建私有同義詞,用戶必須擁有create sysnonym系統(tǒng)權(quán)限。
       要在其他用戶模式創(chuàng)建同義詞,用戶必須擁有create any synonym系統(tǒng)權(quán)限。
       語(yǔ)法:
       create [or replace] synony [schema.]synonym_name for [schema.]object_name
       其中:
       or relaoce:表示在同義詞存在的情況下替換該同義詞。
       synonym_name:表是要?jiǎng)?chuàng)建的同義詞的名稱。
       object_name:指定要為之創(chuàng)建同義詞的對(duì)象的名稱。
      .>公有同義詞
       公有同義詞可被所有的數(shù)據(jù)庫(kù)用戶訪問(wèn)。
       創(chuàng)建公有同義詞,用戶必須擁有g(shù)reate public synonym系統(tǒng)權(quán)限。
       create [or replace] public synonym synonym_name for [schema.]object_name
       其中:
       or relaoce:表示在同義詞存在的情況下替換該同義詞。
       synonym_name:表是要?jiǎng)?chuàng)建的同義詞的名稱。
       object_name:指定要為之創(chuàng)建同義詞的對(duì)象的名稱。
      <*>刪除同義詞
       drop synonym語(yǔ)句用于從數(shù)據(jù)庫(kù)中刪除同義詞。要?jiǎng)h除同義詞用戶必須有相應(yīng)的權(quán)限。
       語(yǔ)法:
       drop [public] synonym [schema.]synonym_name;
      七.序列
       序列是用來(lái)生成唯一,連續(xù)的整數(shù)的數(shù)據(jù)庫(kù)對(duì)象。
       序列通常用來(lái)自動(dòng)生成主鍵或唯一的值。
       序列可以按升序排列,也可以按降序排列。
       語(yǔ)法:
       create sequence sequence_name
       [stare with integer]
       [increment by integer]
       [maxvalue integer|nomaxvalue]
       [minvalue integer|nominvalue]
       [cycle|nocycle]
       [cache integer|nocache];
       其中:
       sequence_name:是創(chuàng)建的序列名稱。
       stare with:指定要生成的第一個(gè)序列號(hào)。
       increment by:用于指定序列好之間的間隔。
       maxvalue:指定序列可以生成的最大值。
       nomaxvalue:如果指定了nomaxvalue,oracle將升序序列的最大值設(shè)為10的27次方;將降序序列的最大值設(shè)為-1。
       minvalue:指定序列可以生成的最小值。
       nominvalue:無(wú)最小值,oracle將升序序列的最小值設(shè)為1;將降序序列的最小值設(shè)為10的-26次方。
       cycle:指定序列在達(dá)到最大值或最小值后,將繼續(xù)從頭開始生成值。
       nocycle:指定序列在達(dá)到最大值或最小值后,將不能在繼續(xù)生成值。這是默認(rèn)選項(xiàng)。
       cyche:使用cyche選項(xiàng)可以預(yù)先分配一組序列號(hào),并將其保存在內(nèi)存中。這樣可以更快地訪問(wèn)序列號(hào),但用完緩存中的所有序列號(hào),Oralce將生成另一組數(shù)值,并將其保留在緩存中。
       nocyche:不緩存序列號(hào)。 如果創(chuàng)建序列時(shí)忽略了cyche和nocyche選項(xiàng),Oracle將默認(rèn)緩存20個(gè)序列號(hào)。
      <*>訪問(wèn)序列
              語(yǔ)法;
       sequence_name . nextval|currval
       其中:
       sequence_name:是已創(chuàng)建的序列名稱。
       nextvla:創(chuàng)建序列后第一次使用nextval時(shí),將返回該序列的初始值。以后在引用nextval時(shí),將使用increment by子句的值來(lái)增加序列值,并返回這個(gè)新值。
       currval:返回序列的當(dāng)前值。
      <*>更改序列
       alter sequence 命令用于修改序列的定義。
       {
        .. 設(shè)置或刪除minvalue或maxvale。
        .. 修改增量值。
        .. 修改緩存中的序列號(hào)的數(shù)目。
       }
       語(yǔ)法:
       alter sequence [schema.]sequence_name
       [increnment by integer]
       [maxvalue integer|nomaxvalue]
       [minvalue integer|nomaxvalue]
       [cycle|nocycle]
       [cache ingeter|nocache];
          注意:不能修改序列的start with參數(shù)。
      <*>刪除序列
       drop sequence命令用于刪除序列。
       語(yǔ)法:
       drop sequence 序列名
      八.視圖
       視圖一經(jīng)過(guò)定制的方式顯示包含愛一個(gè)或多個(gè)表(或其他視圖)中的數(shù)據(jù)。
       語(yǔ)法:
       create [or replace] [force|noforce] view view_name
       [(alias[,alias]...)]
       as select_statement
       [with check option [constraint constraint]]
       [with read only];
       其中:
       or relaoce:表示在視圖存在的情況下替換該視圖。
       force:無(wú)論基表是否存在,都將創(chuàng)建視圖。
       noforce:僅當(dāng)基表存在才創(chuàng)建視圖。
       view_name:創(chuàng)建視圖的名稱。
       alias:指定有視圖的查詢所選擇的表達(dá)式或列的別名。別名的數(shù)目必須與視圖所選擇的表達(dá)式的數(shù)目相匹配。
       select_statement:表示select語(yǔ)句。
       with check option:指定只能插入或更新視圖可以訪問(wèn)的行。術(shù)語(yǔ)constraint表示check option約束指定的名稱。
       with read only:確保不能在此視圖上執(zhí)行任何修改操作。(只瀆)
      <*>在視圖上使用DML語(yǔ)句的限制:
       > 在視圖中使用DML語(yǔ)句只能修改一個(gè)底層的基表。
       > 如果記錄的修改違反了基表的約束條件,則無(wú)法更新視圖。
       > 如果創(chuàng)建的視圖包含連接運(yùn)算符,distinct運(yùn)算符,集合運(yùn)算符,聚合運(yùn)算符和Group by子句,則無(wú)法更新視圖。
       > 如果創(chuàng)建的視圖包含偽劣或表達(dá)式,則將無(wú)法更新視圖。
      <*>鍵保留表
       在聯(lián)結(jié)視圖中,如果視圖包含了一個(gè)表的主鍵,并且也是這個(gè)視圖的主鍵,則這個(gè)鍵被保留,這個(gè)表稱為鍵保留表。
      <*> 刪除試圖
       語(yǔ)法:
        drop view 視圖名稱
      九.索引
       索引只是一種快速訪問(wèn)數(shù)據(jù)的途徑,它只影響執(zhí)行的速度。
      .>唯一索引
       索引可以是唯一的,也可以是非唯一的。唯一索引可以確保在定義索引的列中,表的任意兩個(gè)值都不相同。 
       語(yǔ)法:
       create unique index 索引名 on 表名(唯一列名);
       其中:
       unique:指定為唯一索引。
      .>組合索引
       組合索引是在表中的多列上創(chuàng)建的索引。
       語(yǔ)法:
       create index 索引名 on 表名(列名,列名);
      .>反向鍵索引
       可以在create index語(yǔ)句中指定關(guān)鍵字Reverse創(chuàng)建反向鍵索引。
       語(yǔ)法:
       create index 索引名 on 表名(列名) reverse;
       其中:
       reveerse:指定為反向鍵索引。
       使用noreverse可以將反向鍵索引重建為標(biāo)準(zhǔn)索引。
        例: alter index 索引名 rebuild noreverse;
       注意:  不能將標(biāo)準(zhǔn)索引重建為反向鍵索引。
      .>位圖索引
       使用位圖索引的優(yōu)點(diǎn)在于,它最適用于低基數(shù)列,也就是不同值的數(shù)目比表的行數(shù)少的列(枚舉列)。 
       語(yǔ)法:
       create bitmap index 索引名 on 表名 (列名);
       其中:
       bitmap:指定為位圖索引。
      <*>位圖索引優(yōu)點(diǎn)
       > 對(duì)于大批即席查詢,可以減少響應(yīng)時(shí)間。
       > 相比其他索引技術(shù),占用空間明顯減少。
       > 即使在配置很低的終端硬件上,也嫩個(gè)獲得顯著的性能。
      .>索引組織表
       索引組織表與普通表的不同之處在于,該表的數(shù)據(jù)存儲(chǔ)在與關(guān)聯(lián)的索引中。對(duì)表數(shù)據(jù)進(jìn)行的修改,如添加新行,更新和刪除行,只會(huì)導(dǎo)致對(duì)索引的更新。
       語(yǔ)法:
       create table 表名
       (
        列名  類型 primary key,
        ...
       )
       organization index;
       其中:
       organization index: 指定為索引組織表。
      <*>注釋
       primary key是創(chuàng)建索引組織表所必需的。
      .>索引中分區(qū)
       > 局部分區(qū)索引
       局部分區(qū)索引是在分區(qū)表上創(chuàng)建的一中索引,在局部分區(qū)中Oracle為表的每個(gè)分區(qū)建立一個(gè)獨(dú)立的索引。
       語(yǔ)法:
       create index 索引名 on 表名(列名) local;
       其中:
       local:指定為本地分區(qū)創(chuàng)建索引。
       > 全局分區(qū)索引
       全局分區(qū)索引是指在分區(qū)表或非分區(qū)表上創(chuàng)建的索引。
       語(yǔ)法: 
       create index 索引名 on 表名(列名) global
       partition onrange (列名)
       (
        ...分區(qū)  
       )
       其中:
       global:指定為全局分區(qū)創(chuàng)建索引。
       >全局非分區(qū)索引
       全局非分區(qū)索引是在分區(qū)表上創(chuàng)建的全局索引,它類似于非分區(qū)表上的索引,索引的結(jié)構(gòu)不會(huì)被分割。
      十.pL/Sql編程
       優(yōu)點(diǎn):
       >支持sql。
       >支持面向?qū)ο缶幊?oop)。
       >更好的性能。
       >可移植性。
       >與sql集成。
       >安全性。
      <*> PL/SQL塊
       >聲明塊:聲明塊中使用的變量,游標(biāo)和自定義異常。這些聲明的作用域僅限于它們所在的塊。此外,局部子程序也可以在PL/SQL塊的聲明部分中聲明。
       >可執(zhí)行部分:執(zhí)行命令并操作在聲明部分聲明的變量和游標(biāo)。
       >異常處理部分:處理執(zhí)行塊時(shí)引發(fā)的異常。
       pl/sql塊聲明語(yǔ)法:
       [declare
        所有聲明]
       begin
        執(zhí)行語(yǔ)句
       [exception
        異常處理]
       end;
       >pl/sql對(duì)大小寫不敏感,但是用戶和用戶的開發(fā)團(tuán)隊(duì)?wèi)?yīng)該選擇一個(gè)合適的編碼標(biāo)準(zhǔn),以確保最好的使用共享池。
       >pl/sql中一些復(fù)合符號(hào)的含義:
        :=     賦值操作符
        ||     連接操作符
        --     單行注釋
        /*,*/  多行注釋
        <<,>>  標(biāo)簽分隔符
        ..     范圍操作符
        **     求冪操作符 
      <*>數(shù)據(jù)類型
         標(biāo)量數(shù)據(jù)類型
       >數(shù)字?jǐn)?shù)據(jù)類型
       數(shù)字?jǐn)?shù)據(jù)類型存儲(chǔ)的數(shù)據(jù)為數(shù)字,用此數(shù)據(jù)類型存儲(chǔ)的數(shù)據(jù)可用于計(jì)算。
       數(shù)字類型包括:
       a: binary_integer
       {
       用于存儲(chǔ)帶符號(hào)的整數(shù)。值的大小范圍介于-2的31次方減1到2的31次方減1之間。
       binary_integer的子類型:
         .. natural:可以限制變量存儲(chǔ)非負(fù)整數(shù)值,即自然數(shù)。
        .. naturaln:可以限制變量存儲(chǔ)自然數(shù),且非空。
        .. positive:可以限制變量存儲(chǔ)正整數(shù)。
        .. positiven:可以限制變量存儲(chǔ)正整數(shù),且非空。
        .. signtype:可以限制變量只存儲(chǔ)-1,0和1三個(gè)值。 
       }
       b: number
       {
       用于存儲(chǔ)整數(shù),定點(diǎn)數(shù)和浮點(diǎn)數(shù)。 
       語(yǔ)法:
       number[(presision,scale)]
       其中: 
        presision:是精度。
        scale:是小數(shù)位數(shù)。
       只能用整數(shù)文字指定精度和小數(shù)位數(shù),而不能用常量或變量指定精度和小數(shù)位數(shù)。
       number數(shù)據(jù)類型的一些子類型包括:
        .. decimal:用于聲明最高精度為38位的十進(jìn)制數(shù)字的定點(diǎn)數(shù)。
        .. float:聲明最高精度為126位的二進(jìn)制數(shù)字的浮點(diǎn)數(shù)。
        .. ingeter:聲名最高精度為38為的十進(jìn)制數(shù)字的整數(shù)。
        .. real: 聲明最高精度為63位的二進(jìn)制數(shù)字的浮點(diǎn)數(shù)。 
       }
       c: pls_integer
       {
       存儲(chǔ)帶符號(hào)的整數(shù)。pls_integer的大小范圍介于-2的31次方到2的31次方之間。與number和binary_integer類型相比,它執(zhí)行運(yùn)算的速度更快。
       pls_integer運(yùn)算以機(jī)器算術(shù)運(yùn)算為基礎(chǔ),而number和binary_integer運(yùn)算以庫(kù)算術(shù)為基礎(chǔ)。此外,與number數(shù)據(jù)類型相比,pls_integer需要的
       存儲(chǔ)空間更小。通常建議在執(zhí)行處于pls_integer的數(shù)值范圍類的所有計(jì)算時(shí)使用此數(shù)據(jù)類型以提高效率。
       }
       >字符數(shù)據(jù)類型
       字符數(shù)據(jù)類型勇于存儲(chǔ)字符串或字符數(shù)據(jù)。
       a: char
       {
       存儲(chǔ)固定長(zhǎng)度的字符數(shù)據(jù)。(不超過(guò)32767個(gè)字節(jié)的最大長(zhǎng)度)
       語(yǔ)法:
       char[(maximum_size[char|btye])]
       其中:
       maximum_size:是最大長(zhǎng)度。
       char|byte:指定長(zhǎng)度為字符數(shù)或字節(jié)數(shù)。
       }
       b: raw
       {
       存儲(chǔ)二進(jìn)制數(shù)據(jù)或字節(jié)串。(類似于char,不同之處是它們不在字符集中轉(zhuǎn)換)
       語(yǔ)法:
       raw(maximum_size)
       其中:
       miximum_size:是最大長(zhǎng)度。(最大長(zhǎng)度是32767個(gè)字節(jié)) 
       }
       c:long和long Raw
       {
       pl/sql中 long類型是可變長(zhǎng)度字符串。最大長(zhǎng)度為32760個(gè)字節(jié)。類似Oralce中的varchar2。
       long row類型類似于raw數(shù)據(jù)類型,存儲(chǔ)二進(jìn)制數(shù)據(jù)或字節(jié)串,最大長(zhǎng)度是32760個(gè)字節(jié)。
       }
       d: varchar
       {
       此類型可容納可變長(zhǎng)度字符串。
       語(yǔ)法:
       varchar2(maximum_size [char|byte])
       其中:
       maximum_size:是最大長(zhǎng)度。
       char|byte:指定長(zhǎng)度為字符數(shù)或字節(jié)數(shù)。
       varchar2類型的子類型包括:
        .. string
        .. varchar  
       子類型的數(shù)值范圍與基本類型相同。
       }
       >日期時(shí)間數(shù)據(jù)類型
       日期時(shí)間數(shù)據(jù)類型用于存儲(chǔ)日期和時(shí)間值。
       a:date
       {
       用于存儲(chǔ)固定長(zhǎng)度的日期和時(shí)間數(shù)據(jù)。它支持的日期范圍為:從公元前(B.C.E)4712年1月1日到公元(C.E)9999年12月31日。
       date數(shù)據(jù)類型包括時(shí)間。
       日期函數(shù)sysdate返回當(dāng)前日期和時(shí)間。
       初使化參數(shù)NLS_DATE_FORMAT用于設(shè)置默認(rèn)日期格式。 
       }
       b: timestamp
       {
       用于存儲(chǔ)日期和時(shí)間。是date數(shù)據(jù)類型的擴(kuò)展,它存儲(chǔ)年,月,日,小時(shí),分鐘和秒。
       日期函數(shù)SYSTIMESTAMP返回當(dāng)前的日期時(shí)間信息。
       語(yǔ)法: 
       timestamp [(precision)]
       其中:
       precision:是精度。它代表秒字段小數(shù)部分中的位數(shù)。必須使用0到9之間的整數(shù)文字。默認(rèn)為6。
       初使化參數(shù)NLS_TIMESTAMP_FORMAT用于設(shè)置默認(rèn)的timestamp格式。
       }
       >布爾數(shù)據(jù)類型
       用于存儲(chǔ)邏輯值。
       boolean
       {
        用于存儲(chǔ)邏輯值true,false和null。
        只允許對(duì)boolean變量執(zhí)行邏輯操作。
       }
         lob類型
       大對(duì)象(lob)數(shù)據(jù)類型用于存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)。大小限于4GB。DBMS_LOB程序包用于操作lob數(shù)據(jù)。
       >bfile
       用于將大型二進(jìn)制對(duì)象存儲(chǔ)在操作系統(tǒng)文件中。即文件定位器。
       定位器包含一個(gè)目錄的別名,用于指定目錄的完整路徑。
       bfile數(shù)據(jù)類型的數(shù)據(jù)是只讀的,不能修改。
       語(yǔ)法:
       bfilename('目錄別名','文件名')
       其中:
       目錄別名使用create directiry語(yǔ)句創(chuàng)建。
       >blob
       用于將大型二進(jìn)制對(duì)象存儲(chǔ)在數(shù)據(jù)庫(kù)中。blob數(shù)據(jù)類型可用于事務(wù)處理。
       例:
       要在表中插入圖象,先使用create directory 目錄名 as  '系統(tǒng)目錄';創(chuàng)建一個(gè)目錄名。
       使用grant read on directory 目錄名 to 用戶;授予讀取權(quán)限。 
       declare
        l_bfile bfile;
        l_blob blob;
       begin
        insert into 表名('blob類型的列名')
        values (EMPTY_BLOB()) return 列名 into l_blob;
        l_bfile :=BFILENAME('目錄別名','文件名');
        DBMS_LOB.OPEN(l_bfile,DDMS_LOB.FILE_READONLY);  --打開文件
        DBMS_LOB.LOADFROMFIFE(l_blob,l_bfile,DBMS_LOB.GETLENGTH(l_bfile)); --加載到l_blob變量中。
        DBMS_CLOSE(l_bfile); --關(guān)閉l_bfile文件。
        commit;
       END;
       /
       *****************************************************
       oracle中插入一個(gè)blob數(shù)據(jù) (來(lái)自Google)
       create or replace directory utllobdir as 'c:\xxx'; --你的BLOB文件所在位置。
       create table bfile_tab (bfile_column BFILE);
       create table t (blob_column BLOB);
       ----------------------------------------
       declare
          a_blob  BLOB;
          a_bfile BFILE := BFILENAME('UTLLOBDIR','BLOB文件名');
       begin
          insert into bfile_tab values (a_bfile)
            returning bfile_column into a_bfile;
          insert into t values (empty_blob())
            returning blob_column into a_blob;
          dbms_lob.fileopen(a_bfile);
          dbms_lob.loadfromfile(a_blob, a_bfile, dbms_lob.getlength(a_bfile));
          dbms_lob.fileclose(a_bfile);
          commit;
       end;
       --------------------------------------------------------------------
       >clob
       用于將大型字符數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中。clob變量中的定位器指向大型字符數(shù)據(jù)的地址。
       插入數(shù)據(jù)到clob列與普通字符串類似。
       讀取clob數(shù)據(jù)
       DBMS_LOB.READ(clob類型變量,要讀的字符數(shù),啟始位置(1為最前端),varchar2類型變量)
       --讀取指定clob到varchar2,從開始位置讀多少。
       >nclob
       將大型 nchar數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中。nclob數(shù)據(jù)類型同時(shí)支持固定寬度字符和可變寬度字符(Unicode字符數(shù)據(jù))。nclob類型的使用方 法與clob類似。
          屬性類型
       屬性用于引用變量或數(shù)據(jù)庫(kù)列的數(shù)據(jù)類型,以及表示表中一行的記錄類型。
       {
       優(yōu)點(diǎn):
        .. 不需要知道被引用的列或表的具體數(shù)據(jù)類型。
        .. 如果更改了被引用對(duì)象的數(shù)據(jù)庫(kù)定義,那么pl/sql在運(yùn)行時(shí)變量的數(shù)據(jù)類型也會(huì)隨之更改。
       }
       >%type
       引用某個(gè)變量或數(shù)據(jù)庫(kù)列的數(shù)據(jù)類型來(lái)聲名變量。
       語(yǔ)法:
       icode itemfile.itemcode%TYPE;
       其中;
       icode:是變量名稱。
       itemfile.itemcode:是表名.列名。
       **icode的數(shù)據(jù)類型與itemfile表中itemcode列的數(shù)據(jù)類型相同。
       >%ROWTYPE
       提供表中一行的記錄類型。
       例:
       emp_rec emp%ROWTYPE;
       **emp_rec被聲明為emp一行的類型。
      <*>邏輯比較
       運(yùn)算符      描述
       =  等于   
       <>,!=  不等于
       <  小于 
       >  大于
       <=  小于等于
       >=  大于等于
       關(guān)系運(yùn)算符用于比較sql和過(guò)程語(yǔ)句中的變量和常量,這些表達(dá)式稱為布爾表達(dá)式。
       布爾表達(dá)式的結(jié)果為true,false或null,通常有邏輯運(yùn)算符and,or和not連接,主要用在條件控制語(yǔ)句中。
       布爾表達(dá)式共有3中類型,即數(shù)字布爾型,字符布爾型和日期布爾型。
      <*>控制結(jié)構(gòu)
       pl/sql提供可通過(guò)控制結(jié)構(gòu)來(lái)控制命令執(zhí)行的流程。
       >條件控制
        .. if 條件 then
         執(zhí)行語(yǔ)句....
           end if;
        .. if 條件 then
            執(zhí)行語(yǔ)句1....
           else
         執(zhí)行語(yǔ)句2....
           end if;
        .. if 條件 then
         執(zhí)行語(yǔ)句1....
           elsif 條件 then
         執(zhí)行語(yǔ)句2....
           end if;
        .. case 待比較值
         when 比較值 then 執(zhí)行語(yǔ)句....
           when 比較值 then 執(zhí)行語(yǔ)句....
         when 比較值 then 執(zhí)行語(yǔ)句....
         [else when 執(zhí)行語(yǔ)句....]
           end case;
       >循環(huán)控制
        .. loop
         執(zhí)行語(yǔ)句....
         [EXIT<表示強(qiáng)行跳出循環(huán)<|EXIT then (條件)<條件不為true就跳出>]
           end loop;
        .. while 條件 loop
         執(zhí)行語(yǔ)句....
           end loop;
        .. for counter in [ reverse] value1..value2
           loop
         執(zhí)行語(yǔ)句....  
           end loop;
           關(guān)鍵字reverse在for循環(huán)中屬于可選項(xiàng)。只有在需要對(duì)值從大到小執(zhí)行循環(huán)時(shí),才會(huì)使用reverse關(guān)鍵字。 
       >順序控制 
        >goto語(yǔ)句
        無(wú)條件地將控制權(quán)轉(zhuǎn)到標(biāo)簽指定的語(yǔ)句。
        語(yǔ)法:
        goto 標(biāo)簽名
        標(biāo)簽定義方法:<<標(biāo)簽名>>
        >null語(yǔ)句
        什么都不做,只是將控制權(quán)轉(zhuǎn)到下一個(gè)語(yǔ)句。
      <*>動(dòng)態(tài)sql
       Oracle中的動(dòng)態(tài)sql可以通過(guò)本地動(dòng)態(tài)sql命令執(zhí)行,也可以通過(guò)DBMS_SQL程序包來(lái)執(zhí)行。
       語(yǔ)法:
       execute immediate 動(dòng)態(tài)sql語(yǔ)句字符串
       [into select語(yǔ)句選擇的記錄值<參數(shù)類型>]
       [using  綁定輸入?yún)?shù)變量<參數(shù)值>]
      <*>錯(cuò)誤處理
       >預(yù)定義異常
       pl/sql支持的預(yù)定義異常:
       異常    說(shuō)明
       ACCESS_INTO_NULL  在未初始化對(duì)象時(shí)出現(xiàn)
       CASE_NOTE_FOUND   在case語(yǔ)句中的選項(xiàng)與用戶輸入的數(shù)據(jù)不匹配是出現(xiàn)
       COLLECTION_IS_NULL  在給尚未初始化的表或數(shù)組賦值時(shí)出現(xiàn)
       CURSOR_ALREADY_OPEN  在用戶試圖打開已經(jīng)打開的游標(biāo)是出現(xiàn),在重先打開游標(biāo)前必須先將其關(guān)閉
       DUP_VAL_ON_INDEX  在用戶試圖將重復(fù)的值存儲(chǔ)在使用唯一索引的數(shù)據(jù)庫(kù)列中時(shí)出現(xiàn)。
       INVALID_CURSOR   在執(zhí)行非法的游標(biāo)運(yùn)算是出現(xiàn)。
       INVALIE_NUMBER   在將字符串轉(zhuǎn)換為數(shù)字時(shí)出現(xiàn)。
       LOGIN_DENIED   在輸入用戶名或密碼無(wú)效時(shí)出現(xiàn)
       NO_DATA_FOUND   在表中不存在請(qǐng)求的行是出現(xiàn)。
       STORAGE_ERROR   在內(nèi)存損壞或pl/sql耗盡內(nèi)存時(shí)出現(xiàn)。
       TOO_MANY_ROWS   在執(zhí)行select into語(yǔ)句后返回多行時(shí)出現(xiàn)。
       VALUE_ERROR   在產(chǎn)生大小限制錯(cuò)誤時(shí)出現(xiàn)。
       ZERO_DIVIDE   以零做除數(shù)時(shí)出現(xiàn)。
       使用異常的語(yǔ)法:
       exception 異常名稱 then
        執(zhí)行異常處理語(yǔ)句....
       >用戶自定義異常
       語(yǔ)法:
        聲明: 自定義異常名稱 EXCEPTION;
        使用raise語(yǔ)句顯示引發(fā):raise 自定義異常名稱
        處理: exception 自定義異常名稱 then
          執(zhí)行異常處理語(yǔ)句....
       >引發(fā)應(yīng)用程序錯(cuò)誤
       過(guò)程RAISE_APPLICATION_ERROR用于創(chuàng)建用戶定義的錯(cuò)誤信息。
       語(yǔ)法:
       RAISE_APPLICATION_ERROR(error_number,error_message)
       其中:
       error_number:指定的異常編號(hào),必須在-20000和-20999之間的負(fù)整數(shù)。
       error_message:異常指定的消息文本。長(zhǎng)度可答2048字節(jié),錯(cuò)誤消息是與error_number表示關(guān)聯(lián)的文本。 
      十一.游標(biāo)管理
       游標(biāo)是構(gòu)建在pl/sql中,用來(lái)查詢數(shù)據(jù),獲取記錄集合的指針。
      <*>靜態(tài)游標(biāo)
       靜態(tài)游標(biāo)是在編譯時(shí)知道其select語(yǔ)句的游標(biāo)。
       >隱式游標(biāo) 
       Oracle預(yù)定義了一個(gè)sql的隱式游標(biāo),通過(guò)檢查隱式游標(biāo)的屬性可以獲取與最近執(zhí)行的sql語(yǔ)句相關(guān)的信息。
       隱式游標(biāo)的屬性:
        .. %found:在dml語(yǔ)句影響一行或多行時(shí),%found屬性在返回true。
        .. %notfound:與%found的作用正好相反,如果沒(méi)有影響任何行,則返回true。
        .. %rowcount:返回dml語(yǔ)句影響的行數(shù),如果沒(méi)有影響行則返回0。
        .. %isopen:返回游標(biāo)是否已經(jīng)打開的值。在執(zhí)行sql語(yǔ)句之后,Oracle自動(dòng)關(guān)閉sql游標(biāo),所以隱式游標(biāo)的%isopen屬性始終為false。
       >顯示游標(biāo)
       顯示游標(biāo)是由用戶顯示聲明的游標(biāo)。根據(jù)在游標(biāo)中定義的查詢,查詢返回的行集合可以包含零行或多行,這些行稱為活動(dòng)集。游標(biāo)將指向活動(dòng)集中的當(dāng)前行。
       顯示游標(biāo)的標(biāo)準(zhǔn)操作過(guò)程:
       1.聲明游標(biāo)
       2.打開游標(biāo)
       3.從游標(biāo)中獲取記錄
       4.關(guān)閉游標(biāo)
       顯示游標(biāo)在declare部分的聲明語(yǔ)法:
       cursor cursor_name [(parameter[,parameter..])] 
       [return return_type] is select_statement;
       其中: 
       cursor_name:是游標(biāo)的名稱。
       parameter:用于為游標(biāo)指定輸入?yún)?shù)。
       return_type:定義游標(biāo)提取的行的類型。
       select_statement:指定游標(biāo)的查詢語(yǔ)句。
       在聲明游標(biāo)后可以用下列語(yǔ)句控制游標(biāo):
       open:打開游標(biāo)。
       fetch: 從游標(biāo)中提取行。
       close: 關(guān)閉游標(biāo)。
       顯示游標(biāo)同樣有隱式游標(biāo)的屬性并起相同。
       使用顯示游標(biāo)刪除或更改:
       如果處理過(guò)程中需要?jiǎng)h除或更新行,在定義游標(biāo)時(shí)必須使用select...for update語(yǔ)句,而在執(zhí)行delete或update時(shí)使用where current of 字句指定游標(biāo)的當(dāng)前行。
       **提示:select語(yǔ)句必須只包括一個(gè)表,而且delete和update語(yǔ)句只有在打開游標(biāo)并提取特定行之后才能使用

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多