這些函數(shù)全都接收的是字符族類型的參數(shù)(CHR除外)并且返回字符值.除了特別說(shuō)明的之外,這些函數(shù)大部分返回VARCHAR2類型的數(shù)值.字符函數(shù)的返回類型所受的限制和基本數(shù)據(jù)庫(kù)類型所受的限制是相同的,比如: VARCHAR2數(shù)值被限制為2000字符(ORACLE 8中為4000字符),而CHAR數(shù)值被限制為255字符(在ORACLE8中是2000).當(dāng)在過(guò)程性語(yǔ)句中使用時(shí),它們可以被賦值給VARCHAR2或者CHAR類型的PL/SQL變量.
語(yǔ)法:ascii(char c)
功能:返回一個(gè)字符串的第一個(gè)字符的ASCII碼,他的逆函數(shù)是CHR()
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
select ascii('羅') from dual;
select chr(49886) from dual;
語(yǔ)法: chr(x)
功能:返回在數(shù)據(jù)庫(kù)字符集中與X擁有等價(jià)數(shù)值的字符。CHR和ASCII是一對(duì)反函數(shù)。經(jīng)過(guò)CHR轉(zhuǎn)換后的字符再經(jīng)過(guò)ASCII轉(zhuǎn)換又得到了原來(lái)的字符。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法: CONCAT(c1,c2)
功能: c1,c2均為字符串,函數(shù)將c2連接到c1的后面,如果c1為null,將返回c2.如果c2為null,則返回c1,如果c1、c2都為null,則返回null,他和操作符||返回的結(jié)果相同.
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法:INITCAP(string)
功能:返回字符串的每個(gè)單詞的第一個(gè)字母大寫而單詞中的其他字母小寫的string。單詞是用.空格或給字母數(shù)字字符由空格,控制字符,標(biāo)點(diǎn)符號(hào)進(jìn)行分隔。不是字母的字符不變動(dòng)。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
select INITCAP('luo,jia,you')from dual;
select INITCAP('luo jia you')from dual;
語(yǔ)法:LTRIM(string1,string2)
功能:返回刪除從左邊算起出現(xiàn)在string2中的字符的string1。String2被缺省設(shè)置為單個(gè)的空格。數(shù)據(jù)庫(kù)將掃描string1,從最左邊開始。當(dāng)遇到不在string2中的第一個(gè)字符,結(jié)果就被返回了。LTRIM的行為方式與RTRIM很相似。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法:LOWER(string)
功能:返回字符串,并將所有的字符小寫
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法:NLS_INITCAP(string[,nlsparams])
功能:返回字符串每個(gè)單詞第一個(gè)字母大寫而單詞中的其他字母小寫的string,nlsparams
指定了不同于該會(huì)話缺省值的不同排序序列。如果不指定參數(shù),則功能和INITCAP相同。Nlsparams可以使用的形式是:
'NLS_SORT=sort’
這里sort制訂了一個(gè)語(yǔ)言排序序列。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法:NLS_LOWER(string[,nlsparams])
功能:返回字符串中的所有字母都是小寫形式的string。不是字母的字符不變。
Nlsparams參數(shù)的形式與用途和NLS_INITCAP中的nlsparams參數(shù)是相同的。如果nlsparams沒有被包含,那么NLS_LOWER所作的處理和LOWER相同。
使用位置;過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法:nls_upper(string[,nlsparams])
功能:返回字符串中的所有字母都是大寫的形式的string。不是字母的字符不變。nlsparams參數(shù)的形式與用途和NLS_INITCAP中的相同。如果沒有設(shè)定參數(shù),則NLS_UPPER功能和UPPER相同。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法:REPLACE(string,search_str[,replace_str])
功能:把string中的所有的子字符串search_str用可選的replace_str替換,如果沒有指定replace_str,所有的string中的子字符串search_str都將被刪除。REPLACE是TRANSLATE所提供的功能的一個(gè)子集。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法:RPAD(string1,x[,string2])
功能:返回在X字符長(zhǎng)度的位置上插入一個(gè)string2中的字符的string1。如果string2的長(zhǎng)度要比X字符少,就按照需要進(jìn)行復(fù)制。如果string2多于X字符,則僅string1前面的X各字符被使用。如果沒有指定string2,那么使用空格進(jìn)行填充。X是使用顯示長(zhǎng)度可以比字符串的實(shí)際長(zhǎng)度要長(zhǎng)。RPAD的行為方式與LPAD很相似,除了它是在右邊而不是在左邊進(jìn)行填充。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法:LPAD(string1,x[,string2])
功能:返回在X字符長(zhǎng)度的位置上插入一個(gè)string2中的字符的string1。如果string2的長(zhǎng)度要比X字符少,就按照需要進(jìn)行復(fù)制。如果string2多于X字符,則僅string1前面的X各字符被使用。如果沒有指定string2,那么使用空格進(jìn)行填充。X是使用顯示長(zhǎng)度可以比字符串的實(shí)際長(zhǎng)度要長(zhǎng)。RPAD的行為方式與LPAD很相似,除了它是在右邊而不是在左邊進(jìn)行填充。
String1,string2均為字符串,x為整數(shù)。在string1的左側(cè)用string2字符串補(bǔ)足致長(zhǎng)度x,可多次重復(fù),如果x小于string1的長(zhǎng)度,那么只返回string1中左側(cè)x個(gè)字符長(zhǎng)的字符串,其他的將被截去。String2的缺省值為單空格
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
select LPAD('123',8,'0') from dual; -- 00000123
select LPAD('123456789',8,'0') from dual; --12345678
語(yǔ)法: RTRIM(string1,[,string2])
功能: 返回刪除從右邊算起出現(xiàn)在string1中出現(xiàn)的字符string2. string2被缺省設(shè)置為單個(gè)的空格.數(shù)據(jù)庫(kù)將掃描string1,從右邊開始.當(dāng)遇到不在string2中的第一個(gè)字符,結(jié)果就被返回了RTRIM的行為方式與LTRIM很相似.
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法: SOUNDEX(string)
功能: 返回string的聲音表示形式.這對(duì)于比較兩個(gè)拼寫不同但是發(fā)音類似的單詞而言很有幫助. 返回與string發(fā)音相似的詞
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法: SUBSTR(string,a[,b])
功能: 返回從字母為值a開始b個(gè)字符長(zhǎng)的string的一個(gè)子字符串.如果a是0,那么它就被認(rèn)為從第一個(gè)字符開始.如果是正數(shù),返回字符是從左邊向右邊進(jìn)行計(jì)算的.如果b是負(fù)數(shù),那么返回的字符是從string的末尾開始從右向左進(jìn)行計(jì)算的.如果b不存在,那么它將缺省的設(shè)置為整個(gè)字符串.如果b小于1,那么將返回NULL.如果a或b使用了浮點(diǎn)數(shù),那么該數(shù)值將在處理進(jìn)行以前首先被卻為一個(gè)整數(shù).
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法: SUBSTRB(string,a[,b])
功能: 與SUBSTR大致相同,只是a,b是以字節(jié)計(jì)算
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法: TRANSLATE(string,from_str,to_str)
功能: 返回將所出現(xiàn)的from_str中的每個(gè)字符替換為to_str中的相應(yīng)字符以后的string. TRANSLATE是REPLACE所提供的功能的一個(gè)超集.如果from_str比to_str長(zhǎng),那么在from_str中而不在to_str中而外的字符將從string中被刪除,因?yàn)樗鼈儧]有相應(yīng)的替換字符. to_str不能為空.Oracle把空字符串認(rèn)為是NULL,并且如果TRANSLATE中的任何參數(shù)為NULL,那么結(jié)果也是NULL.
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
select TRANSLATE('fumble','umf','abc') test from dual; --cabble
select TRANSLATE('fumble','fu','abcdd') test from dual; --abmble
語(yǔ)法: TRIM(string)
功能: 刪除string字符串前后的空格
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法: UPPER(string)
功能: 返回大寫的string.不是字母的字符不變.如果string是CHAR數(shù)據(jù)類型的,那么結(jié)果也是CHAR類型的.如果string是VARCHAR2類型的,那么結(jié)果也是VARCHAR2類型的.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
這些函數(shù)接受字符參數(shù)回?cái)?shù)字結(jié)果.參數(shù)可以是CHAR或者是VARCHAR2類型的.盡管實(shí)際下許多結(jié)果都是整數(shù)值,但是返回結(jié)果都是簡(jiǎn)單的NUMBER類型的,沒有定義任何的精度或刻度范圍.
語(yǔ)法: ASCII(string)
功能: 數(shù)據(jù)庫(kù)字符集返回string的第一個(gè)字節(jié)的十進(jìn)制表示.請(qǐng)注意該函數(shù)仍然稱作為ASCII.盡管許多字符集不是7位ASCII.CHR和ASCII是互為相反的函數(shù).CHR得到給定字符編碼的響應(yīng)字符. ASCII得到給定字符的字符編碼.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法: INSTR(string1, string2[a,b])
功能: 得到在string1中包含string2的位置. string1時(shí)從左邊開始檢查的,開始的位置為a,如果a是一個(gè)負(fù)數(shù),那么string1是從右邊開始進(jìn)行掃描的.第b次出現(xiàn)的位置將被返回. a和b都缺省設(shè)置為1,這將會(huì)返回在string1中第一次出現(xiàn)string2的位置.如果string2在a和b的規(guī)定下沒有找到,那么返回0.位置的計(jì)算是相對(duì)于string1的開始位置的,不管a和b的取值是多少.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法: INSTRB(string1, string2[a,[b]])
功能: 和INSTR相同,只是操作的對(duì)參數(shù)字符使用的位置的是字節(jié).
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法: LENGTH(string)
功能: 返回string的字節(jié)單位的長(zhǎng)度.CHAR數(shù)值是填充空格類型的,如果string由數(shù)據(jù)類型CHAR,它的結(jié)尾的空格都被計(jì)算到字符串長(zhǎng)度中間.如果string是NULL,返回結(jié)果是NULL,而不是0.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法: LENGTHB(string)
功能: 返回以字節(jié)為單位的string的長(zhǎng)度.對(duì)于單字節(jié)字符集LENGTHB和LENGTH是一樣的.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法: NLSSORT(string[,nlsparams])
功能: 得到用于排序string的字符串字節(jié).所有的數(shù)值都被轉(zhuǎn)換為字節(jié)字符串,這樣在不同數(shù)據(jù)庫(kù)之間就保持了一致性. Nlsparams的作用和NLS_INITCAP中的相同.如果忽略參數(shù),會(huì)話使用缺省排序.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
函數(shù)接受NUMBER類型的參數(shù)并返回NUMBER類型的數(shù)值.超越函數(shù)和三角函數(shù)的返回值精確到36位.ACOS、ASIN、ATAN、ATAN2的結(jié)果精確到36位.
語(yǔ)法: ABS(x)
功能: 得到x的絕對(duì)值.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: ACOS(x)
功能: 返回x的反余弦值. x應(yīng)該從0到1之間的數(shù),結(jié)果在0到pi之間,以弧度為單位.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: ASIN(x)
功能: 計(jì)算x的反正弦值. X的范圍應(yīng)該是-1到1之間,返回的結(jié)果在-pi/2到pi/2之間,以弧度為單位.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: ATAN(x)
功能: 計(jì)算x的反正切值.返回值在-pi/2到pi/2之間,單位是弧度.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: ATAN2(x,y)
功能: 計(jì)算x和y的反正切值.結(jié)果在負(fù)的pi/2到正的pi/2之間,單位是弧度.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: CEIL(x)
功能: 計(jì)算大于或等于x的最小整數(shù)值.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: COS(x)
功能: 返回x的余弦值. X的單位是弧度.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: COSH(x)
功能: 計(jì)算x的雙曲余弦值.
語(yǔ)法: EXP(x)
功能: 計(jì)算e的x次冪. e為自然對(duì)數(shù),約等于2.71828.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: FLOOR(x)
功能: 返回小于等于x的最大整數(shù)值.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: LN(x)
功能: 返回x的自然對(duì)數(shù). x必須是正數(shù),并且大于0
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: LOG(x,y)
功能: 計(jì)算以x為底的y的對(duì)數(shù) .x必須大于0而且不等于1, y為任意正數(shù).
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: MOD(x,y)
功能: 返回x除以y的余數(shù).如果y是0,則返回x
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: POWER(x,y)
功能: 計(jì)算x的y次冪.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: ROUND(x[,y])
功能: 計(jì)算保留到小數(shù)點(diǎn)右邊y位的x值. y缺省設(shè)置為0,這會(huì)將x保留為最接近的整數(shù).如果y小于0,保留到小數(shù)點(diǎn)左邊相應(yīng)的位. Y必須是整數(shù).進(jìn)行四舍五入。
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: SIGN(x)
功能: 獲得x的符號(hào)位標(biāo)志.如果x<0返回-1.如果x=0返回0.如果x>0返回1.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法:SIN(x)
功能:計(jì)算x的正弦值. X是一個(gè)以弧度表示的角度.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法:SINH(x)
功能:返回x的雙曲正弦值.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: SQRT(x)
功能: 返回x的平方根. x必須是正數(shù).
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: TAN(x)
功能: 計(jì)算x的正切值, x是一個(gè)以弧度位單位的角度.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: TANH(x)
功能: 計(jì)算x的雙曲正切值.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: TRUNC(x[,y])
功能: 計(jì)算截尾到y位小數(shù)的x值. y缺省為0,結(jié)果變?yōu)橐粋€(gè)整數(shù)值.如果y是一個(gè)負(fù)數(shù),那么就截尾到小數(shù)點(diǎn)左邊對(duì)應(yīng)的位上. 只是該函數(shù)不對(duì)指定小數(shù)前或后的部分做相應(yīng)舍入選擇處理,而統(tǒng)統(tǒng)截去。
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
日期函數(shù)接受DATE類型的參數(shù).除了MONTHS_BETWEEN函數(shù)返回的是NUMBER類型的結(jié)果,所有其他的日期函數(shù)返回的都是DATE類型的數(shù)值.
語(yǔ)法: ADD_MONTHS(d,x)
功能: 返回日期d加上x個(gè)月后的月份。x可以是任意整數(shù)。如果結(jié)果日期中的月份所包含的天數(shù)比d日期中的“日”分量要少。(即相加后的結(jié)果日期中的日分量信息已經(jīng)超過(guò)該月的最后一天,例如,8月31日加上一個(gè)月之后得到9月31日,而9月只能有30天)返回結(jié)果月份的最后一天。
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法:LAST_DAY(d)
功能:計(jì)算包含日期的d的月份最后一天的日期.這個(gè)函數(shù)可以用來(lái)計(jì)算當(dāng)月中剩余天數(shù).
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: MONTHS_BETWEEN(date 1,date2)
功能: 計(jì)算date 1和date2之間月數(shù).如果date 1,date2這兩個(gè)日期中日分量信息是相同的,或者這兩個(gè)日期都分別是所在月的最后一天,那么返回的結(jié)果是一個(gè)整數(shù),否則包括一個(gè)小數(shù),小數(shù)為富余天數(shù)除以31.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: NEW_TIME(d,zone1,zone2)
功能: 計(jì)算當(dāng)時(shí)區(qū)zone1中的日期和時(shí)間是s時(shí)候,返回時(shí)區(qū)zone2中的日期和時(shí)間. zone1和zone2是字符串.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: NEXT_DAY(d,string)
功能: 計(jì)算在日期d后滿足由string給出的條件的第一天. String使用位置;當(dāng)前會(huì)話的語(yǔ)言指定了一周中的某一天.返回值的時(shí)間分量與d的時(shí)間分量是相同的. String的內(nèi)容可以忽略大小寫.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: ROUND(d[,format])
功能: 將日期d按照由format指定的格式進(jìn)行處理.如果沒有給format則使用缺省設(shè)置`DD`.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: SYSDATE
功能: 取得當(dāng)前的日期和時(shí)間,類型是DATE.它沒有參數(shù).但在分布式SQL語(yǔ)句中使用時(shí),SYSDATE返回本地?cái)?shù)據(jù)庫(kù)的日期和時(shí)間.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: TRUNC(d,format)
功能: 計(jì)算截尾到由format指定單位的日期d.可以使用位置:格式和效果.缺省參數(shù)同ROUNG.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
轉(zhuǎn)換函數(shù)用于在PL/SQL數(shù)據(jù)類型之間進(jìn)行轉(zhuǎn)換.PL/SQL盡可能地自動(dòng)進(jìn)行轉(zhuǎn)換,也就是采用隱含方式轉(zhuǎn)換.隱含轉(zhuǎn)換無(wú)法轉(zhuǎn)換格式信息,并且有些類型的數(shù)據(jù)之間不支持隱含轉(zhuǎn)換,所以對(duì)這些可以采用顯示轉(zhuǎn)換.使用顯示轉(zhuǎn)換也是一種好的編程習(xí)慣
.
語(yǔ)法: CHARTOROWID(string)
功能: 把包含外部格式的ROWID的CHAR或VARCHAR2數(shù)值轉(zhuǎn)換為內(nèi)部的二進(jìn)制格式.參數(shù)string必須是包含外部格式的ROWID的18字符的字符串.oracle7和 oracle8中的外部格式是不同的.CHARTOROWID是ROWIDTOCHAR的反函數(shù).
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: CONVERT(string,dest_set[,source_set])
功能: 將字符串string從source_set所表示的字符集轉(zhuǎn)換為由dest_set所表示的字符集.如果source_set沒有被指定,它缺省的被設(shè)置為數(shù)據(jù)庫(kù)的字符集.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: HEXTORAW(string)
功能: 將由string表示的二進(jìn)制數(shù)值轉(zhuǎn)換為一個(gè)RAW數(shù)值. String應(yīng)該包含一個(gè)十六進(jìn)制的數(shù)值. String中的每?jī)蓚€(gè)字符表示了結(jié)果RAW中的一個(gè)字節(jié)..HEXTORAW和RAWTOHEX為相反的兩個(gè)函數(shù).
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: RAWTOHEX(rawvalue)
功能: 將RAW類數(shù)值rawvalue轉(zhuǎn)換為一個(gè)相應(yīng)的十六進(jìn)制表示的字符串. rawvalue中的每個(gè)字節(jié)都被轉(zhuǎn)換為一個(gè)雙字節(jié)的字符串. RAWTOHEX和HEXTORAW是兩個(gè)相反的函數(shù).
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: ROWIDTOCHAR(rowid)
功能: 將ROWID類型的數(shù)值rowid轉(zhuǎn)換為其外部的18字符的字符串表示,在oracle7和oracle8之間有些不一樣的地方. ROWIDTOCHAR和CHARTOROWID是兩個(gè)相反的函數(shù).
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: TO_CHAR(d [,format[,nlsparams]])
功能: 將日期d轉(zhuǎn)換為一個(gè)VARCHAR2類型的字符串.如果指定了format,那么就使用位置:它控制結(jié)果的方式.格式字符串是由格式元素構(gòu)成的.第一個(gè)元素返回日期數(shù)值一個(gè)部份,例如日子.如果沒有給定format,使用的就是該會(huì)話的缺省日期格式.如果指定了nlsparams,它就控制著返回字符串的月份和日分量信息所使用的語(yǔ)言. nlsparams的格式是:
“NLS_DATE_LANGUAGE”
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: TO_CHAR(labels[,format])
功能: 將MISLABEL的LABEL轉(zhuǎn)換為一個(gè)VARCHAR2類型的變量.
使用位置: 在trusted數(shù)據(jù)庫(kù)的過(guò)程性語(yǔ)句和SQL語(yǔ)句。
語(yǔ)法: TO_CHAR(num[,format[,nlsparams]])
功能: 將NUMBER類型的參數(shù)num轉(zhuǎn)換為一個(gè)VARCHAR2類型的變量.如果指定了format,那么它會(huì)控制這個(gè)轉(zhuǎn)換處理.表5-5列除了可以使用的數(shù)字格式.如果沒有指定format,它會(huì)控制這個(gè)轉(zhuǎn)換過(guò)程.下面列出了可以使用的數(shù)字格式.如果沒有指定format,那么結(jié)果字符串將包含和num中有效位的個(gè)數(shù)相同的字符. nlsparams用來(lái)指定小數(shù)點(diǎn)和千分位分隔符和貨幣符號(hào).可以使用的格式:
`NLS_NUMERIC_CHARS=”dg”NLS_CURRENCY=”string”
d和g分別表示列小數(shù)點(diǎn)和千分位分隔符. String表示了貨幣的符號(hào).例如,在美國(guó)小數(shù)點(diǎn)分隔符通常是一個(gè)句點(diǎn)(.),分組分隔符通常是一個(gè)逗號(hào)(,),而千分位符號(hào)通常是一個(gè)$.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: TO_DATE(String[,format[,nlsparams]])
功能: 把CHAR或者VARCHAR2類型的String轉(zhuǎn)換為一個(gè)DATE類型的變量. format是一個(gè)日期格式字符串.當(dāng)不指定format的時(shí)候,使用該會(huì)話的缺省日期格式.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: TO_LABEL(String[,format])
功能: 將String轉(zhuǎn)換為一個(gè)MLSLABEL類型的變量. String可以是VARCHAR2或者CHAR類型的參數(shù).如果指定了format,那么它就會(huì)被用在轉(zhuǎn)換中.如果沒有指定format,那么使用缺省的轉(zhuǎn)換格式.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: TO_MULTI_BYTE(String)
功能: 計(jì)算所有單字節(jié)字符都替位換位等價(jià)的多字節(jié)字符的String.該函數(shù)只有當(dāng)數(shù)據(jù)庫(kù)字符集同時(shí)包含多字節(jié)和單字節(jié)的字符的時(shí)候有效.否則, String不會(huì)進(jìn)行任何處理. TO_MULTI_BYTE和TO_SINGLE_BYTE是相反的兩個(gè)函數(shù).
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: TO_NUMBER(String[,format[,nlsparams]])
功能: 將CHAR或者VARCHAR2類型的String轉(zhuǎn)換為一個(gè)NUMBER類型的數(shù)值.如果指定了format,那么String應(yīng)該遵循相應(yīng)的數(shù)字格式. Nlsparams的行為方式和TO_CHAR中的完全相同.TO_NUMBER和TO_CHAR是兩個(gè)相反的函數(shù).
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: TO_SINGLE_BYTE(String )
功能: 計(jì)算String中所有多字節(jié)字符都替換為等價(jià)的單字節(jié)字符.該函數(shù)只有當(dāng)數(shù)據(jù)庫(kù)字符集同時(shí)包含多字節(jié)和單字節(jié)的字符的時(shí)候有效.否則, String不會(huì)進(jìn)行任何處理.
TO_MULTI_BYTE和TO_SINGLE_BYTE是相反的兩個(gè)函數(shù).
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
分組函數(shù)返回基于多個(gè)行的單一結(jié)果,這和單行函數(shù)正好形成對(duì)比,后者是對(duì)單行返回一個(gè)結(jié)果.這些函數(shù)僅僅對(duì)于查詢的選擇列表和GROUP BY子句有效.
這些函數(shù)大都可以接受對(duì)參數(shù)的修飾符.可以使用位置:的修飾符有DISTINCT和ALL.如果使用位置:了DISTINCT修飾符,那么在處理中僅僅會(huì)考慮由查詢返回的不同的取值.ALL修飾符會(huì)使得該函數(shù)考慮由查詢返回的所有數(shù)值.如果沒有指定任何修飾符,那么缺省使用位置:的是ALL修飾符.
語(yǔ)法: AVG([DISTINCT| ALL]col)
功能: 返回一列數(shù)據(jù)的平均值.
使用位置: 查詢列表和GROUP BY子句.
語(yǔ)法: COUNT(*| [DISTINCT| ALL] col)
功能: 得到查詢中行的數(shù)目.如果使用了*獲得行的總數(shù).如果在參數(shù)中傳遞的是選擇列表,那么計(jì)算的是非空數(shù)值.
獲得由label界定的最大下界.函數(shù)僅用于trusted oracle.GLB
語(yǔ)法: GLB ([DISTINCT| ALL]label)
功能: 獲得由label界定的最大下界.函數(shù)僅用于trusted oracle.
使用位置:trusted數(shù)據(jù)庫(kù)的選擇列表和GROUP BY子句.
語(yǔ)法: LUB ([DISTINCT| ALL]label)
功能: 獲得由label界定的最小上界.用于trusted oracle.數(shù)據(jù)庫(kù).
使用位置: trusted數(shù)據(jù)庫(kù)的選擇列表和GROUP BY子句.
過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法: MAX([DISTINCT| ALL]col)
功能: 獲得選擇列表項(xiàng)目的最大值.
使用位置: 僅用于查詢選擇和GROUP BY子句.
語(yǔ)法: MIN([DISTINCT| ALL]col)
功能: 獲得選擇列表的最小值.
使用位置: 僅用于查詢選擇和GROUP BY子句.
語(yǔ)法: STDDEV([DISTINCT| ALL]col)
功能: 獲得選擇列表的標(biāo)準(zhǔn)差.標(biāo)準(zhǔn)差為方差的平方根.
使用位置: 僅用于查詢選擇和GROUP BY子句.
語(yǔ)法:SUM([DISTINCT| ALL]col)
功能:返回選擇的數(shù)值和總和
使用位置: 僅用于查詢選擇和GROUP BY子句.
語(yǔ)法: VARIANCE([DISTINCT| ALL]col)
功能:返回選擇列表項(xiàng)目的統(tǒng)計(jì)方差.
使用位置: 僅用于查詢選擇和GROUP BY子句.
語(yǔ)法: BFILENAME(directory,file_name)
功能: 獲得操作系統(tǒng)中與物理文件file_name相關(guān)的BFILE位置指示符. directory必須是數(shù)據(jù)字典中的DIRECTORY類型的對(duì)象.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法:
DECODE(base_expr,comparel,valuel,
Compare2,value2,
…
default)
功能: 把base_expr與后面的每個(gè)compare (n) 進(jìn)行比較,如果匹配返回相應(yīng)的value (n) .如果沒有發(fā)生匹配,則返回default
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句。
語(yǔ)法:DUMP(expr[,number_format[,start_position][,length]])
功能:獲得有關(guān)expr的內(nèi)部表示信息的VARCHAR2類型的數(shù)值. number_format指定了按照下面返回?cái)?shù)值的基數(shù)(base):
number_format 結(jié)果
8 八進(jìn)制表示
10 十進(jìn)制表示
16 十六進(jìn)制表示
17 單字符
默認(rèn)的值是十進(jìn)制.
如果指定了start_position和length,那么返回從start_position開始的長(zhǎng)為length的字節(jié).缺省返回全部.
數(shù)據(jù)類型按照下面規(guī)定的內(nèi)部數(shù)據(jù)類型的編碼作為一個(gè)數(shù)字進(jìn)行返回.
代碼 數(shù)據(jù)類型
1 VARCHAR2
2 NUMBER
8 LONG
12 DATE
23 RAW
69 ROWID
96 CHAR
106 MLSLABEL
使用位置: SQL語(yǔ)句.
語(yǔ)法: EMPTY_CLOB
EMPTY_BLOB
功能: 獲得一個(gè)空的LOB提示符 (locator) .EMOTY_CLOB返回一個(gè)字符指示符,而 EMPTY_BLOB返回一個(gè)二進(jìn)制指示符.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句.
語(yǔ)法: GREATEST(expr1[,expr2]…)
功能: 計(jì)算參數(shù)中最大的表達(dá)式.所有表達(dá)式的比較類型以expr1為準(zhǔn).
返回一組表達(dá)式中的最大值,即比較字符的編碼大小.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句.
select greatest(’AA’,’AB’,’AC’) from dual;
select greatest(1,2,5) from dual;
語(yǔ)法: GREATEST_LB(label1[,label2]…)
功能: 返回標(biāo)簽(label)列表中最大的下界.每個(gè)標(biāo)簽必須擁有數(shù)據(jù)類型MLSLABEL、RAWMLSLABEL或者是一個(gè)表因字符串文字.函數(shù)只能用于truested oracle庫(kù).
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句.
語(yǔ)法: LEAST(expr1[,:expr2]…)
功能: 獲得參數(shù)中最小的表達(dá)式.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句.
select least(’啊’,’安’,’天’) from dual;
select least(1,5,9) from dual;
語(yǔ)法: LEAST_UB(label1[,label2]…)
功能: 與GREATEST_UB函數(shù)相似,本函數(shù)返回標(biāo)簽列表的最小上界.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句.
語(yǔ)法: NVL (expr1, expr2)
功能: 如果expr1是NULL,那么返回expr2,否則返回expr1.
如果expr1不是字符串,那么返回值的數(shù)據(jù)類型和expr1是相同的,否則,返回值的數(shù)據(jù)類型是VARCHAR2.此函數(shù)對(duì)于檢查并確定查詢的活動(dòng)集不包含NULL值十分有用.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句.
語(yǔ)法:
功能: 獲得當(dāng)前數(shù)據(jù)庫(kù)用的惟一標(biāo)識(shí),標(biāo)識(shí)是一個(gè)整數(shù).
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句.
語(yǔ)法:
功能: 取得當(dāng)前oracle用戶的名字,返回的結(jié)果是一個(gè)VARCHAR2型字符串.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句.
語(yǔ)法: USERENV(option)
功能: 根據(jù)參數(shù)option,取得一個(gè)有關(guān)當(dāng)前會(huì)話信息的VARCHAR2數(shù)值.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句.
語(yǔ)法: VSIZE(value)
功能: 獲得value的內(nèi)部表示的字節(jié)數(shù).如果value是NULL,結(jié)果是NULL.
使用位置: 過(guò)程性語(yǔ)言和SQL語(yǔ)句.
-- spool 文件路徑名;
spool g:"mysql.sql;
--業(yè)務(wù)操作
--結(jié)束輸出
spool off;
我們可以將多條sql語(yǔ)句保存在一個(gè)文本文件中,這樣當(dāng)要執(zhí)行這個(gè)文件中的所有的sql語(yǔ)句時(shí),用上面的任一命令即可,這類似于dos中的批處理。
--start file_name
-- @ file_name
start g:"mysql.sql;
@ g:"mysql.sql;
edit
ed
/
desc table_name ;
clear screen;
exit;
--SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}
set autocommit on;
-- SET ECHO {ON|OFF};
set echo on;
--SET FEED[BACK] {6|n|ON|OFF}
-- 默認(rèn)只有結(jié)果大于6行時(shí)才顯示結(jié)果的行數(shù)。如果set feedback 1 ,則不管查詢到多少行都返回。當(dāng)為off 時(shí),一律不顯示查詢的行數(shù)
set feedback 1;
--當(dāng)set heading off 時(shí),在每頁(yè)的上面不顯示列標(biāo)題,而是以空白行代替
--SET HEA[DING] {ON|OFF}
set heading on;
-- 如果一行的輸出內(nèi)容大于設(shè)置的一行可容納的字符數(shù),則折行顯示
--SET LIN[ESIZE] {80|n}
set linesize 100;
-- SET NEWP[AGE] {1|n|NONE}
--當(dāng)set newpage 0 時(shí),會(huì)在每頁(yè)的開頭有一個(gè)小的黑方框。
--當(dāng)set newpage n 時(shí),會(huì)在頁(yè)和頁(yè)之間隔著n個(gè)空行。
--當(dāng)set newpage none 時(shí),會(huì)在頁(yè)和頁(yè)之間沒有任何間隔
set newpage 1;
--如果設(shè)為0,則所有的輸出內(nèi)容為一頁(yè)并且不顯示列標(biāo)題
--SET PAGES[IZE] {24|n}
set pagesize 20;
--SET SERVEROUT[PUT] {ON|OFF}
set serveroutput on;
--在用spool命令將一個(gè)大表中的內(nèi)容輸出到一個(gè)文件中時(shí),將內(nèi)容輸出在屏幕上會(huì)耗費(fèi)大量的時(shí)間,
--設(shè)置set termspool off后,則輸出的內(nèi)容只會(huì)保存在輸出文件中,不會(huì)顯示在屏幕上,極大的提高了spool的速度
--SET TERM[OUT] {ON|OFF}
set termout off;
CONNECT user_name/passwd@l_jiayou
CONNECT user_name/passwd@數(shù)據(jù)庫(kù)名稱
show user;
show all;
Show error
--show REL[EASE]
show release
show SGA
--show PARAMETERS [parameter_name]
show parameters;
select username,default_tablespace from user_users
select * from user_role_privs
select * from user_sys_privs;
select * from user_tab_privs;
select * from user_tables
select object_name,object_id from user_objects where instr(object_name,'LOG')>0;
select object_name,created from user_objects where object_name=upper('&table_name');
select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name');
select table_name,cache from user_tables where instr(cache,'Y')>0;
select index_name,index_type,table_name from user_indexes order by table_name;
select * from user_ind_columns where index_name=upper('&index_name');
select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name');
select * from user_sequences;
--select view_name from user_views;
select view_name,text_length from user_views;
set long 2000; 說(shuō)明:可以根據(jù)視圖的text_length值設(shè)定set long 的大小
select text from user_views where view_name=upper('&view_name');
select * from user_synonyms
select constraint_name, constraint_type,search_condition, r_constraint_name
from user_constraints where table_name = upper('&table_name');
select c.constraint_name,c.constraint_type,cc.column_name
from user_constraints c,user_cons_columns cc where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')
and c.owner = cc.owner and c.constraint_name = cc.constraint_name order by cc.position;
select object_name,status from user_objects where object_type='FUNCTION';
select object_name,status from user_objects where object_type='PROCEDURE';
select text from all_source where owner=user and name=upper('&plsql_name');
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
select segment_name, tablespace_name, r.status,
(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,
max_extents, v.curext CurExtent
From dba_rollback_segs r, v$rollstat v
Where r.segment_id = v.usn(+)
order by segment_name ;
select name from v$controlfile;
select member from v$logfile;
select sum(bytes)/(1024*1024) as free_space,tablespace_name
from dba_free_space group by tablespace_name;
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;
select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;
Select version FROM Product_component_version
Where SUBSTR(PRODUCT,1,6)='Oracle';
Select Created, Log_Mode, Log_Mode From V$Database;
select username,sid,serial# from v$session;
alter system kill session 'sid,serial#';
select pro.spid from v$session ses,v$process pro where ses.sid=21 and ses.paddr=pro.addr;
--說(shuō)明:21是某個(gè)連接的sid數(shù),然后用 kill 命令殺此進(jìn)程號(hào)。
例子:
表test122,有兩個(gè)字段t_id varchar2(20),t_name varchar2(10);
要求t_id的值為當(dāng)天日期加上0001,0002的形式遞加作為序列,如20070209_0001,200709_0002;
思路:查訊當(dāng)天的t_id的最大值加1,然后生成序列;
insert into test122 values
(to_char(sysdate,'yyyymmdd')||'_'||(select lpad(to_number(ltrim(substr(max(t_id),length(max(t_id))-3),'0'))+1,4,0)
from test122 where substr(t_id,0,length(t_id)-5)=to_char(sysdate,'yyyymmdd')),'ok');
準(zhǔn)備:
create table mymenu(tree_id varchar(10),tree_pid varchar(10),tree_lable varchar(50),tree_link varchar(100))
insert into mymenu values('1','0','蔬菜','')
insert into mymenu values('2','0','水果','')
insert into mymenu values('3','0','谷物','')
insert into mymenu values('4','0','肉類','')
insert into mymenu values('5','1','白菜','')
insert into mymenu values('6','1','茄子','htt://www.baidu.com')
insert into mymenu values('7','5','四月白','http://www.google.cn')
insert into mymenu values('8','5','冬白菜','htt://www.baidu.com')
insert into mymenu values('9','2','西瓜','http://www.google.cn')
insert into mymenu values('10','2','桔子','htt://www.baidu.com')
insert into mymenu values('11','3','大米','http://www.google.cn')
insert into mymenu values('12','3','大豆','htt://www.baidu.com')
insert into mymenu values('13','4','豬肉','http://www.google.cn')
insert into mymenu values('14','4','魚','')
insert into mymenu values('15','14','昌魚','http://www.google.cn')
insert into mymenu values('16','14','王八','htt://www.baidu.com')
從根往樹末梢查詢:
select * from mymenu start with tree_pid='0' connect by prior tree_id=tree_pid;//查詢所有
select * from mymenu start with tree_id='1' connect by prior tree_id=tree_pid; //查詢指定ID
從樹末梢向根查詢:
select * from mymenu start with tree_pid='0' connect by prior tree_pid=tree_id
select * from mymenu start with tree_id='8' connect by prior tree_pid=tree_id
如果還有其他條件用and 加在語(yǔ)句后面
select * from mymenu start with tree_pid='0' connect by prior tree_id=tree_pid and tree_link is null
select * from mymenu start with tree_pid='0' connect by prior tree_id=tree_pid and tree_link is not null
oracle的目錄/network/ADMIN/tnsnames.ora
內(nèi)容:
MIMI(客戶端連接的名稱) =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = NTDB.RUNNER)
)
)
---------------------------------------end-------------------------------------------------
alter table m_gl_gls3_history add (aaaaa varchar2(20),bbbbb varchar2(10))
alter table m_gl_gls3_history modify (aaaaa varchar2(10))
--要改變表中的字段的類型或縮小字段長(zhǎng)度,該字段的所有記錄值必須為空。
--如果改字段存在記錄值,則該字段長(zhǎng)度只能擴(kuò)大,不能縮小。
alter table m_gl_gls3_history drop (aaaaa , bbbbb )
聯(lián)系客服