Oracle函數


Oracle函數

 

字符函數

  大小寫控制函數

一:LOWER ()

--全部小寫
SELECT LOWER('SCOTT') "Lowercase"
FROM DUAL;

說明:

返回 char所有字母小寫字符可以任何數據類型 CHAR
VARCHAR2 NCHAR NVARCHAR2 CLOB  NCLOB返回相同數據類型
char數據庫設置基於二進制映射定義字符大小寫
基礎字符集

 

二:UPPER()

 

 

--全部大寫
SELECT UPPER('scoot') "Uppercase"
FROM dual;

說明:

上層返回 char所有字母大寫字符可以任何數據類型 CHAR
VARCHAR2 NCHAR NVARCHAR2 CLOB  NCLOB返回相同數據類型
char數據庫設置基於二進制映射定義字符大小寫
基礎字符集

三:INITCAP()

--首字母大寫
SELECT INITCAP('the soap') "Capitals"
FROM DUAL;

說明:

INITCAP 返回 char大寫其他字母每個單詞字母
小寫字母空白字符分隔單詞
字母數字
字符可以任何數據類型 CHAR VARCHAR2 NCHAR  NVARCHAR2返回
相同數據類型 char數據庫設置初始字符大小寫
基於二進制映射定義基礎字符集

  字符控制函數

一:concat()

--連接
select concat('hehe','haha')hei from dual

說明

CONCAT 返回 char1  char2 連接Char1  char2 可以任意
數據類型 CHAR VARCHAR2 NCHAR NVARCHAR2 CLOB  NCLOB返回字符串
相同字符設置 char1數據類型取決數據類型
參數
串聯兩個不同數據類型Oracle 數據庫返回數據類型
結果無損轉換因此如果其中一個參數 LOB然后
返回 LOB如果其中一個參數國家數據類型
返回一個國家數據類型例如
 CONCAT (CLOB,NCLOB) 返回 NCLOB
 CONCAT (NCLOB、 NCHAR) 返回 NCLOB
 CONCAT (NCLOB、 CHAR) 返回 NCLOB
 CONCAT (NCHAR,CLOB) 返回 NCLOB
函數等同串聯運算符 (|)。

 

二SUBSTR()

說明

SUBSTR 函數返回字符字符位置開始部分
substring_length 個字符SUBSTR 計算長度使用字符作為
輸入字符集定義SUBSTRB 使用字節而不是字符SUBSTRC
使用完整的 Unicode 字符SUBSTR2 使用 UCS2 代碼SUBSTR4 使用 UCS4
代碼
 如果立場 0,那么視為 1。
 如果位置積極然后開始 char Oracle 數據庫計數
找到第一個字符
 如果位置負數然后 Oracle 結尾字符
 如果省略 substring_length然后 Oracle 將返回所有字符末尾
char如果 substring_length 小於 1, Oracle 返回 null
字符可以任何數據類型 CHAR VARCHAR2 NCHAR NVARCHAR2 CLOB NCLOB
例外情況 SUBSTRC SUBSTR2  SUBSTR4允許字符
CLOB  NCLOB位置 substring_length 必須數據類型
任何數據類型可以隱式轉換數字並且必須解析
整數返回作為字符點數傳遞相同數據類型
作為 SUBSTR 的參數自動轉換整數
 
三:length()  lengthb()

說明:

長度函數返回字符長度長度計算長度使用
定義輸入字符字符設置LENGTHB 使用而不是字節
個字符LENGTHC 使用完整的 Unicode 字符LENGTH2 使用 UCS2 代碼
LENGTH4 使用 UCS4 代碼
字符可以任何數據類型 CHAR VARCHAR2 NCHAR NVARCHAR2 CLOB NCLOB
例外情況 LENGTHC LENGTH2  LENGTH4允許字符
CLOB  NCLOB返回數字數據類型如果 char 數據類型 CHAR然后
長度包括所有尾隨空格如果字符 null函數返回 null
 
四:INSTR()

 

說明:

INSTR 函數搜索字符串子字符串搜索操作定義
比較相同長度字符串字符串的子字符串參數
直到找到一個匹配沒有更多平等子字符串左邊每個連續
比較字符串子字符串開始一個字符 向前搜索)
一個字符 向后搜索) 第一個字符
以前比較子字符串如果找到等於子字符串字符串
函數返回一個整數指示第一個字符位置
子字符串如果找到沒有這樣子字符串函數返回
 位置一個非零整數指示字符串字符 Oracle
數據庫開始搜索 — — 第一次第一個字符位置
比較子字符串子字符串如果位置負值 Oracle 計數
落后結尾字符串然后所得向后搜索
位置
 發生一個整數指示子字符串字符串哪個匹配項
Oracle 搜索發生必須正數如果發生
大於 1,數據庫第一場比賽
上文直到比賽比較連續字符串字符串
發現發生
INSTR 接受返回字符位置輸入字符集定義
位置 1 的字符串第一個字符INSTRB 使用而不是字節
個字符INSTRC 使用完整的 Unicode 字符INSTR2 使用 UCS2 代碼
INSTR4 使用 UCS4 代碼
字符串可以任何數據類型 CHAR VARCHAR2 NCHAR NVARCHAR2 CLOB NCLOB
例外情況 INSTRC INSTR2  INSTR4允許字符串
CLOB  NCLOB
子字符串可以任何數據類型 CHAR NCHAR NVARCHAR2 VARCHAR2 CLOB
NCLOB
返回數字數據類型
位置發生必須數據類型可以任何數據類型
隱式轉換數字並且必須解析一個整數默認
位置發生都是 1,意思 Oracle 開始搜索第一次
子字符串第一個匹配字符串字符返回相對
字符串開始位置無論位置
 
五:LPAD() RPAD()

說明:

LPAD 返回 expr1左填充長度 n 個字符字符序列
 expr2這個函數用於格式化輸出查詢
Expr1  expr2 可以任何數據類型 CHARVARCHAR2 NCHAR NVARCHAR2
CLOB  NCLOB返回字符串 VARCHAR2 數據類型如果 expr1 字符數據
NVARCHAR2 如果 expr1 國家字符數據類型 LOB 類型如果 expr1  LOB
數據類型返回字符串作為 expr1 相同字符集參數 n
必須一個數字整數可以隱式地轉換數字
整數
如果指定 expr2默認一個空格如果 expr1 長於 n,
然后函數返回 expr1 適合部分 n
參數 n 返回長度顯示
終端屏幕大部分字符集字符
返回然而一些多字節字符集顯示長度
字符字符串可以不同字符串字符
 
六:TRIM() 
 

說明:

修剪使可以修剪前導尾隨字符 (或兩者) 一個字符
字符串如果 trim_character  trim_source 原義字符然后必須附上
單引號
 如果指定領先然后 Oracle 數據庫中刪除任何前導字符
等於 trim_character
 如果指定然后 Oracle 中移除任何尾隨字符等於
trim_character
 如果指定兩個三個沒有然后 Oracle 刪除前導尾隨
字符等於 trim_character
 如果沒有指定 trim_character默認一個空間
 如果指定 trim_source然后 Oracle 刪除前導尾隨空白
空格
 函數返回一個數據類型 VARCHAR2最大長度
 trim_source 長度
 如果 trim_source  trim_character  null那么 TRIM 函數返回
則為 null
Trim_character  trim_source 可以 VARCHAR2 可以任何數據類型
隱式轉換 VARCHAR2返回字符串 VARCHAR2 (NVARCHAR2) 數據
如果 trim_source  CHAR  VARCHAR2 (NCHAR  NVARCHAR2) 的數據類型 CLOB,請鍵入
如果 trim_source  CLOB 數據類型返回字符串相同字符設置
trim_source
 
    日期函數:
一:ADD_MONTHS()增加月數

說明:

ADD_MONTHS 返回日期日期加上整數個月一個定義的。
會話參數 NLS_CALENDAR日期參數可以一個 datetime 任何
可以隱式轉換日期整數參數可以
整數可以隱式轉換一個整數任何返回類型
總是日期日期數據類型如果日期本月最后一天
如果生成時間少於一天日期然后結果
結果月份最后一天否則結果同一
組件作為日期
 
二:months_between 兩個日期相差的月數

select months_between
(to_date('02-02-1995','MM-DD-YYYY'),
TO_DATE('01-01-1995','MM-DD-YYYY')) "MONTHS"
from dual;

  日期相減

一:兩個日期天數之差

select floor(sysdate - to_date('20020405','yyyymmdd'))from dual;

 

--隱式轉換
select * from emp where hiredate='17-12月-80';

--顯示轉換

--to_char()對日期的轉換
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

 

--to_char()對數字的轉換
select to_char(sal,'L9,999,99') from emp;

--數字函數
--round()四舍五入
select round(12.45,1) from dual;

--trunc 截斷
select trunc(15.79,1)"truncate" from dual;

 

--通用函數
--nv1和nv12 濾空函數

select sal*12工資,comm 獎金,sal*12+nvl(comm,0) from emp;

 


select sal*12工資,comm 獎金,sal*12+nvl2(comm,comm,0) from emp;

--decode函數
select product_id,
decode(warehouse_id,1,'Southlake',
2,'San Francisco',
3,'New Jersey',
4,'Seattle',
'Non domestic') "Location"
from inventories where product_id< 1775 order by product_id,"Location"

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM