日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

pl/sql函数学习

發(fā)布時(shí)間:2025/6/17 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pl/sql函数学习 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
7種函數(shù)的詳細(xì)介紹及用法:

1、錯(cuò)誤報(bào)告(error reporting)函數(shù)
?? sqlcode?? 返回oracle錯(cuò)誤號(hào)
?? sqlerrm?? 返回oracle錯(cuò)誤信息
主要用於異常處理
? declare
? err_num number;
? err_msg varchar2(100);
? begin
? ...
? exception
? ...
? when others then
? /*當(dāng)引發(fā)異常的時(shí)候,將SQLERRM和SQLCODE值取出,插入表ERRORS中*/
? err_num:=sqlcode;
? err_msg:=substr(sqlerrm,1,100);
? insert into errors(errnum,errmsg) values(err_num,err_msg);
? end;

2、數(shù)值(Number)函數(shù)
?? abs? 返回絕對(duì)值
?? acos 返回以弧度為單位的反余弦值
?? asin 返回以弧度為單位的反正弦值
?? atan(m) 返回m的反正切值(以弧度為單位),即返回arctan(m)
?? atan2(m,n) 返回m與n的反正切值即返回aretan(m/n)
?? bitand 位與函數(shù),即按位相與
?? ceil 返回大於等於特定值的最小整數(shù)
?? cos? 返回以弧度為單位的余弦值
?? cosh 返回以弧度為單位的雙曲余弦值
?? exp? 求e的x方(e=2.71828,如 exp(3)=e的3次方)
?? floor 返回小於等於特定值的最大整數(shù)
?? ln??? 返回自然對(duì)數(shù)
?? log(x,y) 返回以x為底的y的對(duì)數(shù)
?? mod(x,y) 返回x除以y的余數(shù)
?? power(x,y) 返回x的y次方
?? round? 返回四捨五入的值
?? sign(x) 根據(jù)x的值決定返回1、0或-1(x>0,返回1;x=0,返回0;x<0,返回-1)
?? sin? 返回以弧度為單位的正弦值
?? sinh 返回以弧度為單位的雙曲正弦值
?? sqrt(x)? 返回x的平方根
?? tan? 返回以弧度為單位的正切值
?? tanh? 返回以弧度為單位的雙曲正切值
?? trunc(x,y) 返回剪裁到指定位置y後x的值(y可不寫(xiě)默認(rèn)為0,將x裁剪為整數(shù))

****DUAL表: 是oracle工作表,是一個(gè)行和一個(gè)列的標(biāo)準(zhǔn)表,它被用做一個(gè)
???????????? 虛擬表。要展示oracle內(nèi)置函數(shù)的功能時(shí),用到此表

1 bitand: select order_id,customer_id,decode(bitand(order_status,1),1,
????????? 'warehouse','postoffice') location;
2 ceil: select ceil(-7.38) from dual;  -7
3 floor: select floor(-7.38) from dual; -8 
4 sign: select sign(-23) from dual;   -1
5 round: select round(123.456),round(123.789,-1),round(456.123,1) from dual;
???????? 注:其結(jié)果是四捨五入到保留指定位
6 trunc: select trunc(456.325,1),trunc(753.256,-1),trunc(5240.45) from dual;
???????? 注:其結(jié)果是保留到指定位但不執(zhí)行四捨五入

3、字符(char)函數(shù):下面為ORACLE中所有的字符函數(shù)。
??
? ASCII 返回指定字符的ASCII碼
? CHR? 返回指定的ASCII碼的字符和ASCII函數(shù)互為反函數(shù)
? CONCAT 連接兩個(gè)指定的字符(‘與“||”操作符作用相同)
? INITCAP 返回拽定的字符中,該字符串每一個(gè)單詞的第一個(gè)字母為大寫(xiě),其他均為小寫(xiě),
????????? 不影響不是字母的字符串。
? INSTR(X,Y[,Z]) 返回Y在X中的位置,如沒(méi)有則為0,如有Z則從Z開(kāi)始找到的Y在X中的位置,與SUBSTR(X,Y[,Z])相似。
? INSTRB(X,Y) 返回Y在X中位置,如沒(méi)有則為0,對(duì)於單字節(jié)字符系統(tǒng),返回的值以字節(jié)為單位
? LENGTH(X) 返回以字節(jié)為單位的X的長(zhǎng)度,包括填充的字符,如果值是未知的,則返回NULL;
? LENGTHB(x) 作用同LENGTH(X),對(duì)於單字節(jié)字符系統(tǒng),返回值以字節(jié)為單位。
? LOWER? 將特定的字符串化為小寫(xiě),不影響不是字母的字符串
? LPAD(X,I,Y) 用字符串Y按指定的填充I填充X字符串的左邊。
? LTRIM(X,Y)? 裁剪字符串和Y中字符相同的X左邊的字符。
? RTRIM(X,Y)? 裁剪字符串和Y中字符相同的X右邊的字符。
? ~~NLS_INITCAP 與INITCAP函數(shù)相同,它可以使用NLSSORT指定的分類方法。
? ~~NLS_LOWER? 與LOWER函數(shù)相同,它可以使用NLSSORT指定的分類方法。
? ~~NLS_UPPER? 與UPPER函數(shù)相同,它可以使用NLSSORT指定的分類方法。
??? NLSSORT(string) 返回用於排序string的字符串字節(jié)。
? REPLACE(X,Y,Z) 用Z字符串取代X字符串中的Y字符串。
? RPAD(X,I,Y) 用字符串Y按指定的填充數(shù)I填充X字符串的右邊。
? LPAD(X,I,Y) 用字符串Y按指定的填充婁I填充X字符串的左邊。
? SPIMDEX 返回字符串的語(yǔ)音表示。
? SUBSTRB 同SUBSTR,以字節(jié)婁而百字符數(shù)返回字符串的一部分。
? TRIM? 裁剪字符串兩邊的字符,是LTRIM和RTRIM兩個(gè)函數(shù)的組合。
? TRUNSLATE? 同REPLACE,作用於字符基礎(chǔ)上而非字符串基礎(chǔ)上。
? UPPER 將整個(gè)字符串轉(zhuǎn)換成大寫(xiě),不對(duì)非字母字符串產(chǎn)生作用。

祥解字符函數(shù):
? 1 CONCAT? : SELECT CONCAT('MY','ORACLE') "ORACLE" FROM DUAL;
? 2 LPAD??? : SELECT LPAD('THIS IS MY ORACLE',10,'XY') FROM DUAL;
????????????? 結(jié)果是 THIS IS MY
????????????? SELECT LPAD('THIS IS MY ORACLE',20,'XY') FROM DUAL;
????????????? 結(jié)果是 XYXTHIS IS MY ORACLE
????????????? SELECT LPAD('THIS IS MY ORACLE',18,'XY') ORACLE FROM DUAL;
????????????? 結(jié)果是 XTHIS IS MY ORACLE
3 LTRIM??? : SELECT LTRIM('XXBBBBZZZZYXYXMYBOOK','XB') FROM DUAL;
????????????? 結(jié)果是 ZZZZYXYXMYBOOK
4 NLS_INITCAP : SELECT NLS_INITACP('jdfhkj','NLS_SORT=Xdutch') result from dual;
???????????????? 結(jié)果是 Jdfhkj
5 NLS_LOUER: SELECT NLS_LOWER('JKJKJK','NLS_SORT=Xgerman') "result" from dual;
????????????? 結(jié)果是 jkjkjk
6 NLS_UPPER: SELECT NLS_UPPER('jkjkjk','NLS_SORT=Xgerman') "result" from dual;
????????????? 結(jié)果是 JKJKJK
7 INSTR? : SELECT INSTR('AABBABCAB','AB') "result" from dual;
??????????? 結(jié)果是 2
??????????? SELECT INSTR('AABBASCAB','AB',4) "result" from dual;
??????????? 結(jié)果是 8
8 NLSSORT: SELECT NLSSORT ('MYORACLE_函數(shù)123') FROM DUAL;
??????????? 結(jié)果是 4D794F524C434C455FBAAFCAFD31323300返回用於排序string字符串字節(jié)。
9 REPLACE : SELECT REPLACE('this is that','is','are') "result" from dual;
???????????? 結(jié)果是 thare are that
???????????? SELECT REPLACE('this is that','is','are') "result" from dual;
???????????? 結(jié)果是 th? that
10 SOUNDEX: SELECT SOUNDEX('SCOTT') ONE,SOUND('SKIT') TWO FROM DUAL;
???????????? 結(jié)果是 IST? SET
??????????????????? ---- -----
??????????????????? S300? S300
11 SUBSTR : SELECT SUBSTR('MYBOOKISORACLE','3,8) "RESULT" FROM DUAL;
???????????? 結(jié)果是Result
?????????????????? ------
?????????????????? BOOKISOR
???????????? SELECT SUBSTR('MybookIsOracle',-6,8) "Result" from dual;
???????????? 結(jié)果是result
????????????????? --------
?????????????????? Oracle
???????????? SELECT SUBSTR('MYBOOKISORACLE',6) "RESULT" FROM DUAL;
???????????? 結(jié)果是result
????????????????? --------
????????????????? KISORACLE
12 TRANSLATE : SELECT TRANSLATE('ABCMYORACLEABC','ABC','**') "RESULT" FROM DUAL;
?????????????? 結(jié)果是result
??????????????????? --------
????????????????? **myoracle**
??????????????
** 13 TRIM : SELECT TRIM('A' FROM 'AAMYORACLEAA') "RESULT" FROM DUAL;
?????????? 結(jié)果是 result
???????????????? ----------
????????????????? MYORACLE


4、轉(zhuǎn)換 (Conversion) 函數(shù)
 
?? CHARTOROWID: 將包含外部格式的ROWID的CHAR或VARCHAR2數(shù)值轉(zhuǎn)換為內(nèi)部的二進(jìn)制格式
  CONVERT : 從一個(gè)字符集轉(zhuǎn)換到另一個(gè)字符集
  HEXTORAW: 從十六進(jìn)制字符串值轉(zhuǎn)換為內(nèi)部的原始值
  ROWTOHEX: 將內(nèi)部的原始值轉(zhuǎn)換為十六進(jìn)制字符串值
  ROWIDTOCHAR: 將ROW ID轉(zhuǎn)換為其外部的18-字節(jié)字符串表示
  TO_BLOB : 將指定的值轉(zhuǎn)換為BLOB類型的值
  TO_CHAR: 將DATE、MLSLABLE和NUMBER強(qiáng)制轉(zhuǎn)換為VARCHAR2字符串
  TO_CLOB: 將指定的值轉(zhuǎn)換為CLOB類型的值
  TO_DATE: 將CHAR或VARCHAR2字符串強(qiáng)制轉(zhuǎn)換為日期值
  TO_LABEL : 將CHAR或varchar2字符串強(qiáng)制轉(zhuǎn)換為MLSABEL
?? TO_MULTI_BYTE: 將任何單字節(jié)字符串轉(zhuǎn)換為多字節(jié)字符串
  TO_NUMBER: 將CHAR或VARCHAR2字符串強(qiáng)制轉(zhuǎn)換為NUMBER值
  TO_SINGLE_BYTE: 將任何多字節(jié)字符串轉(zhuǎn)換為單字節(jié)字符串

常用字符集:
 
?? US7ASCII: U.S7位ASCII字符集。這是大多數(shù)Unix操作系統(tǒng)和運(yùn)行於Unix上的Oracle數(shù)據(jù)庫(kù)所采用的字符集
  WE8DEC:  DEC西歐8位字符集
  WE8HP:??? HP西歐LaserJet8位字符集
  F7DEC:??? DEC法語(yǔ)7位字符集
  WE8EBCDIC500 : IBM西歐EBCDIC Code Page 500字符集
  WE8PC850 : IBM PC Code Page 500 字符集,這是大多數(shù)PC系統(tǒng)和運(yùn)行於PC上的Oracle數(shù)據(jù)庫(kù)所采用的字符集
  WE8ISO8859P1: ISO_8859-1西歐8位字符集

TO_CHAR的四種轉(zhuǎn)換情況:

 1 TO_CHAR(DATE[,FORMAT[NLSPARAMS]])
?
 1> 將日期期轉(zhuǎn)換為字符型
   AD、A.D. AD 指示符。可帶句點(diǎn)也可不帶句點(diǎn)。
   AM、A.M.? 午前指示符。可帶句點(diǎn)也可不帶句點(diǎn)。
   BC、B.C.? BC指示符。可帶句點(diǎn)也可不帶句點(diǎn)。
   CC、C.C.? 世紀(jì)。SCC作為負(fù)數(shù)返回BC日期。(century:世紀(jì))

  *日期格式元素與描述:
   D  一周中的星期幾,用1-7表示,(星期天為1)
   DAY? 天的全稱。使用空格填充9個(gè)字符,大小寫(xiě)敏感。
  ? DD?? 月中的第幾天(1-31)
????? DDD? 年中的第幾天(1-366)
????? DY?? 天名稱的簡(jiǎn)寫(xiě)。大小寫(xiě)敏感
????? FX?? 在數(shù)據(jù)元素語(yǔ)格式之間采用準(zhǔn)確的匹配模式。
????? FM?? 填充模式。確定在輸出格式中是否用空格填充。
????? HH、HH12? 一天中的時(shí)間(1-12)
????? HH24 一天中的時(shí)間(1-24)
????? IW?? 返回根據(jù)ISO標(biāo)準(zhǔn)的年中的第幾周(1-52、1-53)
????? IYY、IY、I? 返回ISO年中最後三、二、一位數(shù)據(jù)。
????? IYYY? 返回ISO年中標(biāo)準(zhǔn)的四位數(shù)。
????? J??? Julian日,從公元前4712年1月1日起到指定日期的天數(shù)。
????? MI?? 分(1-59),表時(shí)間
????? MM?? 月(1-12)
????? MONTH? 月份的名稱。使用空格填充9個(gè)字符。大小寫(xiě)敏感。
????? MON??? 月份名稱的簡(jiǎn)寫(xiě),大小寫(xiě)敏感。
????? PM、P.M. 午後的指示符。
????? Q??? 一年中的季度(1-4)
????? RM?? 農(nóng)驪數(shù)字中的月份(I_XII)
????? RR?? 世紀(jì)中年份的最後兩位數(shù)字。
????? SS?? 秒(0-59)
????? SSSS 從午前開(kāi)始過(guò)去的秒數(shù)。(0-86399)
????? WW?? 一年中的第幾個(gè)星期(1-53)
????? W??? 該月中的第幾個(gè)星期(1-5)
????? Y,YYY 年份,用逗號(hào)進(jìn)行分位。
????? YYYY,SYYYY 四位的年份。SYYYY將BC日期作為負(fù)數(shù)返回。
????? YEAR、SYEAR 年份的名字,SYEAR將BC日期作為負(fù)數(shù)返回,大小寫(xiě)敏感
????? YYY、YY、Y 年份的最後三、二、一位數(shù)。
????? 停頓(Punctuation): 在結(jié)果字符串中產(chǎn)生所有必須的停頓間隔符。
???? “文本”: 在雙引號(hào)中的文本被重新產(chǎn)生出來(lái)。

????? SELECT TO_CHAR(SYSDATE,'A.D.YYYY"年"-MONTH-DD"日"-DAY') "Reault" from dual;
????? result
????? -------
????? 公元2001年-10月-12日-星期五



 2>  TO_CHAR(NUMBER[,FORMAT[,NLSPARAMS]])

  ? *數(shù)字格式元素:
????
????? 9 如9999 :???? 每一個(gè)9表示一個(gè)有效位,轉(zhuǎn)換值的有效位應(yīng)和9的各位相同,如要轉(zhuǎn)換的
????????????????????? 是負(fù)數(shù)則應(yīng)有前導(dǎo)的負(fù)號(hào),前導(dǎo)如為0則視為空格。
????? 0 如0999或9990? 返回不包括空格的前導(dǎo)可後繼0。
????? $ 如$999 :???? 返回帶有前導(dǎo)貨幣符號(hào)的數(shù)值。
????? B 如B999 :???? 當(dāng)整數(shù)為0時(shí),將該小數(shù)的整數(shù)部分填充為空格。
????? MI如99MI :???? 該值如為負(fù)數(shù),則加後繼負(fù)號(hào),如非負(fù)數(shù)則加一後繼占位符。
????? S 如S999或999S? S在前,為數(shù)據(jù)加前導(dǎo)+或-號(hào)、S在後,為數(shù)據(jù)加後繼+或-號(hào)。
????? PR 如999PR:???? 如為負(fù)值,用尖括號(hào)括起,如為正值,則前導(dǎo)後繼各加一空格。
????? D 如99D99:???? 返回小數(shù)點(diǎn)的位置,兩邊的9指定了最大位數(shù)。
????? G 如99G99:???? 返回千分位分隔符,G可出現(xiàn)多次
????? C 如C999:?????? 在指定的位置上返回本地貨幣號(hào)。
????? L 如L999:????? 在指定位置上返回本地貨幣號(hào)
????? , 如99,99:??? 在指定的位置返回一個(gè)逗號(hào),而不管指定的千分位分隔符。
????? . 如99.99 :??? 在指定的位置返回一個(gè)小數(shù)點(diǎn),而不管指定的小數(shù)點(diǎn)分隔符。
????? V 如99V99:???? 返回與10的n次方相乘的值,n是V後面9的個(gè)數(shù)。
????? EEEE 如9.99EEEE : 以科學(xué)計(jì)數(shù)法返回值。
????? RM,rm如RM.rm:?? 用大寫(xiě)(RM)或小寫(xiě)(rm)的羅馬數(shù)字返回指定的數(shù)字。
??
??? *
????? NLS_NUMERIC_CHARACTERS:可簡(jiǎn)寫(xiě)為'NLS_NUMBER_CHARS'.其表示的意思是指定分
????????????????????????????? 組分隔符和小數(shù)點(diǎn)使用的字符。
????? NLS_CURRENCY:指定Oracle默認(rèn)的貨幣。
????? NLS_ISO_CURRENCY:? 指定ISO貨幣符號(hào)的字符。

??? 例子:? SELECT TO_CHAR(123456789,'L999G999G999D99','NLS_CURRENCY=¥') "RESULT" FROM DUAL;
????     結(jié)果是RESULT
????    ?????? --------
????????????????? ¥123,456,789.00

TO_CHAR的另外兩種轉(zhuǎn)換情況:?

 ? 3> TO_CHAR(label[,format])? :它用於將MLSLABEL類型的label值轉(zhuǎn)換為一個(gè)VARCHAR2類型的值。
??? 4>? TO_CHAR(character):它用於將NCHAR、NVARCHAR2、CLOB或NCLOB轉(zhuǎn)換成數(shù)據(jù)庫(kù)能夠認(rèn)識(shí)的字符類型。


2、TO_CLOB 將給定的NCLOB值轉(zhuǎn)換成LOB字段或?qū)e的字符串轉(zhuǎn)換成CLOB值

3、TO_DATE(STRING[,FORMAT[,NLSPARAMS]])函數(shù)將CHAR或VARCHAR2類型的值轉(zhuǎn)換為一個(gè)DATE類型的值。
      ('NLS_DATE_LANGUAGE=language'指定返回日期所使用的語(yǔ)言。)
  select to_Date('1999 july 21','yyyy-mm-dd','nls_date_language=english') "result" from dual;
?? result
?? ------
?? 21-7月-99
 
?? select to_date('20010809','yyyy-mm-dd') "result" from dual;
?? result
? -------
?? 09-8月-01

4、TO_MULTI_BYTE: 函數(shù)將string中所有的單字節(jié)字符轉(zhuǎn)換為等價(jià)的多字節(jié)字符。只當(dāng)數(shù)據(jù)庫(kù)字符集中同時(shí)包
????????????????  含單字節(jié)和多字節(jié)時(shí)才有用,否則string不會(huì)進(jìn)行任何處理而返回 
?? select to_multi_byte('myoracle') "result" from dual;
?? result
?? ------
?? myoracle

5、TO_SINGLE_BYTE(STRING) :函數(shù)將string中有的多字節(jié)字符轉(zhuǎn)換成單字節(jié)字符。和TO_MULTI_BYTE互為反函數(shù)。
 select to_single_byte('myoracle9i') "result" from dual;
?? result
?? --------
?? myoracle9i

6、TO_NUMBER(STRING[,FORMAT[,NLSPARAMS]]):函數(shù)將CHAR或VARCHAR2類型的STRING轉(zhuǎn)換成NUMBER類型的數(shù)值。 
?? select to_number('$1234.56','$9999.99') "result" from dual;
?? result
?? ------
?? 1234.56


6.5日期(Date)函數(shù) 

?? add_months???????? 給指定的日期加上若干個(gè)月。
  current_date?????? 返回當(dāng)前會(huì)話期時(shí)區(qū)內(nèi)的日期。
  current_timestamp? 返回當(dāng)前會(huì)話期時(shí)區(qū)內(nèi)的日期和時(shí)間。
  dbtimezone???????? 返回當(dāng)前數(shù)據(jù)庫(kù)所在時(shí)區(qū)。
  extract??????????? 從時(shí)間參數(shù)中取出並返回指定的時(shí)間字段。
  from_tz??????????? 將一個(gè)含有時(shí)區(qū)的TEMESTAMP的值轉(zhuǎn)換成TIMESTAMP WITH TIME ZONE值。
  last_day?????????? 返回給定月份的最後一天。
  localtimestamp???? 以timestamp數(shù)據(jù)形式返回當(dāng)前會(huì)話期時(shí)區(qū)內(nèi)的日期和時(shí)間。
?? months_between???? 返回兩個(gè)日期之間的月份。
  new_time?????????? 返回根據(jù)用戶指定的時(shí)區(qū)計(jì)算相應(yīng)的時(shí)間/天數(shù)值。
  next_day      返回指定日期後的下一個(gè)星期幾的日期。
  numtodsinterval??? 將指定的值轉(zhuǎn)換成INTERVAL DAY TO SECOND 類型。
  numtoyminterval??? 將指定的值轉(zhuǎn)換成INTERVAL YEAR TO MONTH 類型。
  round????????????? 按指定的日期參數(shù)(年、月、日)四捨五入指定的日期。
  sessiontimezone??? 返回當(dāng)前會(huì)話期的時(shí)區(qū)。
  sysdate??????????? 返回系統(tǒng)當(dāng)前的日期和時(shí)間。
?? systimestamp?????? 以timestamp with time zone 類型返回系統(tǒng)日期。
?? to_dsinterval????? 將指定的字符串轉(zhuǎn)換成INTERVAL DAY TO SECOND類型。
  to_timestamp?????? 將指定的字符串轉(zhuǎn)換成TIMESTAMP類型。
?? to_timestamp_tz??? 將指定的字符串轉(zhuǎn)換成TIMESTAMP WITH TIME ZONE類型。
?? to_yminterval????? 將指定的字符串轉(zhuǎn)換成INTERVAL YEAR TO MONTH類型。
  tz_lffset????????? 根據(jù)指定的值返回相應(yīng)的時(shí)區(qū)偏移量。
  trunc       按指定的日期參數(shù)(年、月、日)剪裁指定的日期。

1、sysdate函數(shù)
  select to_char(sysdate,'yyyy-mm-dd,hh24:mi:ss') "now" from dual;

?? now
?? -------------------
?? 2001-10-14,09:02:09

2、add_months(date,x)函數(shù)
?? select add_months(to_date('2001-01-30','yyyy-mm-dd'),1) "first" from dual;

?? first
? --------
?? 28-2月-01

3、current_date函數(shù)
  alter session set time_zone='-5:0';
?? alter session set nls_date_format='dd-mon-yyyy hh24:mi:ss';
?? select sessiontimezone,current_date from dual;

?? sessintimezone???? current_date
?? --------------???? ------------
?? -05:0016-10月-2001 21:16:09

4、current_timestamp函數(shù)
  alter session set time_zone='-5:0';
?? alter session set nls_date_format='dd-mon-yyyy hh24:mi:ss';
?? select sessiontimezone,current_timestamp from dual;

?? sessiontimezone? current_timestamp
?? ---------------? -----------------------------
?? -05:00 16-10月-2001 21:26:04.715620 p.m. -5:00

5、dbtimezone函數(shù)
?? select dbtimezone from dual;

?? dbtime
?? -------
?? +08:00

6、extract函數(shù)
?? select extract(year from date'1998-03-07') from dual;

?? extract(year from date'1998-03-07')
?? -----------------------------------
?? 1998

7、from_tz函數(shù)
  select from_tz(timestamp'2000-03-28 08:00:00','3:00') from dual;

?? from_tz(timestamp'2000-03-28 08:00:00','3:00)
?? -----------------------------------------------
?? 28-3月-00 08:00:00 am +03:00

8、localtimestamp函數(shù)
  alter session set time_zone='-5:00';
?? select current_timestamp,localtimestamp from dual;

?? current_timestamp localtimestamp
?? ---------------------------------------------------------
?? 04-apr-00 01:27:18.999220 pm -05:00 04-aor-00 01:27:19 pm??

9、months_between函數(shù)
  select months_between('18-10月-01','18-10月-01') "first"
?? months_between('18-10月-01','19-4月-01') "second' from dual;
?
?? first??? second
?? -------? ----------
?? -6   ? 5.96774194

10、NEW_TIME函數(shù) : 將ZONE1時(shí)區(qū)的日期DATE轉(zhuǎn)換成ZON2時(shí)區(qū)的日期。
  AST?? 大西洋標(biāo)準(zhǔn)時(shí)間
  ADT  大西洋夏令時(shí)
??? BST  白令標(biāo)準(zhǔn)時(shí)
  BDT  白令夏令時(shí)
  CST?? 中部夏令時(shí)
??? EDT?? 東部夏令時(shí)
 ? EST?? 東部標(biāo)準(zhǔn)時(shí)
  GMT?? 格林尼治標(biāo)準(zhǔn)時(shí)
  HST?? 阿拉斯加-夏威夷標(biāo)準(zhǔn)時(shí)
  HDT  阿拉斯加-夏威夷夏令時(shí)
  MST?? 山地標(biāo)準(zhǔn)時(shí)
??? MDT?? 山地夏令時(shí)
  NST?? 紐芬蘭標(biāo)準(zhǔn)時(shí)
  PST?? 太平洋標(biāo)準(zhǔn)時(shí)
  PDT  太平洋夏令時(shí)
??? YST?? 育空標(biāo)準(zhǔn)時(shí)
??? YDT?? 育空夏令時(shí)

  select to_char(new_time(sysdate,'pst','gmt'),'yyyy-mm-dd,hh:mi:ss') "result" from dual;
??? result
??? -------------------
??? 2001-10-14,06:28:10
   
11、NEXT_DAY函數(shù)
  select next_day(sysdate,'星期五') from dual;

??? next_day(sysda
??? ----------------
??? 19-10月-01

12、NUMTODSINTERVAL(N,'CHAR_EXPR') 函數(shù)將指定的N轉(zhuǎn)換成INTERVAL DAY GO SECOND類型。
  select numtodsinterval(100,'hour') from dual;

??? numtodsinterval(100,'hour')
??? --------------------------------
??? +000000004 04:00:00.000000000

13、NUMTOMINTERVAL(N,'CHAR_EXPR')函數(shù)將指定的值N轉(zhuǎn)換成INTERVAL YEAR TO MONTH類型。
  select numtoyminterval(100,'month') from dual;

??? numtoyminterval(100,'month')
??? ------------------------------
??? +0.000000008-04

14、ROUND(DATE,[,FORMAT])函數(shù) 將指定的值N轉(zhuǎn)換成INTERVAL YEAR TO MINTH 類型。
  select round(to_date('12-6月-01'),'mm') "first"
??? round(to_date('18-6月-01'),'mm') "second" from dual;

??? first???? second
??? -------?? --------
??? 01-6月-01 01-7月-01

15、SESSIONTIMEZONE函數(shù)返回當(dāng)前會(huì)話期的時(shí)區(qū)
  select sessiontimezone from dual;

??? session
??? ---------
??? +08:00

16、SYSTIMESTAMP函數(shù):以TIMESTAMP WITH TIME ZONE 類型返回當(dāng)前系統(tǒng)日期。
  select systimestamp from dual;

??? systimestamp
??? -------------
??? 28-10月-01 12.38.55.538741 pm +8:00

17、TO_DSIONTERVAL(CHAR[,NLSPARAM])函數(shù)將指定的字符串 轉(zhuǎn)換成INTERVAL DAY TO SECOND類型。
  select employee_id, alst_name from hr.employees
??? where hire_date-to_dsinterval('100 10:00:00')

??? >date '1985-01-01';

18、TO_TIMESTAMP函數(shù)將指定的字符串轉(zhuǎn)換成TIMESTAMP類型
  select to_timestamp('1999-12-01 11:00:00','yyyy-mm-dd hh:mi:ss') "first" from dual;
???
??? first
??? ---------
??? 01-DEC-99 11.00.00.000000000 AM

19、TO_TIMESTAMP_TZ(char,[fmt[,nlsparam]])函數(shù)將指定的字符串轉(zhuǎn)換成TIMEST AMP WITH TIME ZONE 類型。
   
20、TO_YMINTERVAL(char)函數(shù)將指定的字符串轉(zhuǎn)換成INTERVAL YEAR TO MONTH類型。

21、TZ_OFFSET函數(shù)
  select tz_offset('us/eastern') from dual;
???
??? tz_offs
??? ----------
??? -4:00

22、TRUNC(DATE[,FORMAT])函數(shù)將日期DATE按照FORMAT指定的格式進(jìn)行截取,缺省為'DD',截取日期為當(dāng)月第一天。
  SELECT TRUNC(TO_DATE('12-6月-01'),'MM') "FIRST"
??? TRUNC(TO_DATE('18-6月-01'),'MM') "SECOND" FROM DUAL;
??
??? FIRST???? SECOND
??? -------?? ----------
??? 01-6月-01?? 01-6月-01
?
??? select to_char(sysdate,'yyyy-mm-dd hh:mi:ss am') "result1",
??? to_char(trunc(sysdate),'yyyy-mm-dd hh:mi:ss am') "result2" from dual;
?
??? result1???????????????????????? result2
??? ----------????????????????????? --------------
??? 2001-10-21 02:48:49 下午??????? 2001-10-21 12:00:00 上午

6.6分組(GROUP) 函數(shù)
  
  AVG????? 求返回的各列的平均值
  COUNT??? 返回查詢的行的數(shù)目
  GLB????? 返回MSLABLE的最大下界
  LUB????? 返回MSLABEL的最小上界
  MAX????? 返回查詢列中的最大值
  STDDEV?? 返回查詢列的平均偏差
?? SUM????? 返回查詢列的總和
  VARIANCE 返回查詢列的統(tǒng)計(jì)方差

 1、STDDEV函數(shù)
   select stddev(mgr) from scott.emp;
?
???? stddev(mgr)
???? ------------
???? 103.71466

? 2、VARIANGE([DISTINCTIALL] column)函數(shù)查詢列的統(tǒng)計(jì)方差
 ?? select variange(mgr) from scott.emp
???
???? variance(mgr)
???? --------------
???? 10756.7308

6.7雜項(xiàng)(Misc)函數(shù)
 
  BILENAME??? 返回一個(gè)BFILE位置指示符,指向一個(gè)存儲(chǔ)實(shí)際的LOB二進(jìn)制文件的存儲(chǔ)文件 
  DECODE????? 類似於IF_THEN_ELSE語(yǔ)句
 ? DUMP??????? 返回有關(guān)指定數(shù)值的內(nèi)部表示信息VARCHAR2類型的數(shù)值。
  EMPTY_BLOB? 返回一個(gè)空的二進(jìn)制指示符
??? EMPTY_CLOB? 返回一個(gè)空的字符指示符
??? GREATEST??? 返回給定的參數(shù)列表中最大的表達(dá)式
??? LEAST?????? 返回給定的參數(shù)列表中最小的表達(dá)式
  NLS_CHARSET_DECL_LEN? 返回NCHAR列的定義長(zhǎng)度(以字符長(zhǎng)度表示)
 ? NLS_CHARSET_ID??????? 返回與NLS字符集名稱關(guān)聯(lián)的NLS集ID號(hào)
  NLS_CHARSET_NAME????? 返回傳遞給函數(shù)的ID關(guān)聯(lián)的NLS字符名稱
??? NVL?????????????????? 從給定的表達(dá)式中選擇第一個(gè)不為空的值
  SYS_CONTEXT?????????? 返回當(dāng)前進(jìn)程的屬性
  SYS_GUID      ? 產(chǎn)生和返回一個(gè)16字節(jié)的全局的惟一的標(biāo)志符(ROW)值
 ? UID?????????????????? 返回ORACLE中用戶的ID號(hào)
  USER????????????????? 返回當(dāng)前用戶名稱 
  USERENV?????????????? 返回當(dāng)前工作環(huán)境的信息
??? VSIZE???????????????? 返回指定值的內(nèi)部字節(jié)數(shù)
 

轉(zhuǎn)載于:https://www.cnblogs.com/cuihongyu3503319/archive/2007/11/28/976112.html

總結(jié)

以上是生活随笔為你收集整理的pl/sql函数学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人黄色在线观看 | 久久亚洲综合色图 | 亚洲国产成人91精品 | 99爱视频在线观看 | 成人精品一区二区三区四区 | 日本全黄裸体片 | 毛片av网站| 在线h网 | 在线天堂1 | 91色在线 | 成人午夜精品无码区 | 精品人伦一区二区三区蜜桃免费 | 国产高清免费在线观看 | 日本a v网站| 成人蜜桃视频 | 国产97视频| 夜夜操夜夜骑 | 中文字幕 自拍偷拍 | 国产亚洲二区 | 国产精品成人久久久 | 性盈盈影院中文字幕 | 久久伊人久久 | 天天躁日日躁狠狠躁 | 无套白嫩进入乌克兰美女 | 欧美日韩精品在线播放 | 麻豆91精品91久久久 | 国产午夜一级一片免费播放 | 嫩草嫩草嫩草嫩草嫩草 | 欧美日本在线观看 | 亚洲av成人无码一二三在线观看 | 成人福利在线免费观看 | 久久亚洲国产成人精品性色 | 日本草草影院 | 日日艹| 亚洲精选在线 | 青青青视频在线播放 | 日本网站在线免费观看 | 亚洲AV乱码国产精品观看麻豆 | 国产欧美日韩精品在线 | 69av片 | 香蕉视频黄色片 | 国产黄色片在线 | 草色噜噜噜av在线观看香蕉 | 亚洲乱码国产一区三区 | 日本精品视频在线观看 | 超碰公开在线观看 | 午夜电影天堂 | 国产欧美日韩一区二区三区 | 香蕉成人在线视频 | 亚洲综合欧美 | 亚洲精品中文字幕 | 超碰在线成人 | 91porny丨首页入口在线 | 黄色美女一级片 | 中国超碰| 三级精品视频 | 日本一区二区三区免费观看 | 丁香网五月天 | 欧美一级视频免费观看 | 女人高潮潮呻吟喷水 | 蜜桃麻豆视频 | av网站免费大全 | 在线观看亚洲大片短视频 | 无码人妻精品一区二区三区不卡 | 91亚洲精品视频 | 国产视频1区| 无码一区二区三区 | 九九九九久久久久 | 日本黄色三级网站 | 日本精品在线看 | 毛片3| 大地av | 国产精品果冻传媒 | 第四色在线视频 | 三级全黄做爰龚玥菲在线 | 交视频在线播放 | 国产成人91精品 | 中文字幕不卡在线观看 | 嫩草视屏 | 男女免费看 | 性生活一级大片 | 天天射天天舔 | 国产黄视频网站 | 成人女同在线观看 | 亚洲国产精品成人久久蜜臀 | 女人16一毛片| 日本一二区视频 | 成人黄色电影网址 | 亚洲熟妇无码一区二区三区 | 性开放淫合集 | 97视频网站 | 在线观看高清av | 精品伦理一区二区 | 爱福利视频一区 | 久久综合五月 | 韩国伦理中文字幕 | 亚洲视频色图 | 色吧av| 成人av播放 |