【正文】
進行說明。此時必須在ANY之前使用=、=、=。也可以用 select into V_NUM FROM DUAL。BFILE能將二進制文件存儲在服務器文件系統(tǒng)上的二進制文中。(NUMBER 最多要占用22個字節(jié)的空間) 可以表示的數(shù)字范圍更大 執(zhí)行運算速度更快(其計算在硬件上執(zhí)行,而number需要軟件轉(zhuǎn)換) 運算封閉(也就是說運算總會返回一個值,而不是報錯) 取整透明(由于其是以二進制保存數(shù)據(jù),所以是以二進制進行取整,而number類型以十進制行保存數(shù)據(jù),并以十進制進行取整) BINARY_FLOAT、BINARY_DOUBLE類型存在一些特殊值 :詳情見 符表1數(shù)字類型,如果涉及到大量使用數(shù)據(jù)計算的開發(fā)可以用本類型BINARY_DOUBLE存儲64精度的浮點數(shù)。但該類型還包含時區(qū)信息。精度2GB。精度12000字符如果用戶錄入的值小于指定的長度,數(shù)據(jù)會用空格進行填充。LONG列上不能定義唯一或主鍵約束,不能建立 索引。精度38位 Precision整數(shù)位位數(shù)+小數(shù)位位數(shù)(不包括小數(shù)點),scale小數(shù)位位數(shù)Number 224。使用本類型時要指定大小,可以在此類型列上使用索引。支持文件最大為4GNvarchar 與varchar之間的轉(zhuǎn)換用tonchar(varchar)符表1BINARY_FLOAT ,BINARY_DOUBLE 類型的特殊值特殊值描述BINARY_FLOAT_NAN非BINARY_FLOAT類型的數(shù)字BINARY_FLOAT_INFINITYBINARY_FLOAT類型的無窮大BINARY_DOUBLE_NAN非BINARY_DOUBLE類型的數(shù)字BINARY_DOUBLE_INFINITYBINARY_DOUBLE類型的無窮大NULL類型數(shù)據(jù)用NULL類型進行計算或比較,均返回NULL,就算是兩個空值進行比較也只會返回空。以支持更有意義的輸出。 ALL在where條件中可以使用ALL 將一個值與列表中的所有值進行比較。而not in 則正好相反。可以通過 NVL ,NVL2函數(shù), is null ,is not null 操作符進行判定。會進行排序。循環(huán)控制 在所有的循環(huán)控制語句中可以用 exit 進行退出當前的循環(huán),可以用 GOTO + 標簽實現(xiàn)類似高級語言的CONTINUE。//空語句,不處理任何事,如果在支持CONTINE 功能 應該要寫在LOOP 之前,其他業(yè)務代碼之后 LOOP?;虼a結(jié)束。 //執(zhí)行這句后,控制權(quán)不會再回去,因此程序會遠行結(jié)束。可以通過RAISE_APPLICATION_ERROR(ERROR_NUMER , ERROR_MESSAGE)。在ORACLE中定義一個可以由系統(tǒng)自動觸化的異常。異??梢允怯脩糇远x的也可是系統(tǒng)預定義的自定義異常MYEXCEPTION EXCEPTION 。顯示游標又分:靜態(tài)游標與動態(tài)游標。 只有在執(zhí)行 DML 語句影響一行或多行時才會返回TRUE SQL%NOTFOUND。 CURSOR MY_CURSOR(USER_NAME VARCHAR2) IS SELECT * FROM TB_QC120 T WHERE LILE 39。FETCH MY_CURSOR INTO V_AGE 。 TYPE CLASSES IS TABLE OF %TYPE。++39。 例:CURSOR MY_CURSOR IS SELECT * FROM STUDENTS T WHERE LIKE ‘%A%’ FOR UPDATE OF ( NAME, USER_AGE );表示只進行鎖定兩列。 //這是一個參數(shù)據(jù)游標LOOPFECTH CUR INTO V_TEMP。也不需要顯示定義結(jié)果集變量。 使用參數(shù)游標 FOR C IN C_CUR USING(39。 游標變量可作為過程參數(shù)進行傳遞。一般用戶只有select權(quán)限 。程序使用該字段可提高訪問速度。利用現(xiàn)有的表建立新表:CREATE TABLE NEW_TABLE_NAME AS SELECT *| {[DISTINC] COLUMN | EXPRESSION [ALIAS] ,….} FROM TABLE_NAME [WHERE CONDITION][GROUP BY COLUMNS ] [HAVING CONDITION] [ORDER BY COLUMNS]; 更多復雜的SQL語句高級查詢;INSERT結(jié)構(gòu):INSERT INTO TABLE_NAME (COLUMNLIST ) VALUES (VALUELIST)。例:可以返回自動生成的某些列的值 INSERT INTO TB_USER (USER_NAME,USER_SEX) VALUES (39。高級數(shù)據(jù)庫類型屬性類型%TYPE 引用某個表字段或變量的類型。如果返回空行則會報NOT_DATA_FOUND的錯誤。 BB TB_QS100%ROWTYPE。集合類型 在ORACLE中集合類型有:1數(shù)組?。病∏短妆?3 集合 索引表變長數(shù)組嵌套表存在于內(nèi)存中存在于內(nèi)存中存在于內(nèi)存中不限制上下限,其數(shù)據(jù)類型在聲明時就指定了。 TYPE MYINDEXTABLE2 IS TABLE OF TB_QS100%ROWTYPE INDEX BY BINARY_INTEGER。*****39。Q235B39。 通過處理異?;駿XISTS 來判定鍵是否存在 IF (1) THEN (MYIN2(1).STD_SPEC)。DECLARE I INTEGER。也可以多個參數(shù)39。12339。DECLARE TYPE NAMES IS TABLE OF VARCHAR2(30)。USER TABLE_ZONEFOR I IN 1..LOOP(V_NAMES(I)||39。create type my_arrary as array(10) of tb_qs100。名字長度最大小于12不以為空 SUBTYPE MYT IS TB_QC120%ROWTYPE。 ORACLE函數(shù)字符函數(shù)函數(shù)說明例示ASCII轉(zhuǎn)換成ASCII值 ASCIISTR轉(zhuǎn)換成ASCIISTR表示的字符值 CHR給出整數(shù),返回對應的字符CHR(12) 返回空行COMPOSE、VARCHARNCHAR、NVARCHARCLOB或NCLOB類型CONCAT連接兩個字符串 ||連接兩個字符串LOWER轉(zhuǎn)換成小寫字母UPPER轉(zhuǎn)換成大寫字母CONVERT字符集的轉(zhuǎn)換,轉(zhuǎn)換符表如下:CONVERT(39。如果夠長則不用進行補RPAD(STRING1, ADDED_LENGTH, [PAD_STRING ] )在列的右邊粘貼字符STRING要保證ADDED_LENGTH位,如果不夠在右邊補字符PAD_STRING。S239。CB39。WZ39。ABCDEF39。例如BIN_TO_NUM(1,0,1,1)將返回11,因為11的二進制表示是1011。、39。或39。STRING可以是文字或另一LOB列TO_NUMBER將給出的字符轉(zhuǎn)換為數(shù)字TO_SINGLE_BYTE返回將所有雙字節(jié)字符替換為等價的單字節(jié)字符的STRING。THIS39。當在分布式SQL語句中使用的時候,返回本地數(shù)據(jù)庫的日期和時間TO_CHAR將數(shù)值型或者日期型轉(zhuǎn)化為字符型可以參見符表1 日期時間格式化字符串 符表TO_DATE字符轉(zhuǎn)換到日期類型可以參見符表1 日期時間格式化字符串 符表TRUNC返回由format指定的單位的日期d符表2 round的格式化字符串 符表1 日期時間格式化字符串 符表ParameterExplanationYEARYear, spelled outYYYY4digit yearYYYLast 3, 2, or 1 digit(s) of year.YYYIYYLast 3, 2, or 1 digit(s) of ISO year.IYIIYYY4digit year based on the ISO standardRRRRAccepts a 2digit year and returns a 4digit year.A value between 049 will return a 20xx year.A value between 5099 will return a 19xx year.uarter of year (1, 2, 3, 4。TZHTime zone hour.TZMTime zone minute.TZRTime zone region.符表2 round的格式化字符串UnitValid format parametersYearSYYYY, YYYY, YEAR, SYEAR, YYY, YY, YISO YearIYYY, IY, IQuarterQMonthMONTH, MON, MM, RMWeekWWIWIWWWDayDDD, DD, JStart day of the weekDAY, DY, DHourHH, HH12, HH24MinuteMIFf66位毫秒數(shù)學函數(shù)函數(shù)說明例示Abs返回指定值的絕對值Acos給出反余弦的值Asin給出反正弦的值Atan返回一個數(shù)字的反正切值Atan2 返回反正切值,結(jié)果將以弧度表示BIN_TO_NUM(num[,num]...)將一位矢量轉(zhuǎn)換位相當?shù)臄?shù)字。如果Y是負數(shù),那么舍入到小數(shù)點左邊相應的位上,Y必須為整數(shù)Sign(number)取數(shù)字n的符號,大于0返回1,小于0返回1,等于0返回0sin( n )返回一個數(shù)字的正弦值sinh( n )返回雙曲正弦的值Sqrt(n)返回數(shù)字n的根Tan返回數(shù)字的正切值Tanh返回數(shù)字n的雙曲正切值trunc( n1, [ n2] )返回截尾到n2位小數(shù)的n1的值,n2缺省設置為0,當n2為缺省設置時會將n1截尾為整數(shù),如果n2為負值,就截尾在小數(shù)點左邊相應的位上Var_popVar_sampVariance 分析統(tǒng)計函數(shù) 函數(shù)說明例示AVG(DISTINCT|ALL)all表示對所有的值求平均值,distinct只對不同的值求平均值,不處理空值行COUNT所有非空字段的行數(shù)sum返回選擇列表項目的總和,只能用于數(shù)字MAX(DISTINCT|ALL)求最大值,ALL表示對所有的值求最大值,DISTINCT表示對不同的值求最大值,相同的只取一次MIN(DISTINCT|ALL)求最小值,ALL表示對所有的值求最小值,DISTINCT表示對不同的值求最小值,相同的只取一次median( expression ) [ OVER ( query partition clause ) ] 中間值,在ORACLE 10G中才出現(xiàn)。BITAND(x,y)函數(shù),返回X和Y的與結(jié)果。 the number of days since January 1, 4712 BC.HHHour of day (112).HH12Hour of day (112).HH24Hour of day (023).MIMinute (059).SSSecond (059).SSSSSSeconds past midnight (086399).FFFractional seconds. Use a value from 1 to 9 after FF to indicate the number of digits in the fractional seconds. For example, 39。星期一39。如果指定PRECISION,它指返回秒數(shù)的精度,缺省為6DBTIMEZONE返回數(shù)據(jù)庫的時區(qū)FROM_TZFROM_TZ(TIMESTAMP,TIMEZONE) 返回一個TIMESTAMP WITH TIMEZONE 類型值。STRING可以是文字或另一個LOB列。之一。UNIT是一個字符字符串(可以是CHAR、VARCHARNCHAR或NVARCHAR2),且是39。WZ39。CBE39。ABCDEF39。TO_STR 不能為空。STRING39。,39。 。自定義數(shù)據(jù)類型系統(tǒng)類型的子類型定義現(xiàn)在類型的子類型,以提供更為精確的操作數(shù)據(jù)。 END 。 V_CLASSES_NO CLASSES。 (MYA(4))。 (MYA(1)||39。 MYB MYARRAY2 。沒有指定的鍵39。Q235A39。 (MYIN1(1))。中國39。在聲明時就要對其進行初始化。 SELECT * INTO BB FROM TB_QS100 WHERE ROWNUM =1。 通過‘.’方式使用V_TEM