工具欄選擇“工具”--》“ODBC導(dǎo)入器”--》選擇“Excel Files”,輸入用戶密碼,連接--》選擇文件,雙擊目錄,選擇文件--》選擇sheet--》切換“到Oracle的數(shù)據(jù)”--》選擇表名以及數(shù)據(jù)對應(yīng)字段和類型--》點(diǎn)擊導(dǎo)入--》完成
成都創(chuàng)新互聯(lián)公司是專業(yè)的榆社網(wǎng)站建設(shè)公司,榆社接單;提供網(wǎng)站制作、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行榆社網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
將Excel另存為制表符分隔的txt,選擇文本導(dǎo)入器(text。。),選擇文件File,data to oracle設(shè)置對應(yīng)字段,一定要選擇好Nvarchar,import完成。
文本文件是沒有格式的,制表符的意思是告訴oracle,這個(gè)前面是一個(gè)字段,后面是另一個(gè)字段,整個(gè)一行是一個(gè)記錄。這樣導(dǎo)入的數(shù)據(jù)表才不會(huì)亂。
oracle中去掉文本中的換行符、回車符、制表符小結(jié)
一、特殊符號ascii定義
制表符 chr(9)
換行符 chr(10)
回車符 chr(13)
二、嵌套使用repalce,注意每次只能提交一個(gè)符號,如先回車再換行
select REPLACE(gg, chr(10), '') from dual
要注意chr(13) | | chr(10) 此類結(jié)合使用的情況比較多,回車換行在notepad中是比較好看點(diǎn)的,所以要考慮此種情況
select translate(string,chr(13)||chr(10),',') from dual;
1、例子一
create table TEST_1
(
VA VARCHAR2(10),
VB NUMBER(2),
VC VARCHAR2(10),
VD NUMBER(11,2),
VE NUMBER(11,4),
VCL CLOB
);
SQL select vb,vc,replace(vc,chr(10),'') as TT, translate(vc,chr(10),',') from test_1;
VB VC TT TRANSLATE(VC,CHR(10),',')
--- ---------- ---------- -------------------------
0 Aaaaaaaaa Aaaaaaaaa Aaaaaaaaa
1 Aaaaaaaaa Aaaaaaaaa Aaaaaaaaa
2 大Ba 大Babc帶 大Ba,b,c帶
b
c帶
3 C C C
1 D D D
5 A A A
5 A A A
0 A A A
0 A A A
2、例子二
要注意chr(13) | | chr(10) 此類結(jié)合使用的情況比較多,回車換行在notepad中是比較好看點(diǎn)的,所以要考慮此種情況
select vb,vc,replace(vc,chr(10),'') as TT, translate(vc,chr(13)||chr(10),',') from test_1;
SQL select vb,vc,replace(vc,chr(10),'') as TT, translate(vc,chr(13)||chr(10),',') from test_1;
VB VC TT TRANSLATE(VC,CHR(13)||CHR(10),
--- ---------- ---------- ------------------------------
0 Aaaaaaaaa Aaaaaaaaa Aaaaaaaaa
1 Aaaaaaaaa Aaaaaaaaa Aaaaaaaaa
2 大Ba 大Babc帶 大Babc帶
b
c帶
3 C C C
1 D D D
5 A A A
5 A A A
0 A A A
0 A A A
11 rows selected
三、對于字符大對象的符號處理
對于clob字段中的符號處理,先to_char然后一樣的處理
SQL select to_char(vcl),replace(to_char(vcl),chr(10),'[]') from test_1;
TO_CHAR(VCL) REPLACE(TO_CHAR(VCL),CHR(10),'
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
嵌套使用repalce,注意每次只能提交一個(gè)符號,如先回車再換行 嵌套使用repalce,注意每次只能提交一個(gè)符號,如先回車再換行[]select REPLACE(gg, chr(10), '') from dual[]sel
select REPLACE(gg, chr(10), '') from dual
select translate(string,chr(13)||chr(10),',') from dual;
func:
2.2.1 單記錄字符函數(shù)
函 數(shù) 說 明
ASCII 返回對應(yīng)字符的十進(jìn)制值
CHR 給出十進(jìn)制返回字符
CONCAT 拼接兩個(gè)字符串,與 || 相同
INITCAT 將字符串的第一個(gè)字母變?yōu)榇髮?/p>
INSTR 找出某個(gè)字符串的位置
INSTRB 找出某個(gè)字符串的位置和字節(jié)數(shù)
LENGTH 以字符給出字符串的長度
LENGTHB 以字節(jié)給出字符串的長度
LOWER 將字符串轉(zhuǎn)換成小寫
LPAD 使用指定的字符在字符的左邊填充
LTRIM 在左邊裁剪掉指定的字符
RPAD 使用指定的字符在字符的右邊填充
RTRIM 在右邊裁剪掉指定的字符
REPLACE 執(zhí)行字符串搜索和替換
SUBSTR 取字符串的子串
SUBSTRB 取字符串的子串(以字節(jié))
SOUNDEX 返回一個(gè)同音字符串
TRANSLATE 執(zhí)行字符串搜索和替換
TRIM 裁剪掉前面或后面的字符串
UPPER 將字符串變?yōu)榇髮?/p>
NVL 以一個(gè)值來替換空值
ASCII(c1)
c1是字符串。返回與指定的字符對應(yīng)的十進(jìn)制數(shù)。
SQL select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
A a ZERO SPACE
---------- ---------- ---------- ----------
65 97 48 32
SQL select ascii('趙') zhao,length('趙') leng from dual;
ZHAO LENG
---------- ----------
54740 1
CHR(I[NCHAR])
給出整數(shù),返回對應(yīng)字符。如:
SQL select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
-- -
趙 A
CONCAT(c1,c2)
SQL select concat('010-','8801 8159')||'轉(zhuǎn)23' 趙元杰電話 from dual;
趙元杰電話
-----------------
010-8801 8159 轉(zhuǎn)23
INITCAP(c1)
返回字符串c1 并第一個(gè)字母變?yōu)榇髮?。例如?/p>
SQL select initcap('simth') upp from dual;
UPP
-----
Simth
INSTR(c1,c2[,I[,j] ] )
在一個(gè)字符串中搜索指定的字符,返回發(fā)現(xiàn)指定的字符的位置。
C1: 被搜索的字符串
C2: 希望搜索的字符串
I: 搜索的開始位置,缺省是1
J: 出現(xiàn)的位置,缺省是1。
SQL SELECT INSTR ('Oracle Training', 'ra', 1, 2) "Instring" FROM DUAL;
Instring
----------
9
INSTRB(c1,c2[,I[,j] ] )
除了返回的字節(jié)外 ,與INSTR 相同,
LENGTH( c )
返回字符串 c 的長度。
SQL l
1 select name,length(name),addr,length(addr),sal,length(to_char(sal))
2* from nchar_tst
SQL /
NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL))
------ ------------ ---------------- ------------ ---------- ----------------
趙元杰 3 北京市海淀區(qū) 6 99999.99 8
LENGTHB( c )
以字節(jié)返回字符串的字節(jié)數(shù)。
SQL select name,lengthb(name),length(name) from nchar_tst;
NAME LENGTHB(NAME) LENGTH(NAME)
------ ------------- ------------
趙元杰 6 3
LOWER ( c )
返回字符串并將所有字符變?yōu)樾憽?/p>
SQL select lower('AaBbCcDd') AaBbCcDd from dual;
AABBCCDD
--------
aabbccdd
UPPER( c)
與 LOWER 相反,將給出字符串變?yōu)榇髮?。如?/p>
SQL select upper('AaBbCcDd') AaBbCcDd from dual;
AABBCCDD
--------
AABBCCDD
RPAD 和LPAD(粘貼字符)
RPAD(string,Length[,'set'])
LPAD(string,Length[,'set'])
RPAD在列的右邊粘貼字符;
LPAD在列的左邊粘貼字符。
例 1:
SQLselect RPAD(City,35,'.'),temperature from weather;
RPAD(City,35,'.') temperature
-------------------------- ----------------
CLEVELAND...... 85
LOS ANGELES.. 81
.........................
(即不夠 35 個(gè)字符用'.'填滿)
LTRIM(左截?cái)?RTRIM(右截?cái)啵?函數(shù)
LTRIM (string [,’set’])
Left TRIM (左截?cái)?刪去左邊出現(xiàn)的任何set 字符。
RTRIM (string [,’set’])
Right TRIM (右截?cái)?刪去右邊出現(xiàn)的任何set 字符。
例1:
SELECT RTRIM (‘Mother Theresa, The’, ‘The’) “Example of Right
Trimming” FROM DUAL;
Example of Right
----------------
Mother Theresa,
SUBSTR Substr(string,start[,Count])
取子字符串中函數(shù)
對字串 (或字段),從 start字符 開始,連續(xù)取 count 個(gè)字符并返回結(jié)果,如果沒有指 count
則一直取到尾。
select phone,substr(phone,1,3) || ‘0’ || substr(phone,4)
from telecommunication where master ’中國電信’;
SUBSTRB(string,start[,Count])
對字串 (或字段),從 start字節(jié) 開始,連續(xù)取 count 個(gè)字節(jié)并返回結(jié)果,如果沒有指 count
則一直取到尾。
REPLACE (‘string’ [,’string_in’,’string_out’])
String: 希望被替換的字符串或變量。
String_in: 被替換字符串。
String_out: 要替換字符串。
SQL select replace('Informaix 中國公司','Informaix','IBM Informix')
2 IBM 數(shù)據(jù)庫 from dual;
IBM 數(shù)據(jù)庫
--------------------
IBM Informix 中國公司
SOUNDEX( c )
返回一個(gè)與給定的字符串讀音相同的字符串(不管拼寫是否一樣)。
SELECT DPL_NAME FROM DENIED_PARTIES_LIST WHERE
SOUNDEX(DPL_NAME) = SOUNDEX(‘Saddam Hussain’) ;
DPL_NAME
----------------------------------------------
Al Husseni
Sadda Al Sada.
REPLACE (‘string’ [,’string_in’,’string_out’])
String:希望被替換的字符串或變量。
String_in: 被替換字符串。
String_out: 要替換字符串。
SELECT REPLACE (‘Oracle’, ‘Or’, ‘Mir’) “Example “ FROM DUAL;
Example
-------
Miracle
TRIM ( [leading] trailing FROM trim_char )
RIM可以使你對給定的字符串進(jìn)行裁剪(前面,后面或前后)。
z 如果指定 LEADING, Oracle 從trim_char 中裁剪掉前面的字符;
z 如果指定TRAILING, Oracle 從trim_char 中裁剪掉尾面的字符;
z 如果指定兩個(gè)都指定或一個(gè)都沒有給出,Oracle從trim_char 中裁剪掉前面及尾面的字
符;
z 如果不指定 trim_character, 缺省為空格符;
z 如果只指定trim_source, Oracle Oracle從trim_char 中裁剪掉前面及尾面的字符。
例子:將下面字符串中的前面和后面的‘0 ‘字符都去掉:
SELECT TRIM (0 FROM 0009872348900) "TRIM Example" FROM DUAL;
TRIM example
--------------------------------
98723489
語法:TRANSLATE(expr,from,to)
om,to) expr: 代表一串字符,
expr: 代表一串字符,from 與 to 是從左到右一一對應(yīng)的關(guān)系,如果不能對應(yīng),則視為空值。
舉例:
select translate('abcbbaadef','ba','#@') from dual (b將被#替代,a將被@替代)
select translate(ab
select translate('abcbbaadef','bad','#@') from dual (b將被#替代,a將被@替代,d對應(yīng)的值是空值,將被移走)
因此:結(jié)果依次為:@#c##@@def 和@#c##@@ef
下面要說的是如果將txt文本數(shù)據(jù)導(dǎo)入到Oracle中
Dos
環(huán)境下使用SQl*Loader命令
加載
使用其它數(shù)據(jù)庫的數(shù)據(jù)轉(zhuǎn)移工具
Oracle
企業(yè)管理器中的數(shù)據(jù)加載功能
具體的技術(shù)實(shí)現(xiàn)
一、Dos
環(huán)境下加載
1、首先,服務(wù)器端的偵聽服務(wù)必須已經(jīng)開啟。
測試方法:Dos
下輸入
C:/sqlplus
username/password@serviceName
2、然后使用
Oracle
的
sqlldr
命令進(jìn)行數(shù)據(jù)的導(dǎo)入
前期條件
1)
Oracle
數(shù)據(jù)庫端必須已經(jīng)建好了需要導(dǎo)入的數(shù)據(jù)表的結(jié)構(gòu)
2)
一個(gè)數(shù)據(jù)源文件
下面例子中為制表符分隔的文本文件
model.txt
,為Excel
表中導(dǎo)出的
3)
手工編輯一個(gè)XXX.CTL
的控制文件
4)
命令行加載數(shù)據(jù)
如下實(shí)例:
以下文件缺省放到C:/
下,如果不是,就需要指明全路徑
1.
命令控制文件
input.ctl
內(nèi)容
命令
說明
load
data
1、控制文件標(biāo)識
infile
'model.txt'
2、要輸入的數(shù)據(jù)文件名為test.txt
append
into
table
system.塔位屬性表
3、向表test中追加記錄
fields
terminated
by
X'09'
4、指定分隔符,字段終止于X'09',是一個(gè)制表符(TAB)
(編號,名稱,大小)
5、定義列對應(yīng)表中順序
控制文件中指定插入數(shù)據(jù)的方式關(guān)鍵字
insert,為缺省方式,在數(shù)據(jù)裝載開始時(shí)要求表為空
append,在表中追加新記錄
replace,刪除舊記錄,替換成新裝載的記錄
truncate,同上
在
Dos
窗口下使用
SQl*Loader
命令實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入
C:/sqlldr
userid=system/manager@
serviceName
control=input.ctl
默認(rèn)日志文件名為:input.log
默認(rèn)壞記錄文件為:input.bad
二、使用其它數(shù)據(jù)庫轉(zhuǎn)移工具
以下以SQL
Server
導(dǎo)入導(dǎo)出向?qū)槔?/p>
1、在數(shù)據(jù)的導(dǎo)入導(dǎo)出向?qū)е性O(shè)置數(shù)據(jù)源服務(wù)器,實(shí)例中選擇數(shù)據(jù)源選擇SQL
Server
2、然后指定要導(dǎo)入的Oracle
數(shù)據(jù)源
3、需要配置Oracle
的屬性信息
需要注意的是,登錄數(shù)據(jù)庫的用戶信息即為數(shù)據(jù)導(dǎo)入之后的方案名,即導(dǎo)入之后的SQL
Server
中的表在Oracle
中標(biāo)志名為
username.表名
以下按照提示即可,可以完全導(dǎo)入SQl
Server
中的數(shù)據(jù)表和視圖,也可以使用查詢語句返回你要選擇的列或者行。
三、Oracle
企業(yè)管理器中的數(shù)據(jù)加載功能
登錄Oracle
的控制臺界面,針對單獨(dú)的數(shù)據(jù)表可以使用數(shù)據(jù)加載工具
中間需要指定控制文件等,同Dos
加載一致,不再重復(fù)
----------------------------------------------------
向Oracle中導(dǎo)入文本數(shù)據(jù)時(shí)使用的控制文件格式
無論是使用上一篇中的哪種方式都需要有一個(gè)控制文件,下面是控制文件(ctl文件)書寫的基本格式:
命令
說明
load
data
1、控制文件標(biāo)識
infile
'testl.txt'
2、要輸入的數(shù)據(jù)文件名為test.txt,此時(shí)是要導(dǎo)入的數(shù)據(jù)文件同控制文件在同一路徑下,如果不在同一路徑下則需要寫完整路徑名
append
into
table
表名(可以是全名也可以是同義詞)
3、向表test中追加記錄
fields
terminated
by
X'09'
4、指定分隔符,字段終止于X'09',是一個(gè)制表符(TAB),如果用逗號分割就將X'09'替換為','
(編號,名稱,大小)
5、定義列對應(yīng)表中順序
控制文件中指定插入數(shù)據(jù)的方式關(guān)鍵字
insert,為缺省方式,在數(shù)據(jù)裝載開始時(shí)要求表為空
append,在表中追加新記錄
replace,刪除舊記錄,替換成新裝載的記錄
truncate,同上
控制文件的示例:
load
data
infile
'test.txt'
append
into
table
test.test
fields
terminated
by
X'09'
(test,test1,test2)
對有時(shí)間類型的數(shù)據(jù)導(dǎo)入的示例控制文件:
load
data
infile
'h:/TB_FACT_PHS_TICKET_DAY.txt'
Append
into
TABLE
TB_FACT_PHS_TICKET_DAY
fields
terminated
by
X'09'
(Time_Id
,Region_Id
,Cust_Type_Id
,Prod_Type_Id
,Acct_Item_Type_Id
,Acct_Item_Type_Cd
,Exchange97_Cd
,Latn_Cd
,Call_Duration
,Access_In_Duration
,Income
,In_Date
Date
"YYYY-MM-DD"
)
文件導(dǎo)入命令
C:/sqlldr
userid=test/test@test
control=test.ctl(此時(shí)控制文件test.ctl存在C:/路徑下)
在命令控制符下進(jìn)入Oracle
C:/sqlplus
username/password@serviceName
oracle導(dǎo)入txt數(shù)據(jù)文件2008年07月30日
星期三
17:21把txt文件格式的數(shù)據(jù)文件導(dǎo)入oracle的方法是利用sqlloader工具。
第一步:把文本格式的數(shù)據(jù)文件放入C盤。如,test.txt
第二步:建立控制文件append.ctl。(名字可以隨便取,放C盤下)
append.ctl的內(nèi)容如下:
load
data
--1、控制文件標(biāo)識
infile
'test.txt'
--2、要輸入的數(shù)據(jù)文件名為test.txt
append
into
table
CTXSYS.test --3、向CTXSYS表空間中的表test中追加記錄
fields
terminated
by
X'09'
--4、字段終止于X'09',是一個(gè)制表符
(id,username,password,sj)
-----定義列對應(yīng)順序
其中append為數(shù)據(jù)裝載方式,還有其他選項(xiàng):
a、insert,為缺省方式,在數(shù)據(jù)裝載開始時(shí)要求表為空
b、append,在表中追加新記錄
c、replace,刪除舊記錄,替換成新裝載的記錄
d、truncate,同上
第三步:在命令提示符下輸入命令。
C:/sqlldr
userid=username/password
control=c:/append.ctl
數(shù)據(jù)庫中用名的用戶名和密碼
或者
C:/sqlldr
userid=system/manager@
serviceName
control=input.ctl
第二條命令中的system數(shù)據(jù)庫用戶名
manager密碼
@serviceName
是Oracle中本地配置文件的服務(wù)名
----------------------------------------------------
一些經(jīng)常出現(xiàn)的問題:
1。關(guān)于日期格式的問題:
ctl基本寫法諸如:
load
data
infile
'C:/TP_LOANCONTRACTSUM.txt'
insert
into
table
TP_LOANCONTRACTSUM
fields
terminated
by
'|!'
(
column01,
column02,
column03,
column04
"to_date(:column04,'''yyyy-mm-dd
hh24:mi:ss''')",
column05
"to_date(:column05,'''yyyy-mm-dd
hh24:mi:ss''')",
column06,
column07,
column08,
column09,
column10,
column11,
column12
"to_date(:column12,'''yyyy-mm-dd
hh24:mi:ss''')",
column13
)
2。關(guān)于長字符串問題,CTL默認(rèn)情況下是256位(或者256位左右),所以長字符串時(shí)會(huì)在log里報(bào)錯(cuò),提示所輸入的值超過最大長度,解決辦法,在ctl文件里再指定大小,注意個(gè)情況,不能寫VARCHAR只能寫CHAR,否則報(bào)錯(cuò),諸如:
load
data
infile
'C:/TP_PLEDGECONTRACTINFO.txt'
insert
into
table
TP_PLEDGECONTRACTINFO
fields
terminated
by
'|!'
(
column01,
column02,
column03,
column04,
column05,
column06,
column07
"to_date(:column07,'''yyyy-mm-dd
hh24:mi:ss''')",
column08,
column09,
column10
"to_date(:column10,'''yyyy-mm-dd
hh24:mi:ss''')",
column11,
column12,
column13,
column14,
column15
"to_date(:column15,'''yyyy-mm-dd
hh24:mi:ss''')",
column16,
column17,
column18
"to_date(:column18,'''yyyy-mm-dd
hh24:mi:ss''')",
column19,
column20,
column21,
column22,
column23,
column24,
column25
"to_date(:column25,'''yyyy-mm-dd
hh24:mi:ss''')",
column26
CHAR(500),
column27,
column28
)
oracle plsql 制表符怎么些
建表要點(diǎn): 1 Gengeral 中定義表名,表空間。 2 Columns 對字段進(jìn)行定義。 3 在Key選擇主鍵字段,定義主鍵名稱,一般用表名。 不能“Apply” 一般是定義不完全。
oracle中去掉文本中的換行符、回車符、制表符小結(jié)
一、特殊符號ascii定義
制表符 chr(9)
換行符 chr(10)
回車符 chr(13)
二、嵌套使用repalce,注意每次只能提交一個(gè)符號,如先回車再換行
select REPLACE(gg, chr(10), '') from dual
要注意chr(13) | | chr(10) 此類結(jié)合使用的情況比較多,回車換行在notepad中是比較好看點(diǎn)的,所以要考慮此種情況
select translate(string,chr(13)||chr(10),',') from dual;
1、例子一
create table TEST_1
(
VA VARCHAR2(10),
VB NUMBER(2),
VC VARCHAR2(10),
VD NUMBER(11,2),
VE NUMBER(11,4),
VCL CLOB
);
SQL select vb,vc,replace(vc,chr(10),'') as TT, translate(vc,chr(10),',') from test_1;
VB VC TT TRANSLATE(VC,CHR(10),',')
--- ---------- ---------- -------------------------
0 Aaaaaaaaa Aaaaaaaaa Aaaaaaaaa
1 Aaaaaaaaa Aaaaaaaaa Aaaaaaaaa
2 大Ba 大Babc帶 大Ba,b,c帶
b
c帶
3 C C C
1 D D D
5 A A A
5 A A A
0 A A A
0 A A A
2、例子二
要注意chr(13) | | chr(10) 此類結(jié)合使用的情況比較多,回車換行在notepad中是比較好看點(diǎn)的,所以要考慮此種情況
select vb,vc,replace(vc,chr(10),'') as TT, translate(vc,chr(13)||chr(10),',') from test_1;
SQL select vb,vc,replace(vc,chr(10),'') as TT, translate(vc,chr(13)||chr(10),',') from test_1;
VB VC TT TRANSLATE(VC,CHR(13)||CHR(10),
--- ---------- ---------- ------------------------------
0 Aaaaaaaaa Aaaaaaaaa Aaaaaaaaa
1 Aaaaaaaaa Aaaaaaaaa Aaaaaaaaa
2 大Ba 大Babc帶 大Babc帶
b
c帶
3 C C C
1 D D D
5 A A A
5 A A A
0 A A A
0 A A A
11 rows selected
三、對于字符大對象的符號處理
對于clob字段中的符號處理,先to_char然后一樣的處理
SQL select to_char(vcl),replace(to_char(vcl),chr(10),'[]') from test_1;
TO_CHAR(VCL) REPLACE(TO_CHAR(VCL),CHR(10),'
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
嵌套使用repalce,注意每次只能提交一個(gè)符號,如先回車再換行 嵌套使用repalce,注意每次只能提交一個(gè)符號,如先回車再換行[]select REPLACE(gg, chr(10), '') from dual[]sel
select REPLACE(gg, chr(10), '') from dual
select translate(string,chr(13)||chr(10),',') from dual;
func:
2.2.1 單記錄字符函數(shù)
函 數(shù) 說 明
ASCII 返回對應(yīng)字符的十進(jìn)制值
CHR 給出十進(jìn)制返回字符
CONCAT 拼接兩個(gè)字符串,與 || 相同
INITCAT 將字符串的第一個(gè)字母變?yōu)榇髮?/p>
INSTR 找出某個(gè)字符串的位置
INSTRB 找出某個(gè)字符串的位置和字節(jié)數(shù)
LENGTH 以字符給出字符串的長度
LENGTHB 以字節(jié)給出字符串的長度
LOWER 將字符串轉(zhuǎn)換成小寫
LPAD 使用指定的字符在字符的左邊填充
LTRIM 在左邊裁剪掉指定的字符
RPAD 使用指定的字符在字符的右邊填充
RTRIM 在右邊裁剪掉指定的字符
REPLACE 執(zhí)行字符串搜索和替換
SUBSTR 取字符串的子串
SUBSTRB 取字符串的子串(以字節(jié))
SOUNDEX 返回一個(gè)同音字符串
TRANSLATE 執(zhí)行字符串搜索和替換
TRIM 裁剪掉前面或后面的字符串
UPPER 將字符串變?yōu)榇髮?/p>
NVL 以一個(gè)值來替換空值
ASCII(c1)
c1是字符串。返回與指定的字符對應(yīng)的十進(jìn)制數(shù)。
SQL select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
A a ZERO SPACE
---------- ---------- ---------- ----------
65 97 48 32
SQL select ascii('趙') zhao,length('趙') leng from dual;
ZHAO LENG
---------- ----------
54740 1
CHR(I[NCHAR])
給出整數(shù),返回對應(yīng)字符。如:
SQL select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
-- -
趙 A
CONCAT(c1,c2)
SQL select concat('010-','8801 8159')||'轉(zhuǎn)23' 趙元杰電話 from dual;
趙元杰電話
-----------------
010-8801 8159 轉(zhuǎn)23
INITCAP(c1)
返回字符串c1 并第一個(gè)字母變?yōu)榇髮憽@纾?/p>
SQL select initcap('simth') upp from dual;
UPP
-----
Simth
INSTR(c1,c2[,I[,j] ] )
在一個(gè)字符串中搜索指定的字符,返回發(fā)現(xiàn)指定的字符的位置。
C1: 被搜索的字符串
C2: 希望搜索的字符串
I: 搜索的開始位置,缺省是1
J: 出現(xiàn)的位置,缺省是1。
SQL SELECT INSTR ('Oracle Training', 'ra', 1, 2) "Instring" FROM DUAL;
Instring
----------
9
INSTRB(c1,c2[,I[,j] ] )
除了返回的字節(jié)外 ,與INSTR 相同,
LENGTH( c )
返回字符串 c 的長度。
SQL l
1 select name,length(name),addr,length(addr),sal,length(to_char(sal))
2* from nchar_tst
SQL /
NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL))
------ ------------ ---------------- ------------ ---------- ----------------
趙元杰 3 北京市海淀區(qū) 6 99999.99 8
LENGTHB( c )
以字節(jié)返回字符串的字節(jié)數(shù)。
SQL select name,lengthb(name),length(name) from nchar_tst;
NAME LENGTHB(NAME) LENGTH(NAME)
------ ------------- ------------
趙元杰 6 3
LOWER ( c )
返回字符串并將所有字符變?yōu)樾憽?/p>
SQL select lower('AaBbCcDd') AaBbCcDd from dual;
AABBCCDD
--------
aabbccdd
UPPER( c)
與 LOWER 相反,將給出字符串變?yōu)榇髮?。如?/p>
SQL select upper('AaBbCcDd') AaBbCcDd from dual;
AABBCCDD
--------
AABBCCDD
RPAD 和LPAD(粘貼字符)
RPAD(string,Length[,'set'])
LPAD(string,Length[,'set'])
RPAD在列的右邊粘貼字符;
LPAD在列的左邊粘貼字符。
例 1:
SQLselect RPAD(City,35,'.'),temperature from weather;
RPAD(City,35,'.') temperature
-------------------------- ----------------
CLEVELAND...... 85
LOS ANGELES.. 81
.........................
(即不夠 35 個(gè)字符用'.'填滿)
LTRIM(左截?cái)?RTRIM(右截?cái)啵?函數(shù)
LTRIM (string [,’set’])
Left TRIM (左截?cái)?刪去左邊出現(xiàn)的任何set 字符。
RTRIM (string [,’set’])
Right TRIM (右截?cái)?刪去右邊出現(xiàn)的任何set 字符。
例1:
SELECT RTRIM (‘Mother Theresa, The’, ‘The’) “Example of Right
Trimming” FROM DUAL;
Example of Right
----------------
Mother Theresa,
SUBSTR Substr(string,start[,Count])
取子字符串中函數(shù)
對字串 (或字段),從 start字符 開始,連續(xù)取 count 個(gè)字符并返回結(jié)果,如果沒有指 count
則一直取到尾。
select phone,substr(phone,1,3) || ‘0’ || substr(phone,4)
from telecommunication where master ’中國電信’;
SUBSTRB(string,start[,Count])
對字串 (或字段),從 start字節(jié) 開始,連續(xù)取 count 個(gè)字節(jié)并返回結(jié)果,如果沒有指 count
則一直取到尾。
REPLACE (‘string’ [,’string_in’,’string_out’])
String: 希望被替換的字符串或變量。
String_in: 被替換字符串。
String_out: 要替換字符串。
SQL select replace('Informaix 中國公司','Informaix','IBM Informix')
2 IBM 數(shù)據(jù)庫 from dual;
IBM 數(shù)據(jù)庫
--------------------
IBM Informix 中國公司
SOUNDEX( c )
返回一個(gè)與給定的字符串讀音相同的字符串(不管拼寫是否一樣)。
SELECT DPL_NAME FROM DENIED_PARTIES_LIST WHERE
SOUNDEX(DPL_NAME) = SOUNDEX(‘Saddam Hussain’) ;
DPL_NAME
----------------------------------------------
Al Husseni
Sadda Al Sada.
REPLACE (‘string’ [,’string_in’,’string_out’])
String:希望被替換的字符串或變量。
String_in: 被替換字符串。
String_out: 要替換字符串。
SELECT REPLACE (‘Oracle’, ‘Or’, ‘Mir’) “Example “ FROM DUAL;
Example
-------
Miracle
TRIM ( [leading] trailing FROM trim_char )
RIM可以使你對給定的字符串進(jìn)行裁剪(前面,后面或前后)。
z 如果指定 LEADING, Oracle 從trim_char 中裁剪掉前面的字符;
z 如果指定TRAILING, Oracle 從trim_char 中裁剪掉尾面的字符;
z 如果指定兩個(gè)都指定或一個(gè)都沒有給出,Oracle從trim_char 中裁剪掉前面及尾面的字
符;
z 如果不指定 trim_character, 缺省為空格符;
z 如果只指定trim_source, Oracle Oracle從trim_char 中裁剪掉前面及尾面的字符。
例子:將下面字符串中的前面和后面的‘0 ‘字符都去掉:
SELECT TRIM (0 FROM 0009872348900) "TRIM Example" FROM DUAL;
TRIM example
--------------------------------
98723489
語法:TRANSLATE(expr,from,to)
om,to) expr: 代表一串字符,
expr: 代表一串字符,from 與 to 是從左到右一一對應(yīng)的關(guān)系,如果不能對應(yīng),則視為空值。
舉例:
select translate('abcbbaadef','ba','#@') from dual (b將被#替代,a將被@替代)
select translate(ab
select translate('abcbbaadef','bad','#@') from dual?。╞將被#替代,a將被@替代,d對應(yīng)的值是空值,將被移走)
因此:結(jié)果依次為:@#c##@@def 和@#c##@@ef