首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在oracle中将number(7,2)改为varchar?

如何在oracle中将number(7,2)改为varchar?
EN

Stack Overflow用户
提问于 2012-06-24 20:44:33
回答 2查看 16.5K关注 0票数 2

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

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-24 20:47:00

您应该使用modify关键字,而不是第二个alter

代码语言:javascript
复制
alter table
   emp
modify
(
   sal    varchar2(10)
);

在修改tables列数据类型时,需要使用modify关键字。

当然,您必须处理现有的列数据。在修改tables列数据类型时,您可能希望导出行,重新定义表,然后重新导入数据。

在这种情况下,您需要执行以下步骤来更改列数据类型:

  1. 在表的末尾创建新列。
  2. 运行更新以填充新表列
  3. 将旧表column
  4. Re-name新列删除为原始列名
票数 11
EN

Stack Overflow用户

发布于 2012-06-25 04:31:33

通过附加一段字符串来获取一个完美的数字并毁掉用户的其余部分似乎不是一个聪明的主意。直接在select上添加字符串,还是通过视图添加?

类似于:

代码语言:javascript
复制
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_charMore on format models

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11177520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档