如何在oracle中将数据从一列复制到同一表中具有不同数据类型的另一列

如何在oracle中将数据从一列复制到同一表中具有不同数据类型的另一列,oracle,Oracle,我想将数据从VISITSAUTHORIZED VARCHAR2(11)列复制到VISITORS NUMBER(5)列。 有人能帮忙吗 应对时使用cast()功能。更改表格添加访客编号(5); 更新设置访问者=访问者已授权; alter table drop column VISITSAUTHORIED; 当然,如果VisitAuthorized包含非数值,这种方法将失败 或者,您可能想使用,但坦率地说,我对它的体验不是很积极,至少在11i上(参见示例)如果您不想更改表的结构,则意味着 如果您的

我想将数据从
VISITSAUTHORIZED VARCHAR2(11)
列复制到
VISITORS NUMBER(5)
列。
有人能帮忙吗

应对时使用
cast()
功能。

更改表格添加访客编号(5);
更新设置访问者=访问者已授权;
alter table drop column VISITSAUTHORIED;
当然,如果VisitAuthorized包含非数值,这种方法将失败


或者,您可能想使用,但坦率地说,我对它的体验不是很积极,至少在11i上(参见示例)

如果您不想更改表的结构,则意味着

如果您的
visitAuthorized
长度小于等于5,请使用以下查询

UPDATE table_name SET VISITORS=to_number(VISITSAUTHORIZED)
如果
VISITSAUTHORIZED
length大于5,请修剪
VISITSAUTHORIZED
列,然后像

UPDATE table_name SET VISITORS=to_number(SUBSTR(VISITSAUTHORIZED,1,5))

什么阻止了你?您是否面临具体问题?是的,实际上我需要将VisitAuthorized varchar的数据类型更改为number,而不删除数据。
UPDATE table_name SET VISITORS=to_number(SUBSTR(VISITSAUTHORIZED,1,5))