在一次做开发的时候,遇到需要将数据表的字段类型由number改成varchar,可是该字段又有值,

用  alter table t-name modify cname newType;会报错。

话说,当时在网上没找到合适的解决办法,很苦恼!

今天在博客园看到解决这个问题的办法,很nice,分享!

当要修改的字段有值的时候,不能更改字段类型

两种解决办法:

1、   > 新增一列,列类型与要修改的新类型一致;

>将旧列的值赋给新列(需强制类型转换);

> update tname set cname_new=cast(cname_old as 新类型)

>删除旧列。

这种办法,改变了列在表里面的位置。

2、      >新增一列,列类型与旧列相同;

>将旧列的值赋给新列,旧列的值变为null;

update tname set cname_new =cname_old;

> 更改旧列的字段类型(此时为null,可以修改)

alter table tname modify cname_old  newType;

> 将新列的值赋给旧列;

update tname set cname_old=cname_new;

>删除新列。

相关sql语句:

      

查看oracle版本:select * from v$version;

更新字段名:alter table 表名 rename column 旧列名 to 新列名;

新增字段:   alter table 表名 add 列名 列类型;

新增字段并赋值: alter table 表名 add 列名 列类型 default 默认值;

删除字段:  alter table 表名 drop column 列名;

修改字段值:update 表名 set 列名=value where ...

修改字段类型: alter table 表名 modify 列名 类型;

参考:http://www.cnblogs.com/david-zhang-index/archive/2012/04/10/2441015.html

oracle如何修改字段类型(oracle总体知识2)的更多相关文章

  1. Oracle/SQL 修改字段类型和长度

    标准SQL修改字段类型和长度语句: ALTER TABLE tableName modify column columnName 类型;例如Mysql的修改字段类型语句:alter table tes ...

  2. Oracle怎么修改字段类型

    转载:https://www.2cto.com/database/201710/689523.html 有一个表名为tb,字段段名为name,数据类型nchar(20). 1.假设字段数据为空,则不管 ...

  3. Oracle修改字段类型和长度

    Oracle修改字段名 alter table 表名 rename column 旧字段名 to 新字段名 Oracle修改字段类型和长度 alter table 表名 modify 字段名 数据类型 ...

  4. Oracle基本操作,Oracle修改列名,Oracle修改字段类型

    oracle基本操作,Oracle修改列名,Oracle修改字段类型 >>>>>>>>>>>>>>>>& ...

  5. oracle修改字段类型由varchar2修改为clob类型

    oracle修改字段类型由varchar2修改为clob类型 http://blog.sina.com.cn/s/blog_9d12d07f0102vxis.html

  6. Oracle使用SQL语句修改字段类型

    Oracle使用SQL语句修改字段类型 1.如果表中没有数据 Sql代码 1 2 3 alter table 表名 modify (字段名1 类型,字段名2 类型,字段名3 类型.....)  alt ...

  7. Oracle创建表、修改字段类型

    1.创建表 1.创建表 create table SCM_PER( --SCM_PER表名 ID ) primary key,--主键ID USERID ),--用户ID --Permission v ...

  8. Oracle 批量修改字段长度

    Oracle 批量修改字段长度 SELECT  'alter table '||a.table_name||' MODIFY  '||A.COLUMN_NAME||' VARCHAR2(100);' ...

  9. ORACLE常用数据库字段类型

    ORACLE常用数据库字段类型   常用的数据库字段类型如下:   字段类型 中文说明 限制条件 其它说明  CHAR 固定长度字符串 最大长度2000 bytes     VARCHAR2 可变长度 ...

随机推荐

  1. SQL学习之联结表的使用

    1.简介:"联结(join)表"是SQL最强大的功能之一.联结是利用SQL的SELECT能执行的最重要的操作,很好地理解联结及其语法是学习SQL的极为重要的部分! 在能够有效的使用 ...

  2. Nutch安装的几个网址

    RunNutchInEclipse - Nutch Wiki   http://wiki.apache.org/nutch/RunNutchInEclipse Index of /apache/nut ...

  3. iOS隐藏tabBar的方法

    两种方法用来隐藏tabBar 1.在本页面隐藏 #pragma mark - 隐藏tabBar - (void)viewWillAppear:(BOOL)animated{ self.tabBarCo ...

  4. 2016-09-07 J2EE基础知识之JSP_部分

    1.JSP(Java Server Pages) java服务器页面,其根本是一个简化的Servlet设计.JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.h ...

  5. Clamp函数

    Clamp函数可以将随机变化的数值限制在一个给定的区间[min, max]内: template<class T> T Clamp(T x, T min, T max) { if (x & ...

  6. Spring jdbcTemplate + EasyUI 物理分页

    前文说到,新项目中,用到的是SpringMVC + jdbcTemplate,前台是EasyUI,发现同事以前封装分页是逻辑分页,于是,自己动手封装了下物理分页. 这个是核心分页实体: import ...

  7. JSP数据交互——九大内置对象及其方法详解(一)

    ①既然说到JSP内置对象,那么什么是JSP内置对象呢? 解析:JSP内置对象,就是在编写JSP页面时,不需要做任何声明就可以直接使用的对象. 如下代码片段:  <% int[]  value  ...

  8. js点击事件代理时切换图片如何防抖动

    由于图片的加载速度比较慢,我们可以直接用64base对图片进行编码,把编码加在图片的url中~~~这样加载会快一些,也不会有切换图片时出现的抖动效果

  9. 本地环境下 WordPress 环境搭建与安装

    本地环境:Ubuntu 14.04 使用软件: WordPress 4.1.1 中文优化版 EasyEngine 安装步骤: 安装 LNMP 环境; wget -qO ee rt.cx/ee & ...

  10. Linux 下修改Tomcat使用的JVM内存大小

    我的服务器的配置: # OS specific support.  $var _must_ be set to either true or false. JAVA_OPTS="-Xms10 ...