Search code examples
sqldatabasederby

How to alter a column datatype for derby database?


I am trying to alter a datatype for a derby db column. The current price column is set as DECIMAL(5,0). I would like to alter it to DECIMAL(7,2). I did this :

alter table item alter column price set data type DECIMAL(7,2);

But it did not work, and showing the error:

Error: Only columns of type VARCHAR may have their length altered. 

May I know how is it possible to alter it? Thank you.


Solution

  • Here is the Derby SQL script to change column MY_TABLE.MY_COLUMN from BLOB(255) to BLOB(2147483647):

    ALTER TABLE MY_TABLE ADD COLUMN NEW_COLUMN BLOB(2147483647);
    UPDATE MY_TABLE SET NEW_COLUMN=MY_COLUMN;
    ALTER TABLE MY_TABLE DROP COLUMN MY_COLUMN;
    RENAME COLUMN MY_TABLE.NEW_COLUMN TO MY_COLUMN;