ASCII |
Get The ASCII Value Of A
Character |
ASCII(ch VARCHAR2 CHARACTER SET ANY_CS)
RETURN PLS_INTEGER; |
SELECT ASCII('A') FROM dual; SELECT ASCII('Z') FROM dual; SELECT ASCII('a') FROM dual; SELECT ASCII('z') FROM dual; SELECT ASCII(' ') FROM dual; |
|
CASE Related
Functions |
Upper Case |
UPPER(ch VARCHAR2 CHARACTER SET
ANY_CS) RETURN VARCHAR2 CHARACTER SET ch%CHARSET; |
SELECT UPPER('Dan Morgan') FROM dual; |
Lower Case |
LOWER(ch VARCHAR2 CHARACTER SET
ANY_CS) RETURN VARCHAR2 CHARACTER SET ch%CHARSET; |
SELECT LOWER('Dan Morgan') FROM dual; |
Initial Letter Upper
Case |
INITCAP(ch VARCHAR2 CHARACTER SET
ANY_CS) RETURN VARCHAR2 CHARACTER SET ch%CHARSET; |
SELECT INITCAP('DAN MORGAN') FROM dual; |
NLS Upper Case |
NLS_UPPER(<string_or_column>) |
SELECT NLS_UPPER('Dan Morgan', 'NLS_SORT = XDanish') FROM
dual; |
NLS Lower Case |
NLS_LOWER(<string_or_column>) |
SELECT NLS_LOWER('Dan Morgan', 'NLS_SORT = XFrench') FROM
dual; |
NLS Initial Letter Upper
Case |
NLS_INITCAP(<string_or_column>) |
SELECT NLS_INITCAP('DAN MORGAN', 'NLS_SORT = XGerman') FROM
dual; |
|
CHR |
Character |
CHR(n PLS_INTEGER) RETURN
VARCHAR2; |
SELECT(CHR(68) || CHR(65) || CHR(78)) FROM dual;
SELECT(CHR(68) || CHR(97) || CHR(110)) FROM dual; |
|
COALESCE |
Returns the first non-null
occurrence |
COALESCE(<value>, <value>,
<value>, ...) |
CREATE TABLE test ( col1
VARCHAR2(1), col2 VARCHAR2(1), col3 VARCHAR2(1));
INSERT INTO
test VALUES (NULL, 'B', 'C'); INSERT INTO test VALUES ('A', NULL,
'C'); INSERT INTO test VALUES (NULL, NULL, 'C'); INSERT INTO test VALUES
('A', 'B', 'C');
SELECT COALESCE(col1, col2,
col3) FROM test; |
|
CONCAT |
Concatenate (overload
1) |
CONCAT(left IN VARCHAR2, right IN VARCHAR2)
RETURN VARCHAR2 |
SELECT CONCAT('Dan ', 'Morgan') FROM dual; |
Concatenate (overload
2) |
CONCAT(left IN CLOB, right IN CLOB) RETURN
CLOB |
set serveroutput
on
DECLARE c1 CLOB := TO_CLOB('Dan '); c2 CLOB :=
TO_CLOB('Morgan'); c3 CLOB; BEGIN SELECT CONCAT('Dan ', 'Morgan') INTO c3 FROM
dual;
dbms_output.put_line(c3); END; / |
|
CONVERT |
Converts From One Character
Set To Another |
CONVERT(<character>,<destination_character_set>, <source_character_set>) |
SELECT CONVERT('Ġʠ͠ՠؠA B C D E','US7ASCII','WE8ISO8859P1')
FROM dual; |
|
DUMP |
Returns The Number Of Bytes
And Datatype Of A Value |
DUMP(<expression>,
<return_format>, <start_position>, <length>);
8 |
Octal |
10 |
Decimal |
16 |
Hexidecimal |
17 |
Single Characters |
1008 |
octal notation with the character set
name |
1010 |
decimal notation with the character set
name |
1016 |
hexadecimal notation with the character set
name |
1017 |
single characters with the character set
name |
|
set linesize 121 col dmp
format a50
SELECT table_name, DUMP(table_name)
DMP FROM user_tables;
SELECT table_name, DUMP(table_name, 16) DMP FROM user_tables;
SELECT
table_name, DUMP(table_name, 16, 7, 4) DMP FROM
user_tables; |
|
INSTR |
See links at page
bottom |
|
INSTRB |
Location of a string, within
another string, in bytes |
INSTRB( STR1 VARCHAR2 CHARACTER SET
ANY_CS, -- test string STR2 VARCHAR2 CHARACTER SET STR1%CHARSET, --
string to locate POS PLS_INTEGER := 1, --
position NTH POSITIVE := 1) -- occurrence
number RETURN PLS_INTEGER; |
SELECT INSTRB('Dan Morgan', ' ', 1, 1) FROM dual;
|
|
INSTRC |
Location of a string, within
another string, in Unicode complete characters |
INSTRC( STR1 VARCHAR2 CHARACTER SET
ANY_CS, -- test string STR2 VARCHAR2 CHARACTER SET STR1%CHARSET, --
string to locate POS PLS_INTEGER := 1, --
position NTH POSITIVE := 1) -- occurrence
number RETURN PLS_INTEGER; |
SELECT INSTRC('Dan Morgan', ' ', 1, 1) FROM dual; |
|
INSTR2 |
Location of a string, within
another string, in UCS2 code points |
INSTR2( STR1 VARCHAR2 CHARACTER SET
ANY_CS, -- test string STR2 VARCHAR2 CHARACTER SET STR1%CHARSET, --
string to locate POS PLS_INTEGER := 1, --
position NTH POSITIVE := 1) -- occurrence
number RETURN PLS_INTEGER; |
SELECT INSTR2('Dan Morgan', ' ', 1, 1) FROM dual; |
|
INSTR4 |
Location of a string, within
another string, in UCS4 code points |
INSTR4( STR1 VARCHAR2 CHARACTER SET
ANY_CS, -- test string STR2 VARCHAR2 CHARACTER SET STR1%CHARSET, --
string to locate POS PLS_INTEGER := 1, --
position NTH POSITIVE := 1) -- occurrence
number RETURN PLS_INTEGER; |
SELECT INSTR4('Dan Morgan', ' ', 1, 1) FROM dual; |
|
LENGTH |
String Length |
LENGTH(<string_or_column>) |
SELECT LENGTH('Dan Morgan') FROM dual; |
|
LENGTHB |
Returns length in
bytes |
LENGTHB(<char_varchar2_or_clob_value>) |
SELECT table_name, LENGTHB(table_name) FROM user_tables; |
Note: Additional forms of LENGTH
(LENGTHC, LENGTH2, and LENGTH4) are also available. |
|
LPAD |
Left Pad
Overload
1 |
LPAD( str1 VARCHAR2 CHARACTER SET
ANY_CS, len PLS_INTEGER, PAD VARCHAR2 CHARACTER SET
STR1%CHARSET) RETURN VARCHAR2 CHARACTER SET
STR1%CHARSET; |
SELECT LPAD('Dan Morgan', 25, 'x') FROM dual; |
Overload 2 |
LPAD( str1 VARCHAR2 CHARACTER SET
ANY_CS, len PLS_INTEGER) RETURN VARCHAR2 CHARACTER SET
STR1%CHARSET; |
SELECT LPAD('Dan Morgan', 25) FROM dual; |
Overload 3 |
LPAD( str1 CLOB CHARACTER SET
ANY_CS, len NUMBER, PAD CLOB CHARACTER SET
STR1%CHARSET) RETURN CLOB CHARACTER SET STR1%CHARSET; |
TBD |
Overload 4 |
LPAD( str1 CLOB CHARACTER SET
ANY_CS, len INTEGER) RETURN CLOB CHARACTER SET
STR1%CHARSET; |
TBD |
|
LTRIM |
Left Trim
Overload
1 |
LTRIM( str1 VARCHAR2 CHARACTER SET ANY_CS
:= ' ', tset VARCHAR2 CHARACTER SET
STR1%CHARSET) RETURN VARCHAR2 CHARACTER SET
STR1%CHARSET; |
SELECT '->' || LTRIM(' Dan Morgan ') || '<-' FROM
dual; |
Overload 2 |
LTRIM( STR1 VARCHAR2 CHARACTER SET ANY_CS
:= ' ') RETURN VARCHAR2 CHARACTER SET STR1%CHARSET; |
SELECT '->' || LTRIM('xxx Dan Morgan ') || '<-' FROM
dual;
SELECT '->' || LTRIM('xxxDan Morgan
', 'x') || '<-' FROM dual; |
|
MAX |
The Maximum String based on
the current sort parameter |
MAX(<character_string>) |
SELECT MAX(table_name) FROM user_tables; |
|
MIN |
The Minimum String based on
the current sort parameter |
MIN(<character_string>) |
SELECT MIN(table_name) FROM user_tables |
|
NLSSORT |
Returns the string of bytes
used to sort a string.
The string returned is of RAW data
type |
NLSSORT(<column_name>, 'NLS_SORT =
<NLS Parameter>); |
CREATE TABLE test (name
VARCHAR2(15)); INSERT INTO test VALUES ('Gaardiner'); INSERT INTO test
VALUES ('Gaberd'); INSERT INTO test VALUES ('G⢥rd'); COMMIT;
SELECT
* FROM test ORDER BY name;
SELECT * FROM test ORDER BY NLSSORT(name, 'NLS_SORT = XDanish');
SELECT * FROM
test ORDER BY NLSSORT(name, 'NLS_SORT =
BINARY_CI'); |
|
Quote
Delimiters |
q used to define a quote
delimiter for PL/SQL |
q'<delimiter><string><delimiter>'; |
set serveroutput
on
DECLARE s1 VARCHAR2(20); s2 VARCHAR2(20); s3
VARCHAR2(20); BEGIN s1 := q'[Isn't
this cool]'; s2 := q'"Isn't this cool"'; s3 := q'|Isn't this cool|';
dbms_output.put_line(s1);
dbms_output.put_line(s2);
dbms_output.put_line(s3); END; / |
|
REPLACE |
See links at page bottom |
|
REVERSE |
Reverse |
REVERSE(<string_or_column>) |
SELECT REVERSE('Dan Morgan') FROM dual;
SELECT DUMP('Dan
Morgan') FROM dual; SELECT DUMP(REVERSE('Dan
Morgan')) FROM dual; |
|
RPAD |
Right Pad
Overload
1 |
RPAD(str1 VARCHAR2 CHARACTER SET ANY_CS, len
PLS_INTEGER, pad VARCHAR2 CHARACTER SET
STR1%CHARSET) RETURN VARCHAR2 CHARACTER SET
STR1%CHARSET; |
SELECT RPAD('Dan Morgan', 25, 'x') FROM dual; |
Overload 2 |
RPAD(str1 VARCHAR2 CHARACTER SET ANY_CS, len
PLS_INTEGER) RETURN VARCHAR2 CHARACTER SET STR1%CHARSET; |
SELECT RPAD('Dan Morgan', 25) ||'<-' FROM
dual; |
|
RTRIM |
Right Trim
Overload
1 |
RTRIM( str1 VARCHAR2 CHARACTER SET ANY_CS
:= ' ', tset VARCHAR2 CHARACTER SET
STR1%CHARSET) RETURN VARCHAR2 CHARACTER SET
STR1%CHARSET; |
SELECT '->' || RTRIM(' Dan Morganxxx') || '<-' FROM dual; SELECT
'->' || RTRIM(' Dan Morganxxx', 'xxx') ||
'<-' FROM dual; |
Overload 2 |
RTRIM( str1 VARCHAR2 CHARACTER SET ANY_CS
:= ' ') RETURN VARCHAR2 CHARACTER SET STR1%CHARSET; |
SELECT '->' || RTRIM(' Dan Morgan ') || '<-' FROM
dual; |
|
SOUNDEX |
Returns
Character String Containing The Phonetic Representation Of Another
String |
Rules:
- Retain the first letter of the string and remove all
other occurrences of the following letters: a, e, h, i, o, u, w, y
- Assign numbers to the remaining letters (after the first)
as
follows: b, f, p, v = 1 c, g, j, k, q, s, x, z = 2 d, t = 3 l
= 4 m, n = 5 r = 6
- If two or more letters with the same number were adjacent
in the original name (before step 1), or adjacent except for any intervening h
and w, then omit all but the first.
- Return the first four bytes padded with 0.
SOUNDEX(ch VARCHAR2 CHARACTER SET ANY_CS) RETURN
VARCHAR2 CHARACTER SET ch%CHARSET; |
CREATE TABLE test
( namecol VARCHAR2(15));
INSERT INTO test (namecol) VALUES
('Smith'); INSERT INTO test (namecol) VALUES ('Smyth'); INSERT INTO test
(namecol) VALUES ('Smythe'); INSERT INTO test (namecol) VALUES
('Smither'); INSERT INTO test (namecol) VALUES ('Smidt'); INSERT INTO test
(namecol) VALUES ('Smick'); INSERT INTO test (namecol) VALUES
('Smiff'); COMMIT;
SELECT name, SOUNDEX(namecol) FROM test; --
Thanks Frank van Bortel for the idea for the above
SELECT
* FROM test WHERE SOUNDEX(namecol) =
SOUNDEX('SMITH'); |
|
SUBSTR |
See links at page bottom |
|
SUBSTRB |
Returns a substring counting
bytes rather than characters |
SUBSTRB( STR1 VARCHAR2 CHARACTER SET
ANY_CS, POS PLS_INTEGER, -- starting position LEN
PLS_INTEGER := 2147483647) -- number of characters RETURN VARCHAR2 CHARACTER
SET STR1%CHARSET; |
See Demos on the Substring
Page |
|
SUBSTRC |
Returns a substring within
another string, using Unicode code points |
SUBSTRC( STR1 VARCHAR2 CHARACTER SET
ANY_CS, POS PLS_INTEGER, -- starting position LEN
PLS_INTEGER := 2147483647) -- number of characters RETURN VARCHAR2 CHARACTER
SET STR1%CHARSET; |
See Demos on the Substring
Page |
|
SUBSTR2 |
Returns a substring within
another string, using UCS2 code points |
SUBSTR2( STR1 VARCHAR2 CHARACTER SET
ANY_CS, POS PLS_INTEGER, -- starting position LEN
PLS_INTEGER := 2147483647) -- number of characters RETURN VARCHAR2 CHARACTER
SET STR1%CHARSET; |
See Demos on the Substring
Page |
|
SUBSTR4 |
Returns a substring within
another string, using UCS4 code points |
SUBSTR4( STR1 VARCHAR2 CHARACTER SET
ANY_CS, POS PLS_INTEGER, -- starting position LEN
PLS_INTEGER := 2147483647) -- number of characters RETURN VARCHAR2 CHARACTER
SET STR1%CHARSET; |
See Demos on the Substring
Page |
|
TRANSLATE |
See links at page bottom |
|
TREAT |
Changes The Declared Type Of
An Expression |
TREAT (<expression> AS REF
schema.type)) |
SELECT name, TREAT(VALUE(p)
AS employee_t).salary SALARY FROM persons p; |
|
TRIM
(variations are LTRIM and RTRIM) |
Trim Spaces |
TRIM(<string_or_column>) |
SELECT ' Dan Morgan '
FROM dual;
SELECT TRIM(' Dan Morgan ')
FROM dual; |
Trim Other
Characters |
TRIM(<character_to_trim> FROM
<string_or_column>) |
SELECT TRIM('D' FROM 'Dan Morgan') FROM dual; |
Trim By CHR value |
TRIM(<string_or_column>) |
SELECT ASCII(SUBSTR('Dan
Morgan',1,1)) FROM dual;
SELECT TRIM(CHR(68) FROM 'Dan Morgan') FROM dual; |
|
Vertical
Bars |
Also known as
Pipes |
<first_string>
|| <second_string> |
SELECT 'Dan' || ' ' || 'Morgan'
FROM dual;
with alias
SELECT 'Dan' || ' ' || 'Morgan'
NAME FROM dual; or SELECT 'Dan' || ' '
|| 'Morgan' AS NAME FROM
dual; |
|
VSIZE |
Byte Size |
VSIZE(e IN VARCHAR2) RETURN
NUMBER |
SELECT VSIZE('Dan Morgan') FROM
dual; |
No comments:
Post a Comment