How to create and populate a custom ASCII lookup table with character codes (0–127) and their corresponding descriptions/names.

Here is a complete SQL script to create and populate a custom ASCII lookup table with character codes (0–127) and their corresponding descriptions/names.


✅ Step 1: Create the table

CREATE TABLE ascii_lookup (
    ascii_code NUMBER PRIMARY KEY,
    character  CHAR(1),
    name       VARCHAR2(50)
);

✅ Step 2: Insert values for ASCII 0–127

INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (0, CHR(0), 'NULL');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (1, CHR(1), 'START OF HEADING');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (2, CHR(2), 'START OF TEXT');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (3, CHR(3), 'END OF TEXT');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (4, CHR(4), 'END OF TRANSMISSION');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (5, CHR(5), 'ENQUIRY');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (6, CHR(6), 'ACKNOWLEDGE');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (7, CHR(7), 'BELL');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (8, CHR(8), 'BACKSPACE');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (9, CHR(9), 'HORIZONTAL TAB');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (10, CHR(10), 'LINE FEED');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (11, CHR(11), 'VERTICAL TAB');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (12, CHR(12), 'FORM FEED');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (13, CHR(13), 'CARRIAGE RETURN');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (14, CHR(14), 'SHIFT OUT');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (15, CHR(15), 'SHIFT IN');

INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (16, CHR(16), 'DATA LINK ESCAPE');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (17, CHR(17), 'DEVICE CONTROL 1 (XON)');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (18, CHR(18), 'DEVICE CONTROL 2');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (19, CHR(19), 'DEVICE CONTROL 3 (XOFF)');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (20, CHR(20), 'DEVICE CONTROL 4');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (21, CHR(21), 'NEGATIVE ACKNOWLEDGE');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (22, CHR(22), 'SYNCHRONOUS IDLE');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (23, CHR(23), 'END OF TRANSMISSION BLOCK');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (24, CHR(24), 'CANCEL');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (25, CHR(25), 'END OF MEDIUM');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (26, CHR(26), 'SUBSTITUTE');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (27, CHR(27), 'ESCAPE');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (28, CHR(28), 'FILE SEPARATOR');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (29, CHR(29), 'GROUP SEPARATOR');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (30, CHR(30), 'RECORD SEPARATOR');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (31, CHR(31), 'UNIT SEPARATOR');
INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (32, CHR(32), 'SPACE');
-- Printable characters  33 to 126

DECLARE
  i NUMBER;
BEGIN
  FOR i IN 33..126 LOOP
    INSERT INTO ascii_lookup (ascii_code, character, name)
    VALUES (i, CHR(i), 'Printable character');
  END LOOP;
END;
/

INSERT INTO ascii_lookup (ascii_code, character, name) VALUES (127, CHR(127), 'DELETE');

✅ Step 3: Commit the changes

COMMIT;

✅ Step 4: Query Examples

Find name of ASCII character for code 10:

SELECT * FROM ascii_lookup WHERE ascii_code = 10;

Find ASCII code for a character:

SELECT * FROM ascii_lookup WHERE character = 'A';


Post a Comment

And that's all there is to it!

If anyone has any other questions or requests for future How To posts, you can either ask them in the comments or email me. Please don't feel shy at all!

I'm certainly not an expert, but I'll try my hardest to explain what I do know and research what I don't know.

Previous Post Next Post