如何在Oracle7中删除列

时间:2019-03-01 15:34:13

标签: oracle

如何在Oracle7中删除表列? 是的,是的。。。我的客户端仍使用该版本:Oracle7 Server版本7.3.4.5.0

或者...如何在Oracle7 Server版本7.3.4.5.0中将列数据类型从Varchar2更改为Long ...

1 个答案:

答案 0 :(得分:1)

我的解决方案:

--1. Create a clone table.
CREATE TABLE tableA_aux
AS
   SELECT *
   FROM tableA;

/

-- 2. Alter table to accept null values (if is not nullable)
ALTER TABLE tableA MODIFY text varchar2(2000);

-- 3. Clear table column
UPDATE tableA
SET text = NULL;

COMMIT;

-- 4. Alter datatype to VARCHAR2 -> LONG
ALTER TABLE tableA MODIFY text LONG;


--5. Update the column with original values
UPDATE tableA s
SET s.text =
       (SELECT a.text
        FROM tableA_aux a
        WHERE a.PK_ID = s.PK_ID);

COMMIT;