我正在使用 Oracle 10g。我想将 # 附加到“sal”列中的所有值。为了首先完成这一点,我试图将“sal”列的数据类型从数字更改为 varchar,但出现以下错误
我究竟做错了什么 ?
您应该使用modify
关键字而不是您的第二个alter
.
alter table
emp
modify
(
sal varchar2(10)
);
修改表列数据类型时,需要使用modify
关键字。
当然,您必须处理现有的列数据。修改表列数据类型时,您可能希望导出行,重新定义表,然后重新导入数据。
在这种情况下,您需要按照以下步骤更改列数据类型:
通过附加一条字符串来获取一个完美的数字并破坏其他用户似乎不是一个聪明的主意。直接或通过视图在选择上添加字符串?
就像是:
SQL> create view emp_horked
as
select ename, sal, sal || '#' hash, to_char(SAL,'9999.99') || '#' sal_padded
from emp;
View created.
SQL> select * from emp_horked where rownum < 5;
ENAME SAL HASH SAL_PADDE
---------- ---------- ----------------------------------------- ---------
SMITH 800 800# 800.00#
ALLEN 1600 1600# 1600.00#
WARD 1250 1250# 1250.00#
JONES 2975 2975# 2975.00#
有关格式模型的更多信息to_char