将一列FIRSTNAME NVARCHAR2(30)
从 VARCHAR2(30) 转换为
alter table ANGESTELLTER modify FIRSTNAME NVARCHAR2(30) -- worked!
Run Code Online (Sandbox Code Playgroud)
我试图恢复原来的。然而
alter table ANGESTELLTER modify FIRSTNAME NVARCHAR2(30) -- fails!
Run Code Online (Sandbox Code Playgroud)
给出一个 Ora-01439 错误,该值必须为空。
先引入新列FIRSTNAME2 VARCHAR2(30),复制重命名没有成功,可能是Oracle经验失败?
小智 6
请试试这个,它对我有用。希望对你有帮助。
CREATE TABLE TEST_1
(
FIRSTNAME VARCHAR2(30)
);
INSERT INTO TEST_1(FIRSTNAME)
VALUES('NARENDRA');
COMMIT;
ALTER TABLE TEST_1
MODIFY FIRSTNAME NVARCHAR2(30);
--Gives Error while modifying
/*ALTER TABLE TEST_1 MODIFY FIRSTNAME VARCHAR2(30);8*/
ALTER TABLE TEST_1
ADD (FIRSTNAME2 VARCHAR2(30)
);
UPDATE TEST_1
SET FIRSTNAME2= substr(FIRSTNAME,1,30)
COMMIT;
ALTER TABLE TEST_1
DROP COLUMN FIRSTNAME;
ALTER TABLE TEST_1
RENAME COLUMN FIRSTNAME2 TO FIRSTNAME;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14797 次 |
最近记录: |