ORA-01439 Error Message
Learn the cause and how to resolve the ORA-01439 error message in Oracle.
Description
When you encounter an ORA-01439 error, the following error message will appear:
- ORA-01439: column to be modified must be empty to change datatype
Cause
You tried to execute a ALTER TABLE MODIFY statement to change the datatype of a column, but the column contained data. You can only modify the datatype of a column whose values are all NULL.
Resolution
The option(s) to resolve this Oracle error are:
Option #1
Execute an UPDATE statement to change all values in that column to NULL.
Option #2
Execute a DELETE statement to remove all rows from the table.
For example, if you had a table called suppliers defined as follows:
CREATE TABLE suppliers ( supplier_id number(5), supplier_name varchar2(50) );
Then executed an INSERT statement as follows:
INSERT into suppliers (supplier_id, supplier_name) VALUES (12345, 'IBM');
And you tried to execute the following ALTER TABLE statement:
ALTER TABLE suppliers MODIFY supplier_id varchar2(5);
You would receive the following error message:
You could correct the error with either of the following solutions:
Solution #1
You can update the supplier_id column to all NULLs. This only works if the supplier_id field will accept NULL values.
UPDATE suppliers SET supplier_id = NULL;Solution #2
You can remove all entries from the suppliers table.
DELETE FROM suppliers;
If you do decide to delete all entries from your suppliers table, you might want to make sure that you have a backup of the data.
No comments:
Post a Comment