1,如果只是单纯的把字段改大,比如numeric (16,2)--->numeric (16,4) ,可直接
alter table 表名 modify ( 字段名 numeric (16,4)
2,由于需求变动,现要将一个类型NUMBER(8,2)的字段类型改为 char。
大体思路如下:
将要更改类型的字段名改名以备份,然后添加一个与要更改类型的字段名同名的字段(原字段已经改名),然后更新数据,最后删除改名备份的字段。
以下操作在 Oracle 10.2.0.1.0 中通过。
/*修改原字段名*/
ALTER TABLE 表名 RENAME COLUMN 字段名 TO 字段名1;
/*添加一个和原字段同名的字段*/
ALTER TABLE 表名 ADD 字段名 VARCHAR2(30);
/*
将原来的数据更新到新字段中
这是要注意,一定要显示进行数据类型转换(不同于MSSQL)
*/
UPDATE 表名 SET 字段名 = CAST(字段名1 AS VARCHAR2(30));
/*删除原来的备份字段*/
ALTER TABLE 表名 DROP COLUMN 字段名1;
其他方案:
今天公司因为业务需要,修要修改某个字段数据类型有number(5),变为number(5,2)型
要是没有数据的话直接用以下语句即可
alter table tb_test modify permile number(5,2);
但是有数据的话 就不能用上面方法了,
alter table tb_test add permile_temp number(5,2)
update tb_test set permile_temp=permile;
alter table drop column permile;
alter table test rename column permile_temp to permile;
这种方法会使列名发生变化,而且字段顺序增加 有可能发生行迁移,对应用程序会产生影响
以下方法是比较好的方法
不用使列名发生变化 也不会发生表迁移,但这个有个缺点是表要更新两次
如果数据量较大的话 产生的undo和redo更多 ,前提也是要停机做
要是不停机的话 ,也可以采用在线重定义方式来做
以下是脚本:
alter table tb_test add permile_temp number;
-- Add/modify columns
alter table tb_test modify PERMILE null;
update tb_test set permile_temp=permile,permile=null;
commit;
alter table tb_test modify permile number(5,2);
update tb_test set permile=permile_temp,permile_temp=null;
commit;
alter table tb_test drop column permile_temp;
alter table tb_test modify PERMILE not null;
select * from tb_test ;
分享到:
相关推荐
最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了。 blob字段直接用 select * from table_name where column like ‘%%'查找的时候是不能实现...
在实际应用中, POWERDESIGNER 生成 Oracle 表名带有引号的问题可能会导致其他问题,例如数据移植和数据 integrations 等。因此,解决这种问题非常重要。 POWERDESIGNER 提供了多种解决方法,以满足不同的需求和应用...
MODIFY (列名 数据类型) 例:将test表中的Count列宽度加长为10个字符 sql>alter atble test modify (County char(10)); b、将一张表删除语句的格式如下: DORP TABLE 表名; 例:表删除将同时删除表的数据和...
Oracle数据库表结构导出成Word文档工具(带源码下载) 修改了一下数据库的连接方式:由于我安装的是win764位+office64+oracle client 32位,用MSDAORA.1无法连接,所以将MSDAORA.1换为OraOleDb.Oracle.1,换后正常连接...
还在为两表数据多字段相关联,要批量修改其一表多字段数据成另一表数据值,而不知怎样做而烦恼吗? 还在为查找数据库安全情况,不知权限分配情况如何?查起来又费时费力,而烦恼吗? 还在为数据库安全情况,表或角色...
二进制数据类型 row 1~2000字节 可变长二进制数据,在具体定义字段的时候必须指明最大长度n long raw 1~2GB 可变长二进制数据 LOB数据类型 clob 1~4GB 只能存储字符数据 nclob 1~4GB 保存本地语言字符集数据 blob...
§1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1 数据文件 26 §1.2.2 控制文件 26 §1.2.3 重做日志文件 26 §1.2.4 其它支持文件 26 §...
使用 MSDAORA 访问接口可能会出现错误,在带数据类型 CLOB、BLOB 字段时,建议使用 OraOLEDB.Oracle 访问接口。 通过本文档,可以了解如何使用 SQL Server 链接服务器访问 Oracle 数据库,并了解到相关的配置和安装...
设计规范还要求实体表都必须包含四个字段:编号(ID)、代码(Code)、创建人(CreatedBy)、创建时间(Creation Time)、修改人(Modified By)、修改时间(Modification Time)、删除标志(Delete Status)。
(2)INTO子句后的变量个数和位置及数据类型必须和SELECT命令后的字段名表相同。 (3)INTO子句后可以是简单类型变量或组合类型变量。 (4)SELECT语句中的WHERE条件可以包含PL/SQL块中定义的变量及表达式,但变量名...
MODIFY (列名 数据类型) 例:将test表中的Count列宽度加长为10个字符 sql>alter atble test modify (County char(10)); b、将一张表删除语句的格式如下: DORP TABLE 表名; 例:表删除将同时删除表的数据和...
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Oracle SQL高级编程》的源代码 对应的书籍资料见: Oracle SQL高级编程(资深Oracle专家力作,...
主要用于声明变量、常量、数据类型、游标、异常处理名称以及本地(局部)子程序定义等。 执行部分:是PL/SQL块的功能实现部分,以关键字BEGIN开始,EXCEPTION或END结束(如果PL/SQL块中没有异常处理部分,则以END...
第一个参数是照片数据,第二个参数是照片不带后缀的文件名 4、说明:导入成功的照片转移到这个目录下 5、说明:导入失败的照片转移到这个目录下 6、点击按钮“开始导入” 因为给客户使用,所有选项全是只读的;如果...
结果集的元数据是元数据的核心组件之一,提供了查询结果的元数据信息,包括列信息、数据类型等。 JDBC 事务 JDBC 事务是 JDBC 的一个重要功能,用于确保数据库操作的原子性和一致性。使用 JDBC 事务可以确保多个...
由系统提供数表结构信息,包括字段名称、类型、长度等,源代码模板中可以直接使用这些字段属性,使用Javascript语言,通过模板生成源代码。 适用范围:生成对数据表进行增加、删除、修改和查询操作的源代码,尤其...
EBS开发(form builder)中使用文件夹(folder)功能的步骤 ,比较详细
1.2.4 数据类型(DataType) 1.2.5 记录(Record) 1.2.6 主键(PrimaryKey) 1.2.7 索引(Index) 1.2.8 表关联 1.2.9 数据库的语言——SQL 1.2.10 DBA与程序员 第2章 数据表的创建和管理 2.1 数据...