我想将数据从VISITSAUTHORIZED VARCHAR2(11)
列复制到VISITORS NUMBER(5)
列。
有人可以帮忙吗?
答案 0 :(得分:1)
alter table <table> add visitors number(5);
update <table> set visitors = visitsauthorized;
alter table <table> drop column visitsauthorized;
当然,如果visitedauthorized包含非数字值,则此方法将失败。
Alternativaly,您可能想要使用dbms_redefinition,但坦率地说,我对它的体验不是很积极,至少在11i上(例如参见this dba.exchange question)
答案 1 :(得分:1)
如果你不想改变你的表格结构,
如果VISITSAUTHORIZED
长度为5或更短
UPDATE table_name SET VISITORS=to_number(VISITSAUTHORIZED)
如果VISITSAUTHORIZED
长度超过5,则对VISITSAUTHORIZED
列进行修剪,然后将其更新为
UPDATE table_name SET VISITORS=to_number(SUBSTR(VISITSAUTHORIZED,1,5))
答案 2 :(得分:0)
虽然应对使用cast()
功能。For reference