我使用的是Oracle 10g。我想将#附加到'sal‘列中的所有值。要完成此操作,首先我尝试将'sal‘列的数据类型从numeric更改为varchar,但得到以下错误

我做错了什么?
发布于 2012-06-24 20:47:00
您应该使用modify关键字,而不是第二个alter。
alter table
emp
modify
(
sal varchar2(10)
);在修改tables列数据类型时,需要使用modify关键字。
当然,您必须处理现有的列数据。在修改tables列数据类型时,您可能希望导出行,重新定义表,然后重新导入数据。
在这种情况下,您需要执行以下步骤来更改列数据类型:
发布于 2012-06-25 04:31:33
通过附加一段字符串来获取一个完美的数字并毁掉用户的其余部分似乎不是一个聪明的主意。直接在select上添加字符串,还是通过视图添加?
类似于:
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的More on format models
https://stackoverflow.com/questions/11177520
复制相似问题