Các hàm xử lý chuỗi trong Oracle
1. ASCII
Hệ cơ số 10 (Dec) | Hệ cơ số 16 (Hex) | Hệ cơ số 8 (Oct) | Ký tự | Mô tả | Hệ cơ số 10 (Dec) | Hệ cơ số 16 (Hex) | Hệ cơ số 8 (Oct) | Ký tự | Mô tả | |
0 | 0 | 0 | null | 64 | 40 | 100 | @ | |||
1 | 1 | 1 | start of heading | 65 | 41 | 101 | A | |||
2 | 2 | 2 | start of text | 66 | 42 | 102 | B | |||
3 | 3 | 3 | end of text | 67 | 43 | 103 | C | |||
4 | 4 | 4 | end of transmission | 68 | 44 | 104 | D | |||
5 | 5 | 5 | enquiry | 69 | 45 | 105 | E | |||
6 | 6 | 6 | acknowledge | 70 | 46 | 106 | F | |||
7 | 7 | 7 | bell | 71 | 47 | 107 | G | |||
8 | 8 | 10 | backspace | 72 | 48 | 110 | H | |||
9 | 9 | 11 | horizontal tab | 73 | 49 | 111 | I | |||
10 | A | 12 | new line | 74 | 4A | 112 | J | |||
11 | B | 13 | vertical tab | 75 | 4B | 113 | K | |||
12 | C | 14 | new page | 76 | 4C | 114 | L | |||
13 | D | 15 | carriage return | 77 | 4D | 115 | M | |||
14 | E | 16 | shift out | 78 | 4E | 116 | N | |||
15 | F | 17 | shift in | 79 | 4F | 117 | O | |||
16 | 10 | 20 | data link escape | 80 | 50 | 120 | P | |||
17 | 11 | 21 | device control 1 | 81 | 51 | 121 | Q | |||
18 | 12 | 22 | device control 2 | 82 | 52 | 122 | R | |||
19 | 13 | 23 | device control 3 | 83 | 53 | 123 | S | |||
20 | 14 | 24 | device control 4 | 84 | 54 | 124 | T | |||
21 | 15 | 25 | negative acknowledge | 85 | 55 | 125 | U | |||
22 | 16 | 26 | synchronous idle | 86 | 56 | 126 | V | |||
23 | 17 | 27 | end of trans. block | 87 | 57 | 127 | W | |||
24 | 18 | 30 | cancel | 88 | 58 | 130 | X | |||
25 | 19 | 31 | end of medium | 89 | 59 | 131 | Y | |||
26 | 1A | 32 | substitute | 90 | 5A | 132 | Z | |||
27 | 1B | 33 | escape | 91 | 5B | 133 | [ | |||
28 | 1C | 34 | file separator | 92 | 5C | 134 | \ | |||
29 | 1D | 35 | group separator | 93 | 5D | 135 | ] | |||
30 | 1E | 36 | record separator | 94 | 5E | 136 | ^ | |||
31 | 1F | 37 | unit separator | 95 | 5F | 137 | _ | |||
32 | 20 | 40 | space | 96 | 60 | 140 | ` | |||
33 | 21 | 41 | ! | 97 | 61 | 141 | a | |||
34 | 22 | 42 | " | 98 | 62 | 142 | b | |||
35 | 23 | 43 | # | 99 | 63 | 143 | c | |||
36 | 24 | 44 | $ | 100 | 64 | 144 | d | |||
37 | 25 | 45 | % | 101 | 65 | 145 | e | |||
38 | 26 | 46 | & | 102 | 66 | 146 | f | |||
39 | 27 | 47 | ' | 103 | 67 | 147 | g | |||
40 | 28 | 50 | ( | 104 | 68 | 150 | h | |||
41 | 29 | 51 | ) | 105 | 69 | 151 | i | |||
42 | 2A | 52 | * | 106 | 6A | 152 | j | |||
43 | 2B | 53 | + | 107 | 6B | 153 | k | |||
44 | 2C | 54 | , | 108 | 6C | 154 | l | |||
45 | 2D | 55 | - | 109 | 6D | 155 | m | |||
46 | 2E | 56 | . | 110 | 6E | 156 | n | |||
47 | 2F | 57 | / | 111 | 6F | 157 | o | |||
48 | 30 | 60 | 0 | 112 | 70 | 160 | p | |||
49 | 31 | 61 | 1 | 113 | 71 | 161 | q | |||
50 | 32 | 62 | 2 | 114 | 72 | 162 | r | |||
51 | 33 | 63 | 3 | 115 | 73 | 163 | s | |||
52 | 34 | 64 | 4 | 116 | 74 | 164 | t | |||
53 | 35 | 65 | 5 | 117 | 75 | 165 | u | |||
54 | 36 | 66 | 6 | 118 | 76 | 166 | v | |||
55 | 37 | 67 | 7 | 119 | 77 | 167 | w | |||
56 | 38 | 70 | 8 | 120 | 78 | 170 | x | |||
57 | 39 | 71 | 9 | 121 | 79 | 171 | y | |||
58 | 3A | 72 | : | 122 | 7A | 172 | z | |||
59 | 3B | 73 | ; | 123 | 7B | 173 | { | |||
60 | 3C | 74 | < | 124 | 7C | 174 | | | |||
61 | 3D | 75 | = | 125 | 7D | 175 | } | |||
62 | 3E | 76 | > | 126 | 7E | 176 | ~ | |||
63 | 3F | 77 | ? | 127 | 7F | 177 | DEL |
2. COALESCE
Hàm COALESCE trả về biểu thức đầu tiên khác null trong danh sách. Nếu tất cả các biểu thức trong danh sách đánh giá đều NULL, thì hàm COALESCE sẽ trả về NULL.
Cú pháp:
COALESCE( p_expression1, p_expression2, ... p_expressionN )
Tham số:
- p_expression1, p_expression2, .. p_expressionN
- Các biểu thức để kiểm tra khác null.
Ví dụ:
-- --> 'Abc'
Select COALESCE(null, 'Abc', '123') as Column1 from dual;
-- --> 'Aaa'
Select COALESCE('Aaa', null, '345') as Column1 from dual;
-- --> 'Sss'
Select COALESCE(null, null, null, 'Sss') as Column1 from dual;
5. INITCAP
Hàm INITCAP trả về một chuỗi ký tự với các chữ cái đầu tiên của mỗi từ được chuyển đổi thành chữ hoa (Cũng được gọi là "title case"). Tất cả các chữ khác trong chuỗi sẽ được chuyển thành chữ thường. Các từ được ngăn cách nhau bởi dấu trắng (white space) (spaces, tabs, carriage returns, formfeeds, vertical-tabs, newlines) hoặc các ký tự không phải là chữ và số.
Cú pháp:
INITCAP( p_string )
Tham số:
p_string
- Chuỗi (string) tham số mà toàn bộ các ký tự đầu tiên của mỗi từ sẽ chuyển thành chữ hoa, và các chữ còn lại trong từ sẽ chuyển thành chữ thường.
Ví dụ:
-- --> Tom Cat
Select Initcap('TOM CAT') From Dual;
-- --> Tom Cat
Select Initcap('tom cat') From Dual;
6. CHR
Hàm CHR trả về ký tự ASCII tương ứng với giá trị được truyền vào tham số cho nó. Nếu chỉ định thêm NCHAR_CS, nó sẽ trả về ký tự tương ứng theo mã của một quốc gia nào đó.
Cú pháp:
CHR( p_number )
CHR( p_number using nchar_cs)
Tham số:
p_number
- Số được truyền vào để lấy ra ký tự tương ứng.
Ví dụ:
-- --> @
Select chr(64) From dual;
-- --> A
Select chr(65) From dual;
-- --> â
Select chr(50082) From dual;
-- --> 쎢
Select chr(50082 using nchar_cs) From dual;
8. CONCAT(Clob, Clob)
- CONCAT(CLOB, NCLOB) returns NCLOB
- CONCAT(NCLOB, NCHAR) returns NCLOB
- CONCAT(NCLOB, CHAR) returns NCLOB
- CONCAT(NCHAR, CLOB) returns NCLOB
Tham số:
p_string1
- string đầu tiên để nối
- string thứ hai để nối.
Ví dụ:
Declare
C1 Clob := To_Clob('Tom ');
C2 Clob := To_Clob('Cat');
C3 Clob;
C4 Clob;
Begin
Select Concat(C1
,C2)
Into C3
From Dual;
----
-- --> Tom Cat
Dbms_Output.Put_Line(C3);
----
C4 := Concat(C1
,C2);
-- --> Tom Cat
Dbms_Output.Put_Line(C4);
End;
9. INSTR
Hàm INSTR trả về vị trí của một chuỗi con trong một chuỗi cho trước.
Cú pháp:
INSTR( p_string, p_substring [, p_start_position [, p_occurrence ] ] )
p_string
- Tìm trên chuỗi này. p_string có thể là CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, hoặc NCLOB.
- Chuỗi con sẽ tìm trong p_string. p_substring có thể là CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, hoặc NCLOB.
- Tham số không bắt buộc. Là vị trí bắt đầu tìm kiếm trong p_string. Nếu không sử dụng tham số này, mặc định nó là 1. Vị trí đầu tiên trong string là 1. Nếu p_start_position có giá trị âm, Hàm INSTR sẽ đếm ngược p_start_position ký tự từ cuối chuỗi, và tìm kiếm tiếng tới đầu của chuỗi.
- Tham số không bắt buộc. Đếm lần xuất hiện thứ p_occurrence của p_substring, nếu không sử dụng tham số này, mặc định nó là 1.
Nếu không tìm thấy p_substring ở trong p_string, hàm INSTR sẽ trả về 0.
Ví dụ:
-- --> 14
Select Instr('Corporate Floor', 'or', 5, 2) as Column1 from dual;
-- --> 5
Select Instr('Corporate Floor', 'or', -10) as Column1 from dual;
Xem thêm:
10. INSTRB
Hàm INSTRB trả về vị trí của chuỗi con trong một chuỗi cho trước, sử dụng các byte thay vì các ký tự.
Cú pháp:
INSTRB (p_string , p_substring [, p_start_position [, p_occurrence]])
Hàm INSTRB trả về vị trí tìm thấy p_substring trong p_string, sử dụng cách tìm theo byte thay vì tìm theo ký tự.
Tham số:
p_string
- Tìm kiếm trong chuỗi này.
- Chuỗi sẽ tìm
- Một số nguyên khác 0 chỉ định vị trí byte sẽ bắt đầu tìm kiếm. Nếu p_start_position có giá trị âm, thì hàm INSTRB sẽ tìm kiếm ngược từ cuối chuỗi. Giá trị mặc định của vị trí là 1, có nghĩa là chức năng bắt đầu tìm kiếm tại các byte đầu tiên của chuỗi.
- Một số nguyên chỉ định số lần xuất hiện của chuỗi cần tìm. Giá trị của nó phải là số dương. Các giá trị mặc định của p_occurrence là 1, có nghĩa là tìm kiếm vị trí xuất hiện đầu tiên của chuỗi cần tìm.
Nếu không tìm thấy p_substring ở trong p_string, hàm INSTRB sẽ trả về 0.
12. LENGTHB
Hàm LENGTHB trả về độ dài của một chuỗi, sử dụng cách đếm số byte thay vì đếm số ký tự.
Cú pháp:
LENGTHB( p_string )
Tham số:
p_string (CHAR, VARCHAR2, NCHAR, NVARCHAR2)
- string cần kiểm tra độ dài (theo bytes).
Ví dụ:
-- Null - Null
Select Lengthb(Null) Column1
,Lengthb('') Column2
From Dual;
-- 7
Select Lengthb('Tom Cat') Column1 From dual;
-- 2
Select Lengthb('Â') As Column1 From Dual;
-- length of characters
-- --> 10
Select Length('Tiếng Việt') from dual;
-- length of bytes
-- --> 14
Select Lengthb('Tiếng Việt') from dual;
13. LPAD
Hàm LPAD thêm vào bên trái chuỗi một tập hợp các ký tự cho trước.
Cú pháp:
LPAD( p_string, p_padded_length [, p_pad_string] )
Tham số:
p_string
- string sẽ được đệm thêm các ký tự vào bên trái nó.
- Độ dài của string sau khi được đệm thêm vào. Nếu p_padded_length nhỏ hơn độ dài của string ban đầu (p_string), hàm LPAD sẽ cắt cụt string ban đầu, bỏ bên phải, để có được độ dài p_padded_length.
- Tham số không bắt buộc. Đây là string dùng để đệm vào bên trái của p_string. Nếu tham số này không được sử dụng, hàm LPAD sẽ đệm vào các khoảng trắng vào bên trái của p_string.
Ví dụ:
-- 00123
Select Lpad('123', 5, '0') From Dual;
-- 12345
Select Lpad('1234567', 5, '0') From Dual;
-- ' Tom'
Select Lpad('Tom', 10) From Dual;
-- 'To'
Select Lpad('Tom', 2) From Dual;
14. LTRIM
Hàm LTRIM sẽ loại bỏ các khoảng trắng bên trái (leading spaces) của một string ban đầu. Ký tự khoảng trắng là mặc định để loại bỏ, tuy nhiên bạn có thể chỉ định các ký tự để loại bỏ. Các ký tự được chỉ định là các chuỗi chữ ('A', 'm',..) hoặc CHR tương đương. Ví dụ 'CHR(112)', 'CHR(68)'.
Hàm LTRIM trả về kiểu VARCHAR2.
Hàm LTRIM trả về kiểu VARCHAR2.
Cú pháp:
LTRIM( p_string [, p_trim_string] )
Tham số:
p_string
- string sẽ được loại bỏ các ký tự bên trái của nó.
- Tham số không bắt buộc. Là chuỗi sẽ được loại bỏ ở bên trái của p_string. Nếu tham số này không được sử dụng, hàm LTRIM sẽ loại bỏ các ký tự trắng ra khỏi bên trái của p_string.
Ví dụ:
-- --> TOM
Select LTRIM(' TOM') From dual;
-- --> 789
Select LTRIM('000789', '0') From Dual;
-- --> ABC01
Select LTRIM('0101ABC01', '01') From dual;
-- --> 4210ABC
Select LTRIM('34210ABC', '0123') From dual;
15. RTRIM
Hàm RTRIM sẽ loại bỏ các khoảng trắng bên phải (trailing spaces) của một string ban đầu. Ký tự khoảng trắng là mặc định để loại bỏ, tuy nhiên bạn có thể chỉ định các ký tự để loại bỏ. Các ký tự được chỉ định là các chuỗi chữ ('A', 'm',..) hoặc CHR tương đương: 'CHR(112)', 'CHR(68)'.
Hàm RTRIM trả về kiểu VARCHAR2.
Hàm RTRIM trả về kiểu VARCHAR2.
Cú pháp:
RTRIM( p_string [, trim_string ] )
Tham số
p_string
- string sẽ được loại bỏ các ký tự bên phải của nó.
- Tham số không bắt buộc. Là chuỗi sẽ được loại bỏ ở bên phải của p_string. Nếu tham số này không được sử dụng, hàm RTRIM sẽ loại bỏ các ký tự trắng ra khỏi bên phải của p_string.
Ví dụ:
-- --> TOM
Select RTRIM('TOM ') From dual;
-- --> 000789
Select RTRIM('00078900', '0') From Dual;
-- --> 0101ABC
Select RTRIM('0101ABC0101', '01') From dual;
-- --> ABC34
Select RTRIM('ABC34210', '0123') From dual;
16. TRIM
Hàm TRIM sẽ loại bỏ các khoảng trắng bên trái (leading spaces) và khoảng trắng bên phải (trailing spaces) của một string ban đầu. Ký tự khoảng trắng là mặc định để loại bỏ, tuy nhiên bạn có thể chỉ định các ký tự để loại bỏ. Các ký tự được chỉ định là các chuỗi chữ ('A', 'm',..) hoặc CHR tương đương: 'CHR(112)', 'CHR(68)'.
Hàm TRIM trả về kiểu VARCHAR2.
Hàm TRIM trả về kiểu VARCHAR2.
Cú pháp:
TRIM( [ [ LEADING | TRAILING | BOTH ] p_trim_character FROM ] p_string )
Tham số:
LEADING
- Hàm sẽ loại bỏ p_trim_character ở phía bên trái của p_string.
- Hàm sẽ loại bỏ p_trim_character ở phía sau của p_string.
- Hàm sẽ loại bỏ p_trim_character ở phía trước và phía sau p_string.
- Các ký tự sẽ được loại bỏ khỏi p_string. Nếu tham số này không được sử dụng, hàm TRIM sẽ loại bỏ các khoảng trắng ra khỏi p_string.
- Là chuỗi sẽ được loại bỏ một số ký tự.
Ví dụ:
-- --> TOM
Select TRIM(' TOM ') From dual;
-- --> 78900
Select TRIM(Leading '0' from '00078900') From Dual;
-- --> 001ABC
Select TRIM(Trailing '0' from '001ABC00') From dual;
-- --> ABC21
Select TRIM(Both '0' from '00ABC21000' ) From dual;
17. SUBSTR
Hàm SUBSTR (Hoặc SUBSTRING) cho phép bạn trích xuất một phần của một chuỗi (một chuỗi con) từ một chuỗi kí tự.
Cú pháp:
SUBSTR( p_string, p_start_position [, p_length ] )
Tham số:
p_string
- string nguồn.
- Vị trí bắt đầu trích ra chuỗi con. Mặc định là 1.
- Tham số không bắt buộc. Nó là số ký tự sẽ được trích ra. Nếu tham số này không được sử dụng nó, hàm SUBSTR sẽ trả về chuỗi con từ vị trí p_start_position tới cuối của chuỗi p_string.
Nếu p_start_position là 0, hàm SUBSTR coi như p_start_position có giá trị đó là 1 (Vị trí đầu tiên trong chuỗi p_string).Nếu p_start_position là số âm, hàm SUBSTR sẽ bắt đầu từ cuối của p_string, đếm ngược lại p_start_position ký tự.Nếu p_length là số âm, hàm SUBSTR sẽ trả về giá trị NULL.
-- 'is is'
Select substr('this is a text message',3,5) Column1 from dual;
-- 'is is a text message'
Select substr('this is a text message',3) Column1 from dual;
-- 'messa'
Select substr('this is a text message',-7,5) Column1 from dual;
-- 'message'
Select substr('this is a text message',-7) Column1 from dual;
-- 'age'
Select substr('this is a text message',-3, 5) Column1 from dual;
-- null
Select substr('this is a text message',-3, -5) Column1 from dual;
18. SUBSTRB
Trả về một chuỗi con bằng cách đếm các byte, thay vì đếm các ký tự.
Cú pháp:
SUBSTRB( p_string, p_start_position [, p_length ] )
Tham số:
p_string
- Chuỗi nguồn.
- Vị trí bắt đầu để trích ra chuỗi con. Mặc định là 1.
- Tham số không bắt buộc. Nó là số byte sẽ được trích ra. Nếu tham số này không được sử dụng, hàm SUBSTRB sẽ trả về chuỗi con bắt đầu từ p_start_position tới cuối của chuỗi p_string.
Ví dụ:
-- ây là
Select Substrb('Đây là Tiếng Việt', 3, 7) from dual;
-- y là Ti
Select Substr('Đây là Tiếng Việt', 3, 7) from dual;
Các hướng dẫn về cơ sở dữ liệu Oracle
- Cài đặt PL/SQL Developer trên Windows
- Cơ sở dữ liệu Oracle mẫu để học SQL
- Hướng dẫn học SQL cho người mới bắt đầu với Oracle
- Cài đặt cơ sở dữ liệu Oracle 11g trên Windows
- Cài đặt cơ sở dữ liệu Oracle 12c trên Windows
- Cài đặt Oracle Client trên Windows
- Tạo Oracle SCOTT Schema
- Cơ sở dữ liệu mẫu
- Cấu trúc database và tính năng đám mây trong Oracle 12c
- Import và Export cơ sở dữ liệu Oracle
- Các hàm xử lý chuỗi trong Oracle
- Phân tách một chuỗi ngăn cách bởi dấu phẩy và chuyển vào mệnh đề IN của câu lệnh Select trong Oracle
- Truy vấn phân cấp trong Oracle
- Hướng dẫn và ví dụ Oracle Database Link và Synonym
- Hướng dẫn lập trình Oracle PL/SQL
- Phân tích XML trong Oracle PL/SQL
- Kiểm soát chuẩn hệ thống database Oracle (Audit Standard)
- Kiểm soát bắt buộc và kiểm soát quản trị trong Oracle
- Tạo và quản lý Oracle Wallet
Show More