ORA-04021, Logon Trigger, and DBMS_LOCK.SLEEP collide

Today I was messing around with a test database.  I was playing with logon triggers to see what I could record about the session and who would be affected.  My first logon trigger looked like this:

CREATE OR REPLACE TRIGGER afterlogon
AFTER LOGON on DATABASE
BEGIN
RAISE_APPLICATION_ERROR (-20999, '[14000][51202][1][51200][][]');
END;
/

Which worked well.  If I logged I was thrown the following error and logged off

ERROR:
ORA-00604: error occurred at recursive SQL level 1
ORA-20999: [14000][51202][1][51200][][]
ORA-06512: at line 2

Well now I am locked out of my database right?  Nope the error did not occur when I logged in with a user that has the DBA role.  So my user as well as SYS and SYSTEM worked fine.  Now I wanted to create a delay when logging in so this was my next logon trigger:

CREATE OR REPLACE TRIGGER afterlogon
AFTER LOGON on DATABASE
BEGIN
DBMS_LOCK.SLEEP(300);
END;
/

Again worked just like it says.  Once I logged in I was “stuck” for 5 minutes (actually sleeping).  Now the difference here is even SYS and SYSTEM (both as SYSDBA) also waited the five minutes.  This is not a good thing.  Imagine if someone created a logon trigger with a sleep of 100 million seconds?

Next I wanted to see how this trigger affected other sessions, specifically from an ETL tool.  So I used the following SQL in one session while I kicked off an ETL job.

CREATE OR REPLACE TRIGGER afterlogon
AFTER LOGON on DATABASE
BEGIN
DBMS_LOCK.SLEEP(300);
END;
/
begin
DBMS_LOCK.SLEEP(30);
end;
/
drop trigger afterlogon;

I got back a “Trigger created.” then a “PL/SQL procedure successfully completed.”, then nothing . . . .  The trigger did get deleted, I just waited.  I control C’d and tried the delete again and after awhile I got the “ORA-04021: timeout occurred while waiting to lock object” error.  So who was locking my trigger?

The first thing I did was went looking for who was accessing my trigger with this SQL:

select object_name, object_id, data_object_id from dba_objects where object_name = 'AFTERLOGON';

No rows returned.  Okay maybe I will check by object ID.

select object_name, object_id, data_object_id from dba_objects where object_name = 'AFTERLOGON';
select * from V$LOCKED_OBJECT where object_id = 103433;

Still nothing.  So how about checking out v$session and v$sqlarea for anything interesting

select sesion.sid,
sesion.username,
optimizer_mode,
hash_value,
address,
cpu_time,
elapsed_time,
sql_text
from v$sqlarea sqlarea, v$session sesion
where sesion.sql_hash_value = sqlarea.hash_value
and sesion.sql_address = sqlarea.address
and sesion.username is not null;

There we go, a session executing a DBMS_LOCK.SLEEP(300); and not actually doing anything.  This hung session was locking DBMS_LOCK.SLEEP and preventing my trigger from being deleted.  So next I needed to stop new sessions from connecting, kill existing sessions, drop trigger, then allow new sessions again.  The following took care of that nicely.

ALTER SYSTEM ENABLE RESTRICTED SESSION;
select 'ALTER SYSTEM KILL SESSION '''||SID||','||SERIAL#||''' IMMEDIATE;' 
from v$session where TYPE <> 'BACKGROUND' and SID in (
select sesion.sid from v$sqlarea sqlarea, v$session sesion
where sesion.sql_hash_value = sqlarea.hash_value
and sesion.sql_address = sqlarea.address
and sesion.username is not null
and SQL_TEXT like '%DBMS_LOCK.SLEEP%');

— Kill the sessions with the outputted rows —

drop trigger afterlogon;
ALTER SYSTEM DISABLE RESTRICTED SESSION;

 

 

Logging Talend jobs to a database

I have recently started to use Talend for some ETL projects.  One of my tasks was to set up a way to log the activity of all of the ETL jobs in database tables.  This way we had a historical record of the jobs as well as a central location to see what was running.  Fortunately Talend has this feature built-in, but it does require some setup. Open Talend and create a new job.

  • Drop the tLogCatcher, tStatCatcher, tMeterCatcher components on the design area:

Talend_logging_1

  • Click on tLogCatcher. In the component settings click on Edit Schema. In the schema dialog click on the save button. Give the schema a name. Do the same for tStatChatcher and tMeterCatcher. The schemas will then show up in the repository under Generic schemas:

Talend_logging_2

 

  • As we don’t need these components any more, deactivate all of them by right clicking on them and choosing deactivate.
  • Create a new connection to your database of choice in the repository. This will be the database where all the logging data will be stored.
  • Next we will create the logging tables: Add three tCreateTable to the design area and link each of them with an onSubjobOk row:

Talend_loggin_3

  •  In the component settings, assign for each of them the repository database connection.
  • In the component settings, assign one of the generic repository schemas to one of the three components and assign a table name:

Talend_logging_4

 

  • Run the job. All the three logging tables should now exist in your database.
  • Let’s add these tables to the repository database connection we defined early: Right click on the connection and choose Retrieve schema. Choose the three logging tables and click Ok.
  • Now we can assign these repository schemas/table definitions to the project settings. In the main menu click on File > Edit project properties. Click on Stats & Logs and then tick On Databases. Assign the repository database connection and assign the respective repository schemata to the log tables. Finally tick Catch components statistics.

Talend_logging_5

 

Now logging is set up for your project.  In the future you can run some simple SQL statements to retrieve some info about the performance of your ETL jobs.

Oracle 12c now supports longer VARCHAR2 datatypes

Now in Oracle 12c we can use longer VARCHAR2 datatypes.  Instead of being limited to 4,000 characters we can now use 32,767 characters.  This is nice because now we can store more data in a single fiedl without having to deal with CLOBs.  By default you cannot use this new functionality but you can enable it using the following command.

alter system set max_string_size=EXTENDED scope=spfile;

You must also do an upgrade and run a script that will recreate some of the views.  If you don’t you will get an error “ORA-00910: specified length too long for its datatype”. Here are the full procedures.

To increase the maximum size of VARCHAR2, NVARCHAR2, and RAW columns

Shut down the database.

shutdown immediate;

Restart the database in UPGRADE mode.

startup upgrade

Change the setting of MAX_STRING_SIZE to EXTENDED.

alter system set max_string_size=EXTENDED scope=spfile;

Run the rdbms/admin/utl32k.sql script. You must be connected AS SYSDBA to run the script.

@rdbms/admin/utl32k.sql

Restart the database in NORMAL mode.

shutdown immediate;
startup

 

Enterprise Manager Requires Enterprise Edition Database

I am now as a shop who has Standard Edition of Oracle only.  While I am going to miss Enterprise Edition, I can get Standard Edition working for their needs.  One thing I want to get up and running is Oracle Enterprise Manager (OEM).  There are now two versions of OEM.  OEM Express 12c and OEM Cloud Control 12c.  OEM Express is a very basic lightweight tool that is installed with any Oracle database.   OEM Cloud Control is a much more robust central administration tool used to managed many Oracle databases.

One issue I ran into is Oracle Enterprise Manager Cloud Control 12c requires Oracle Enterprise Edition as it’s repository.  Good this Oracle is giving away Enterprise Edition for free.  Well they are for at least as a repository for OEM Cloud Control.  From Oracle’s license documentation:

“Enterprise Manager includes a restricted-use license of the Oracle Database for use only with the Oracle Management Repository or other complementary repositories included with Enterprise Manager (such as, Ops Center, Real User Experience Insight, Load Testing, and Test Manager).

Additional database options or additional servers for disaster recovery require separate licensing. Customers receive one single-instance database with the Cloud Control, or RMAN, repository. To protect the repository with Data Guard, customers need to purchase a license for the standby site. To protect the repository with Oracle Real Application Clusters, customers must license the second node for the database, and both nodes require an Oracle Real Application Clusters license.

Use of Oracle WebLogic Server with Oracle Enterprise Manager is restricted to the servlet functionality without clustering for the Oracle Management Service (OMS).

Use of Oracle Virtual Assembly Builder is licensed, as long as a the assemblies are deployed through Enterprise Manager.

Oracle Enterprise Manager includes restricted use of Oracle Business Intelligence Publisher and Business Intelligence Mobile for use with Enterprise Manager functions and interfaces only. This restricted BI Publisher license will allow reporting only against the Enterprise Manager repository and against data dictionary (including AWR data) of target databases. In order to report against other data sources, it is necessary to have BI Publisher license.”

No need to waste a license and no need to go out and buy Oracle Enterprise Edition.  Now I just need to get them to buy Database Diagnostics Pack and Database Tuning Pack

Oracle for the PostgreSQL & MySQL users

In my new role I will be converting several PostgreSQL and MySQL databases over to Oracle. Below are some of the notes I have taken so far that are designed to help developers as well as other DBA. The purpose of the document is to describe areas of Oracle that may be new or different for people familiar with PostgresSQL or MySQL.


Oracle Databases

An Oracle database is made up of physical structures like data files, control files, and redo logs.  Logical structures include client processes, background processes, and server processes.   Below is a visual representation of an Oracle database.
Visual-Oracle-Database
Terminology
 
Oracle MySQL
Database (files) Database Server Instance
Instance (processes & memory) Database Server Instance
Schema (also a user) Database
User User
Tablespace Tablespace + storage engine

Objects 

Oracle is more restrictive in it’s object names than other databases.  The max length is 30 characters. Table and column names must start with a letter and can be followed by letters, numbers, or underscores.  Oracle object names are case sensitive and are stored in uppercase.  Oracle will store the case used in doubel quoted object names, but this should be avoided.

Ports

The default connection port for Oracle is 1521

The Dual Table

Oracle has a “dummy” table called dual.  This table has one column and one row. This table is often used in queries that do not need to actually extract data from a table. For example “select ‘Hello World’ from dual;” would echo “Hellow World”

Dealing with system date and time

Oracle uses sysdate for the current date and time.  This is based on the database server’s date and time.  Manipulating this date is based on whole days. For example sysdate-1 is yesterday. You can also use fractional days. For example sysdate-1/24 is one hour ago.  trunc(sysdate) would produce today at midnight. Combining this logic with the dual table will allow you to select a specific date based on the system date. For example: “select trunc(sysdate)-1/24 from dual;” would result in a date/time of yesterday at 11pm

Recursive Queries

Oracle supports recursive queries through it’s “CONNECT BY” statement.  For example this SQL will results in 14 rows, one for each of the last 14 days. “SELECT trunc(sysdate)-level FROM DUAL CONNECT BY LEVEL <= 14;”.  This also allows you to query parent child relationships in a single table.

NVL

Oracle has a function called NVL which means if NULL then return the next value.  This is similar to IFNULL and COALESCE in other databases.  Oracle also supports COALESCE.  NVL is designed for two values only.

Joins

Oracle now supports joins similar to other databases.   However Oracle also supports outer joins with a (+). For example:

select a.field1, b.field2 from a, b where a.item_id = b.item_id(+)

is the same as

select a.field1, b.field2 from a left outer join b on a.item_id = b.item_id;

Sequences

The syntax for calling a sequence is a bit different that other databases.  “select sequence_name.nextval from dual;” would return the next value from the sequence.

Auto Increment

Oracle does not have an auto increment feature directly.  Auto incrementing a column value is done with a sequence and a trigger.  As of 12c you can specify a default value that uses a sequence.  When you create the table assign default value of sequence_name.nextval.

Like comparison

Like on Oracle is case sensitive.

Space & other special characters not allowed.

Space and other special character are not allowed in object names.  While you can get them to create/compile using double quotes this should never be done on an Oracle database.

Limit & Offset vs Rownum & Fetch First

Oracle has a pseudocolumn called rownum.  Rownum is only applied after the query is executed and the data is being returned to the client.  For example:

select * from t where ROWNUM > 1;

will never return any rows because rownum 1 was never sent to the client so there is no way to get a rownum that is greater than 1.

select * from t where ROWNUM < 2;

will always return 1 row, because the the first row returned is rownum 1.  Then the second row returned is rownum 2, but fails the predicate phase of the query because 2 is not less than 2.

Starting with Oracle 12c you can use the fetch and offset commands.  For example to return the first 5 rows from table t use the following SQL:

SELECT col1 FROM t ORDER BY col1 FETCH FIRST 5 ROWS ONLY;

To page through data (pagination) combine OFFSET with FETCH

SELECT col1 FROM  t ORDER BY col1 OFFSET 4 ROWS FETCH NEXT 4 ROWS ONLY;

This will skip the first 4 rows and then return the following 4 rows.

Reserved Words

Oracle has many reserved words.  These should be avoided when creating object names if possible.  To see all of the Oracle reserved words query the V$RESERVED_WORDS view.  Keep in mind some words are reserved for some uses but not others.

Hints

Oracle can make use of hints in SQL statements.  These may force an execution path or suggest a different path that Oracle may select on its own.  Hints should be used sparingly and only when necessary.

Temporary Tables

Oracle and MySQL handles temporary tables differently. In MySQL, temporary tables are visible only to the current user session, and as soon as the session ends, these tables are dropped automatically.  In Oracle however, these tables should be dropped explicitly and are visible to all sessions; it is only the data inside which would be visibly only to the current user session.

Transactions

By default SQL statements are executed in a transaction and must be explicitly committed.

Software & Tools

SQL Developer is a popular software package owned by Oracle.  SQL Developer will connect to Oracle by default and can be setup to connect to MySQL databases.

Data Dictionary

Oracle have many views placed on its data dictionary.  Many of these views are prefixed by DBA_, ALL_, or USER_.  For example ALL_TABLES is a view that will display information about all non-system tables that you have permissions for.  USER_TABLES will only display information about tables in your schema. DBA_TABLES will display information about all tables in the database including system tables.  Below are some common views.

  • ALL_CONSTRAINTS – describes constraint definitions on tables accessible to the current user.
  • ALL_DEPENDENCIES – describes dependencies between procedures, packages, functions, package bodies, and triggers accessible to the user, including dependencies on views created without any database links.
  • ALL_ERRORS – describes current errors on all stored objects (views, procedures, functions, packages, and package bodies) accessible to the current user.
  • ALL_INDEXES – describes indexes on all tables accessible to the user.
  • ALL_IND_COLUMNS – describes the columns of indexes on all tables accessible to the current user.
  • ALL_MVIEWS – describes all materialized views accessible to the current user.
  • ALL_OBJECTS – describes all objects accessible to the user.
  • ALL_SEQUENCES – describes all sequences accessible to the user.
  • ALL_SOURCE – describes the text source of all stored objects accessible to the user.
  • ALL_SYNONYMS – describes all synonyms accessible to the user.
  • ALL_TABLES – describes all relational tables accessible to the user.
  • ALL_TAB_COLUMNS – describes the columns of all tables, views, and clusters accessible to the user.
  • ALL_TRIGGERS – describes owned by the current user and triggers on tables owned by the current user. If the user has the CREATE ANY TRIGGER privilege, then this view describes all triggers in the database
  • ALL_VIEWS – describes all views accessible to the current user.

If administrating an Oracle database there over 300 views that can be used.  Static views include the ALL_, USER_, and DBA_ mentioned above.  There are also dynamic views that start with V$, global dynamic views that start with GV$, and undocumented views that start with X$.

select table_name from dictionary;

Static views contain data about objects, privileges, users, etc and may change after a DDL operation.  Dynamic view continually update while the database is running.  Global dynamic views are similar to dynamic views, however they contain data for multiple nodes in a RAC environment. Undocumented views are used by Oracle support.

Common DBA views

In addition to the DBA_ version of the views mentioned above here are additional common views used by DBAs.

  • DBA_TABLESPACES
  • DBA_DATA_FILES
  • DBA_SEGMENTS
  • DBA_EXTENTS
  • DBA_FREE_SPACE
  • DBA_SYS_PRIVS
  • DBA_TAB_PRIVS
  • DBA_USERS
  • v$PARAMETER
  • v$DATABASE
  • v$INSTANCE
  • v$SESSION
  • v$LOCK
  • v$TRANSACTION
  • v$LOGFILE
  • v$LOG
  • v$ARCHIVED_LOG
  • V$CONTROLFILE

MySQL Datatype Conversions

MySQL Data Type
Oracle Data Type
BIGINT
NUMBER(19, 0)
BIT
RAW
BLOB
BLOB, RAW
CHAR
CHAR
DATE
DATE, TIMESTAMP
DATETIME
DATE, TIMESTAMP
DECIMAL
FLOAT (24)
DOUBLE
FLOAT (24)
DOUBLE PRECISION
FLOAT (24)
ENUM
VARCHAR2
FLOAT
FLOAT
INT
NUMBER(10, 0)
INTEGER
NUMBER(10, 0)
LONGBLOB
BLOB, RAW
LONGTEXT
CLOB, RAW
MEDIUMBLOB
BLOB, RAW
MEDIUMINT
NUMBER(7, 0)
MEDIUMTEXT
CLOB, RAW
NUMERIC
NUMBER
REAL
FLOAT (24)
SET
VARCHAR2
SMALLINT
NUMBER(5, 0)
TEXT
VARCHAR2, CLOB
TIME
DATE
TIMESTAMP
DATE, TIMESTAMP
TINYBLOB
RAW
TINYINT
NUMBER(3, 0)
TINYTEXT
VARCHAR2
VARCHAR
VARCHAR2, CLOB
YEAR
NUMBER

Create an ASCII reference table

I had a need to reference ACSII values in a table.  This way I can select the printable ASCII symbol when all I have is the hex value for example.  This table will be used as a reference table during some data clean up projects.  Here is the create table code;

create table ascii_code 
(DEC NUMBER
,OCT NUMBER
,HEX VARCHAR2(2)
,BIN VARCHAR2(8)
,SYMBOL VARCHAR2(3)
,HTML_NUMBER VARCHAR2(10)
,HTML_NAME VARCHAR2(64)
,CODE_DESC VARCHAR2(64)
,ASCII_TYPE VARCHAR2(10));

If executing in SQLPlus make sure you will not be prompted when insert the & symbol

SET DEF OFF

Now for the actual insert statements

insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (0,0,'0','0','NUL','&#000;','','Null char','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (1,1,'1','1','SOH','&#001;','','Start of Heading','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (2,2,'2','10','STX','&#002;','','Start of Text','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (3,3,'3','11','ETX','&#003;','','End of Text','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (4,4,'4','100','EOT','&#004;','','End of Transmission','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (5,5,'5','101','ENQ','&#005;','','Enquiry','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (6,6,'6','110','ACK','&#006;','','Acknowledgment','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (7,7,'7','111','BEL','&#007;','','Bell','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (8,10,'8','1000','BS','&#008;','','Back Space','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (9,11,'9','1001','HT','&#009;','','Horizontal Tab','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (10,12,'0A','1010','LF','&#010;','','Line Feed','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (11,13,'0B','1011','VT','&#011;','','Vertical Tab','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (12,14,'0C','1100','FF','&#012;','','Form Feed','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (13,15,'0D','1101','CR','&#013;','','Carriage Return','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (14,16,'0E','1110','SO','&#014;','','Shift Out / X-On','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (15,17,'0F','1111','SI','&#015;','','Shift In / X-Off','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (16,20,'10','10000','DLE','&#016;','','Data Line Escape','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (17,21,'11','10001','DC1','&#017;','','Device Control 1 (oft. XON)','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (18,22,'12','10010','DC2','&#018;','','Device Control 2','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (19,23,'13','10011','DC3','&#019;','','Device Control 3 (oft. XOFF)','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (20,24,'14','10100','DC4','&#020;','','Device Control 4','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (21,25,'15','10101','NAK','&#021;','','Negative Acknowledgement','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (22,26,'16','10110','SYN','&#022;','','Synchronous Idle','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (23,27,'17','10111','ETB','&#023;','','End of Transmit Block','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (24,30,'18','11000','CAN','&#024;','','Cancel','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (25,31,'19','11001','EM','&#025;','','End of Medium','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (26,32,'1A','11010','SUB','&#026;','','Substitute','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (27,33,'1B','11011','ESC','&#027;','','Escape','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (28,34,'1C','11100','FS','&#028;','','File Separator','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (29,35,'1D','11101','GS','&#029;','','Group Separator','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (30,36,'1E','11110','RS','&#030;','','Record Separator','control');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (31,37,'1F','11111','US','&#031;','','Unit Separator','control');
-- Printable Characters
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 32,40,'20','100000','','&#32;','','Space','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 33,41,'21','100001','!','&#33;','','Exclamation mark','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 34,42,'22','100010','"','&#34;','&quot;','Double quotes (or speech marks)','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 35,43,'23','100011','#','&#35;','','Number','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 36,44,'24','100100','$','&#36;','','Dollar','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 37,45,'25','100101','%','&#37;','','Procenttecken','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 38,46,'26','100110','&','&#38;','&amp;','Ampersand','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 39,47,'27','100111','''','&#39;','','Single quote','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 40,50,'28','101000','(','&#40;','','Open parenthesis (or open bracket)','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 41,51,'29','101001',')','&#41;','','Close parenthesis (or close bracket)','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 42,52,'2A','101010','*','&#42;','','Asterisk','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 43,53,'2B','101011','+','&#43;','','Plus','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 44,54,'2C','101100',',','&#44;','','Comma','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 45,55,'2D','101101','-','&#45;','','Hyphen','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 46,56,'2E','101110','.','&#46;','','Period, dot or full stop','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 47,57,'2F','101111','/','&#47;','','Slash or divide','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 48,60,'30','110000','0','&#48;','','Zero','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 49,61,'31','110001','1','&#49;','','One','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 50,62,'32','110010','2','&#50;','','Two','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 51,63,'33','110011','3','&#51;','','Three','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 52,64,'34','110100','4','&#52;','','Four','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 53,65,'35','110101','5','&#53;','','Five','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 54,66,'36','110110','6','&#54;','','Six','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 55,67,'37','110111','7','&#55;','','Seven','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 56,70,'38','111000','8','&#56;','','Eight','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 57,71,'39','111001','9','&#57;','','Nine','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 58,72,'3A','111010',':','&#58;','','Colon','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 59,73,'3B','111011',';','&#59;','','Semicolon','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 60,74,'3C','111100','<','&#60;','&lt;','Less than (or open angled bracket)','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 61,75,'3D','111101','=','&#61;','','Equals','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 62,76,'3E','111110','>','&#62;','&gt;','Greater than (or close angled bracket)','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 63,77,'3F','111111','?','&#63;','','Question mark','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 64,100,'40','1000000','@','&#64;','','At symbol','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 65,101,'41','1000001','A','&#65;','','Uppercase A','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 66,102,'42','1000010','B','&#66;','','Uppercase B','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 67,103,'43','1000011','C','&#67;','','Uppercase C','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 68,104,'44','1000100','D','&#68;','','Uppercase D','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 69,105,'45','1000101','E','&#69;','','Uppercase E','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 70,106,'46','1000110','F','&#70;','','Uppercase F','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 71,107,'47','1000111','G','&#71;','','Uppercase G','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 72,110,'48','1001000','H','&#72;','','Uppercase H','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 73,111,'49','1001001','I','&#73;','','Uppercase I','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 74,112,'4A','1001010','J','&#74;','','Uppercase J','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 75,113,'4B','1001011','K','&#75;','','Uppercase K','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 76,114,'4C','1001100','L','&#76;','','Uppercase L','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 77,115,'4D','1001101','M','&#77;','','Uppercase M','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 78,116,'4E','1001110','N','&#78;','','Uppercase N','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 79,117,'4F','1001111','O','&#79;','','Uppercase O','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 80,120,'50','1010000','P','&#80;','','Uppercase P','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 81,121,'51','1010001','Q','&#81;','','Uppercase Q','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 82,122,'52','1010010','R','&#82;','','Uppercase R','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 83,123,'53','1010011','S','&#83;','','Uppercase S','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 84,124,'54','1010100','T','&#84;','','Uppercase T','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 85,125,'55','1010101','U','&#85;','','Uppercase U','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 86,126,'56','1010110','V','&#86;','','Uppercase V','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 87,127,'57','1010111','W','&#87;','','Uppercase W','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 88,130,'58','1011000','X','&#88;','','Uppercase X','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 89,131,'59','1011001','Y','&#89;','','Uppercase Y','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 90,132,'5A','1011010','Z','&#90;','','Uppercase Z','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 91,133,'5B','1011011','[','&#91;','','Opening bracket','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 92,134,'5C','1011100','\','&#92;','','Backslash','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 93,135,'5D','1011101',']','&#93;','','Closing bracket','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 94,136,'5E','1011110','^','&#94;','','Caret - circumflex','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 95,137,'5F','1011111','_','&#95;','','Underscore','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 96,140,'60','1100000','`','&#96;','','Grave accent','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 97,141,'61','1100001','a','&#97;','','Lowercase a','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 98,142,'62','1100010','b','&#98;','','Lowercase b','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 99,143,'63','1100011','c','&#99;','','Lowercase c','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 100,144,'64','1100100','d','&#100;','','Lowercase d','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 101,145,'65','1100101','e','&#101;','','Lowercase e','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 102,146,'66','1100110','f','&#102;','','Lowercase f','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 103,147,'67','1100111','g','&#103;','','Lowercase g','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 104,150,'68','1101000','h','&#104;','','Lowercase h','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 105,151,'69','1101001','i','&#105;','','Lowercase i','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 106,152,'6A','1101010','j','&#106;','','Lowercase j','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 107,153,'6B','1101011','k','&#107;','','Lowercase k','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 108,154,'6C','1101100','l','&#108;','','Lowercase l','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 109,155,'6D','1101101','m','&#109;','','Lowercase m','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 110,156,'6E','1101110','n','&#110;','','Lowercase n','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 111,157,'6F','1101111','o','&#111;','','Lowercase o','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 112,160,'70','1110000','p','&#112;','','Lowercase p','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 113,161,'71','1110001','q','&#113;','','Lowercase q','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 114,162,'72','1110010','r','&#114;','','Lowercase r','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 115,163,'73','1110011','s','&#115;','','Lowercase s','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 116,164,'74','1110100','t','&#116;','','Lowercase t','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 117,165,'75','1110101','u','&#117;','','Lowercase u','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 118,166,'76','1110110','v','&#118;','','Lowercase v','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 119,167,'77','1110111','w','&#119;','','Lowercase w','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 120,170,'78','1111000','x','&#120;','','Lowercase x','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 121,171,'79','1111001','y','&#121;','','Lowercase y','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 122,172,'7A','1111010','z','&#122;','','Lowercase z','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 123,173,'7B','1111011','{','&#123;','','Opening brace','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 124,174,'7C','1111100','|','&#124;','','Vertical bar','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 125,175,'7D','1111101','}','&#125;','','Closing brace','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 126,176,'7E','1111110','~','&#126;','','Equivalency sign - tilde','printable');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values ( 127,177,'7F','1111111','','&#127;','','Delete','printable');
-- Extended Characters
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (128,200,'80','10000000','€','&#128;','&euro;','Euro sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (129,201,'81','10000001','','','','','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (130,202,'82','10000010','‚','&#130;','&sbquo;','Single low-9 quotation mark','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (131,203,'83','10000011','ƒ','&#131;','&fnof;','Latin small letter f with hook','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (132,204,'84','10000100','„','&#132;','&bdquo;','Double low-9 quotation mark','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (133,205,'85','10000101','…','&#133;','&hellip;','Horizontal ellipsis','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (134,206,'86','10000110','†','&#134;','&dagger;','Dagger','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (135,207,'87','10000111','‡','&#135;','&Dagger;','Double dagger','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (136,210,'88','10001000','ˆ','&#136;','&circ;','Modifier letter circumflex accent','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (137,211,'89','10001001','‰','&#137;','&permil;','Per mille sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (138,212,'8A','10001010','Š','&#138;','&Scaron;','Latin capital letter S with caron','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (139,213,'8B','10001011','‹','&#139;','&lsaquo;','Single left-pointing angle quotation','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (140,214,'8C','10001100','Œ','&#140;','&OElig;','Latin capital ligature OE','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (141,215,'8D','10001101','','','','','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (142,216,'8E','10001110','Ž','&#142;','','Latin captial letter Z with caron','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (143,217,'8F','10001111','','','','','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (144,220,'90','10010000','','','','','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (145,221,'91','10010001','‘','&#145;','&lsquo;','Left single quotation mark','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (146,222,'92','10010010','’','&#146;','&rsquo;','Right single quotation mark','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (147,223,'93','10010011','“','&#147;','&ldquo;','Left double quotation mark','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (148,224,'94','10010100','”','&#148;','&rdquo;','Right double quotation mark','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (149,225,'95','10010101','•','&#149;','&bull;','Bullet','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (150,226,'96','10010110','–','&#150;','&ndash;','En dash','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (151,227,'97','10010111','—','&#151;','&mdash;','Em dash','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (152,230,'98','10011000','˜','&#152;','&tilde;','Small tilde','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (153,231,'99','10011001','™','&#153;','&trade;','Trade mark sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (154,232,'9A','10011010','š','&#154;','&scaron;','Latin small letter S with caron','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (155,233,'9B','10011011','›','&#155;','&rsaquo;','Single right-pointing angle quotation mark','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (156,234,'9C','10011100','œ','&#156;','&oelig;','Latin small ligature oe','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (157,235,'9D','10011101','','','','','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (158,236,'9E','10011110','ž','&#158;','','Latin small letter z with caron','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (159,237,'9F','10011111','Ÿ','&#159;','&yuml;','Latin capital letter Y with diaeresis','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (160,240,'A0','10100000','','&#160;','&nbsp;','Non-breaking space','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (161,241,'A1','10100001','¡','&#161;','&iexcl;','Inverted exclamation mark','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (162,242,'A2','10100010','¢','&#162;','&cent;','Cent sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (163,243,'A3','10100011','£','&#163;','&pound;','Pound sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (164,244,'A4','10100100','¤','&#164;','&curren;','Currency sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (165,245,'A5','10100101','¥','&#165;','&yen;','Yen sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (166,246,'A6','10100110','¦','&#166;','&brvbar;','Pipe, Broken vertical bar','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (167,247,'A7','10100111','§','&#167;','&sect;','Section sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (168,250,'A8','10101000','¨','&#168;','&uml;','Spacing diaeresis - umlaut','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (169,251,'A9','10101001','©','&#169;','&copy;','Copyright sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (170,252,'AA','10101010','ª','&#170;','&ordf;','Feminine ordinal indicator','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (171,253,'AB','10101011','«','&#171;','&laquo;','Left double angle quotes','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (172,254,'AC','10101100','¬','&#172;','&not;','Not sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (173,255,'AD','10101101','','&#173;','&shy;','Soft hyphen','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (174,256,'AE','10101110','®','&#174;','&reg;','Registered trade mark sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (175,257,'AF','10101111','¯','&#175;','&macr;','Spacing macron - overline','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (176,260,'B0','10110000','°','&#176;','&deg;','Degree sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (177,261,'B1','10110001','±','&#177;','&plusmn;','Plus-or-minus sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (178,262,'B2','10110010','²','&#178;','&sup2;','Superscript two - squared','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (179,263,'B3','10110011','³','&#179;','&sup3;','Superscript three - cubed','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (180,264,'B4','10110100','´','&#180;','&acute;','Acute accent - spacing acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (181,265,'B5','10110101','µ','&#181;','&micro;','Micro sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (182,266,'B6','10110110','¶','&#182;','&para;','Pilcrow sign - paragraph sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (183,267,'B7','10110111','·','&#183;','&middot;','Middle dot - Georgian comma','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (184,270,'B8','10111000','¸','&#184;','&cedil;','Spacing cedilla','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (185,271,'B9','10111001','¹','&#185;','&sup1;','Superscript one','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (186,272,'BA','10111010','º','&#186;','&ordm;','Masculine ordinal indicator','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (187,273,'BB','10111011','»','&#187;','&raquo;','Right double angle quotes','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (188,274,'BC','10111100','¼','&#188;','&frac14;','Fraction one quarter','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (189,275,'BD','10111101','½','&#189;','&frac12;','Fraction one half','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (190,276,'BE','10111110','¾','&#190;','&frac34;','Fraction three quarters','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (191,277,'BF','10111111','¿','&#191;','&iquest;','Inverted question mark','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (192,300,'C0','11000000','À','&#192;','&Agrave;','Latin capital letter A with grave','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (193,301,'C1','11000001','Á','&#193;','&Aacute;','Latin capital letter A with acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (194,302,'C2','11000010','Â','&#194;','&Acirc;','Latin capital letter A with circumflex','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (195,303,'C3','11000011','Ã','&#195;','&Atilde;','Latin capital letter A with tilde','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (196,304,'C4','11000100','Ä','&#196;','&Auml;','Latin capital letter A with diaeresis','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (197,305,'C5','11000101','Å','&#197;','&Aring;','Latin capital letter A with ring above','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (198,306,'C6','11000110','Æ','&#198;','&AElig;','Latin capital letter AE','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (199,307,'C7','11000111','Ç','&#199;','&Ccedil;','Latin capital letter C with cedilla','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (200,310,'C8','11001000','È','&#200;','&Egrave;','Latin capital letter E with grave','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (201,311,'C9','11001001','É','&#201;','&Eacute;','Latin capital letter E with acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (202,312,'CA','11001010','Ê','&#202;','&Ecirc;','Latin capital letter E with circumflex','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (203,313,'CB','11001011','Ë','&#203;','&Euml;','Latin capital letter E with diaeresis','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (204,314,'CC','11001100','Ì','&#204;','&Igrave;','Latin capital letter I with grave','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (205,315,'CD','11001101','Í','&#205;','&Iacute;','Latin capital letter I with acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (206,316,'CE','11001110','Î','&#206;','&Icirc;','Latin capital letter I with circumflex','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (207,317,'CF','11001111','Ï','&#207;','&Iuml;','Latin capital letter I with diaeresis','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (208,320,'D0','11010000','Ð','&#208;','&ETH;','Latin capital letter ETH','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (209,321,'D1','11010001','Ñ','&#209;','&Ntilde;','Latin capital letter N with tilde','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (210,322,'D2','11010010','Ò','&#210;','&Ograve;','Latin capital letter O with grave','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (211,323,'D3','11010011','Ó','&#211;','&Oacute;','Latin capital letter O with acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (212,324,'D4','11010100','Ô','&#212;','&Ocirc;','Latin capital letter O with circumflex','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (213,325,'D5','11010101','Õ','&#213;','&Otilde;','Latin capital letter O with tilde','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (214,326,'D6','11010110','Ö','&#214;','&Ouml;','Latin capital letter O with diaeresis','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (215,327,'D7','11010111','×','&#215;','&times;','Multiplication sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (216,330,'D8','11011000','Ø','&#216;','&Oslash;','Latin capital letter O with slash','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (217,331,'D9','11011001','Ù','&#217;','&Ugrave;','Latin capital letter U with grave','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (218,332,'DA','11011010','Ú','&#218;','&Uacute;','Latin capital letter U with acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (219,333,'DB','11011011','Û','&#219;','&Ucirc;','Latin capital letter U with circumflex','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (220,334,'DC','11011100','Ü','&#220;','&Uuml;','Latin capital letter U with diaeresis','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (221,335,'DD','11011101','Ý','&#221;','&Yacute;','Latin capital letter Y with acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (222,336,'DE','11011110','Þ','&#222;','&THORN;','Latin capital letter THORN','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (223,337,'DF','11011111','ß','&#223;','&szlig;','Latin small letter sharp s - ess-zed','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (224,340,'E0','11100000','à','&#224;','&agrave;','Latin small letter a with grave','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (225,341,'E1','11100001','á','&#225;','&aacute;','Latin small letter a with acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (226,342,'E2','11100010','â','&#226;','&acirc;','Latin small letter a with circumflex','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (227,343,'E3','11100011','ã','&#227;','&atilde;','Latin small letter a with tilde','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (228,344,'E4','11100100','ä','&#228;','&auml;','Latin small letter a with diaeresis','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (229,345,'E5','11100101','å','&#229;','&aring;','Latin small letter a with ring above','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (230,346,'E6','11100110','æ','&#230;','&aelig;','Latin small letter ae','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (231,347,'E7','11100111','ç','&#231;','&ccedil;','Latin small letter c with cedilla','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (232,350,'E8','11101000','è','&#232;','&egrave;','Latin small letter e with grave','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (233,351,'E9','11101001','é','&#233;','&eacute;','Latin small letter e with acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (234,352,'EA','11101010','ê','&#234;','&ecirc;','Latin small letter e with circumflex','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (235,353,'EB','11101011','ë','&#235;','&euml;','Latin small letter e with diaeresis','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (236,354,'EC','11101100','ì','&#236;','&igrave;','Latin small letter i with grave','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (237,355,'ED','11101101','í','&#237;','&iacute;','Latin small letter i with acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (238,356,'EE','11101110','î','&#238;','&icirc;','Latin small letter i with circumflex','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (239,357,'EF','11101111','ï','&#239;','&iuml;','Latin small letter i with diaeresis','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (240,360,'F0','11110000','ð','&#240;','&eth;','Latin small letter eth','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (241,361,'F1','11110001','ñ','&#241;','&ntilde;','Latin small letter n with tilde','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (242,362,'F2','11110010','ò','&#242;','&ograve;','Latin small letter o with grave','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (243,363,'F3','11110011','ó','&#243;','&oacute;','Latin small letter o with acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (244,364,'F4','11110100','ô','&#244;','&ocirc;','Latin small letter o with circumflex','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (245,365,'F5','11110101','õ','&#245;','&otilde;','Latin small letter o with tilde','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (246,366,'F6','11110110','ö','&#246;','&ouml;','Latin small letter o with diaeresis','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (247,367,'F7','11110111','÷','&#247;','&divide;','Division sign','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (248,370,'F8','11111000','ø','&#248;','&oslash;','Latin small letter o with slash','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (249,371,'F9','11111001','ù','&#249;','&ugrave;','Latin small letter u with grave','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (250,372,'FA','11111010','ú','&#250;','&uacute;','Latin small letter u with acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (251,373,'FB','11111011','û','&#251;','&ucirc;','Latin small letter u with circumflex','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (252,374,'FC','11111100','ü','&#252;','&uuml;','Latin small letter u with diaeresis','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (253,375,'FD','11111101','ý','&#253;','&yacute;','Latin small letter y with acute','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (254,376,'FE','11111110','þ','&#254;','&thorn;','Latin small letter thorn','extended');
insert into ascii_code ( DEC, OCT, HEX, BIN, SYMBOL, HTML_NUMBER, HTML_NAME, CODE_DESC, ASCII_TYPE) values (255,377,'FF','11111111','ÿ','&#255;','&yuml;','Latin small letter y with diaeresis','extended');

Query to check tablespace size and freespace

Do you need to know what your tablespaces are, what size they are, and how much free space you have? The following script will help you do just that.

col "Tablespace" for a22
 col "Used MB" for 99,999,999
 col "Free MB" for 99,999,999
 col "Total MB" for 99,999,999
 select df.tablespace_name "Tablespace",
 totalusedspace "Used MB",
 (df.totalspace - tu.totalusedspace) "Free MB",
 df.totalspace "Total MB",
 round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace))
 "Pct. Free"
 from
 (select tablespace_name,
 round(sum(bytes) / 1048576) TotalSpace
 from dba_data_files
 group by tablespace_name) df,
 (select round(sum(bytes)/(1024*1024)) totalusedspace, tablespace_name
 from dba_segments
 group by tablespace_name) tu
 where df.tablespace_name = tu.tablespace_name ;

Oracle & MySQL DBA Articles, FAQs and, Scripts