[Oracle] 아스키코드를 문자로 변환 방법 (CHR, ASCII)
- 데이터베이스/오라클
- 2024. 2. 18.
오라클 SQL에서 아스키코드(ASCII)를 문자로 변환하기 위해서는 CHR 함수를 사용한다. 반대로 문자를 아스키코드로 변환하기 위해서는 ASCII 함수를 사용하면 된다. CHR 함수는 10진수의 아스키코드를 문자로 변환하며, 주로 특수문자를 문자열에 추가할 때 사용한다. 따옴표 아스키코드 39, 큰따옴표 아스키코드 34, TAB 아스키코드 9 등 사용할 수 있다.
목차 |
CHR 함수 사용법 (아스키코드 → 문자)
SELECT CHR(65) --대문자 A
, CHR(97) --소문자 a
, CHR(39) --따옴표 '
, CHR(34) --쌍따옴표 "
, CHR(9) --TAB 문자
, CHR(13) || CHR(10) --엔터키 문자 CR+LF
FROM dual
CHR(아스키코드)으로 아스키코드를 문자로 변환할 수 있다.
SELECT 'Oracle' || CHR(39) || 'SQL' || CHR(39) AS quotes
, 'Oracle' || CHR(34) || 'SQL' || CHR(34) AS double_quotes
, 'Oracle' || CHR(9) || 'SQL' AS tab
, 'Oracle' || CHR(13) || CHR(10) || 'SQL' AS enter
FROM dual
문자열에 CHR 함수를 사용하여 특수문자를 추가하는 예제이다.
따옴표, 쌍따옴표 사용 팁
SELECT 'Oracle''SQL''' AS quotes
, 'Oracle"SQL"' AS double_quotes
FROM dual
따옴표와 쌍따옴표는 CHR 함수를 사용하지 않아도 문자열에 포함할 수 있다. 따옴표는 문자열 내부에서 따옴표를 두 번('') 사용하면 되며, 따옴표는 문자열에서 일반 문자와 동일하게 사용하면 된다.
ASCII 함수 사용법 (문자 → 아스키코드)
SELECT ASCII('A') AS "대문자A"
, ASCII('a') AS "소문자a"
, ASCII('''') AS "따옴표"
, ASCII('"') AS "쌍따옴표"
FROM dual
ASCII(문자)를 사용하여 문자를 아스키코드로 변환할 수 있다.
아스키코드표 (ASCII Table)
10진수 | 문자 | 10진수 | 문자 |
0 | NUL, NULL(Ctrl + @) | 64 | @ |
1 | SOH, Start of Header(Ctrl + A) | 65 | A |
2 | STX, Start of Text(Ctrl + B) | 66 | B |
3 | ETX, End of Text(Ctrl + C) | 67 | C |
4 | EOT, End of Transmission(Ctrl + D) | 68 | D |
5 | ENQ, Enquiry(Ctrl + E) | 69 | E |
6 | ACK, Acknowledgment(Ctrl + F) | 70 | F |
7 | BEL, Bell(Ctrl + G) | 71 | G |
8 | BS, Backspace(Ctrl + H) | 72 | H |
9 | HT, Horizontal Tab(Ctrl + I) | 73 | I |
10 | LF, Line feed(Ctrl + J) | 74 | J |
11 | VT, Vertical Tab(Ctrl + K) | 75 | K |
12 | FF, Form feed(Ctrl + L) | 76 | L |
13 | CR, Carriage return(Ctrl + M) | 77 | M |
14 | SO, Shift Out(Ctrl + N) | 78 | N |
15 | SI, Shift In(Ctrl + O) | 79 | O |
16 | DLE, Data Link Escape(Ctrl + P) | 80 | P |
17 | DC1, Device Control 1(Ctrl + Q) | 81 | Q |
18 | DC2, Device Control 2(Ctrl + R) | 82 | R |
19 | DC3, Device Control 3(Ctrl + S) | 83 | S |
20 | DC4, Device Control 4(Ctrl + T) | 84 | T |
21 | NAK, Negative Ack.(Ctrl + U) | 85 | U |
22 | SYN, Synchronous idle(Ctrl + V) | 86 | V |
23 | ETB, End of Trnas, Block(Ctrl + W) | 87 | W |
24 | CAN, Cancel(Ctrl + X) | 88 | X |
25 | EM, End of Medium(Ctrl + Y) | 89 | Y |
26 | SUB, Substitute(Ctrl + Z) | 90 | Z |
27 | ESC, Escape(Ctrl + [) | 91 | [ |
28 | FS, File Separator(Ctrl + \) | 92 | \ |
29 | GS, Group Separator(Ctrl + ]) | 93 | ] |
30 | RS, Record Separator(Ctrl + ^) | 94 | ^ |
31 | US, Unit Separator(Ctrl + _) | 95 | _ |
32 | SP, Space | 96 | ' |
33 | ! | 97 | a |
34 | " | 98 | b |
35 | # | 99 | c |
36 | $ | 100 | d |
37 | % | 101 | e |
38 | & | 102 | f |
39 | ' | 103 | g |
40 | ( | 104 | h |
41 | ) | 105 | i |
42 | * | 106 | j |
43 | + | 107 | k |
44 | , | 108 | l |
45 | - | 109 | m |
46 | . | 110 | n |
47 | / | 111 | o |
48 | 0 | 112 | p |
49 | 1 | 113 | q |
50 | 2 | 114 | r |
51 | 3 | 115 | s |
52 | 4 | 116 | t |
53 | 5 | 117 | u |
54 | 6 | 118 | v |
55 | 7 | 119 | w |
56 | 8 | 120 | x |
57 | 9 | 121 | y |
58 | : | 122 | z |
59 | ; | 123 | { |
60 | < | 124 | | |
61 | = | 125 | } |
62 | > | 126 | ~ |
63 | ? | 127 | DEL, Del |