-2
直到今天,我们使用在Varchar列中输入数值,以便Oracle将该varchar字段转换为数字字段。 现在,当我们试图插入字符值时,它会抛出ORA-01722(无效号码)。Oracle将Varchar字段转换为数字如何将其转换回Varchar
任何人都可以帮我把它转换回varchar字段吗?
直到今天,我们使用在Varchar列中输入数值,以便Oracle将该varchar字段转换为数字字段。 现在,当我们试图插入字符值时,它会抛出ORA-01722(无效号码)。Oracle将Varchar字段转换为数字如何将其转换回Varchar
任何人都可以帮我把它转换回varchar字段吗?
评论者是正确的:数据库不会自行更改列类型。通常,您必须创建一个新列,将旧数据复制到新列,删除原始列并重命名新列。
drop table deleteme_table;
-- zippy s/b varchar2(30), not integer
CREATE TABLE deleteme_table
(
adate DATE
, zippy INTEGER
);
-- Add the correct type to the table as a new column
ALTER TABLE deleteme_table
ADD (tempcol VARCHAR2 (30));
-- Copy the old values to the new column
UPDATE deleteme_table
SET tempcol = zippy;
-- Get rid of the original column
ALTER TABLE deleteme_table
DROP COLUMN zippy;
-- Rename to original column name
alter table deleteme_table rename column tempcol to zippy;
发布表描述和抛出异常的查询 – GurV
你是什么意思* Oracle将该varchar字段转换为数字字段*? – GurV
欢迎来到SO。请阅读[问]并发布相关细节。谢谢。 – OldProgrammer