Is there any way to move an column in an Oracle table from last to first position? Someone has dropped the ID column, and recreated it. So now it is at the end, which is a p
Recreating the table (via rename/temporary table so you don't lose your data) is the only way I know of.
I don't believe it's possible to simply change the column order.
I use this all the time:
ALTER TABLE MOVE COLUMN column_name TO ordinal_position;
In Oracle 12c it is now easier to rearrange columns logically. It can be achived by making column invisible/visible.If you change a invisible column to visible , the column will appear last in the odering.
Consider Using Invisible Columns
Create wxyz table:
CREATE TABLE t (
w INT,
y VARCHAR2,
z VARCHAR2,
x VARCHAR2
);
rearrange the x column to the middle:
ALTER TABLE wxyz MODIFY (y INVISIBLE, z INVISIBLE); ALTER TABLE wxyz MODIFY (y VISIBLE, z VISIBLE);
DESCRIBE wxyz;
w
x
y
z
You might like to access your table via a view, so you can painlessly rearrange the logical order if it's important to the application technology.
Not possible to move column in oracle. It will be created in the last position. If anyone wanted so either view needs to be created or new table need to be created
If there isn't a ton of data/columns, you could simply rename the columns in the order you want. Then just delete * from 'your table name here'. This was a good solution for me since I hadn't inserted many records yet.