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 提供了多种数据类型以适应各种不同类型的变量和字段。以下是对这些数据类型和存储方式的详细解释: **一、字符类型** 1. **CHAR**: CHAR 是固定长度的字符串类型,指定的长度内存储数据,不足的部分会用...
以下是一些关于Oracle语法和个人学习整理的关键知识点: 1. **初始口令**:Oracle安装完成后,预设了一些默认的系统用户及其口令,例如: - internal/oracle - sys/change_on_install - system/manager - scott...
**解答**: Oracle支持多种数据类型,包括数值类型(NUMBER)、字符类型(VARCHAR2, CHAR)、日期类型(DATE)、LOB类型(BLOB, CLOB)等。 - **示例**: 创建包含不同数据类型的表: ```sql CREATE TABLE example_table ( ...
3. **表设计**:表是数据库的基础,设计时要考虑字段类型、主键、索引、约束等。**表空间设计**是为表分配存储空间的策略,可以根据不同需求设置不同的表空间,如用户数据、临时数据等。**表分区设计**则用于优化...
`create table` 创建新表,`alter table` 添加、修改或删除字段,`rename` 改变字段或表名,`drop table` 删除表。`create table as select` 直接从查询结果创建新表。 4. 数据操纵语言(DML):DML涉及数据的插入...
4. **表的创建与管理**:在Oracle中,通过CREATE TABLE语句创建表,指定字段名、数据类型、约束条件等。约束条件包括NOT NULL(非空)、UNIQUE(唯一)、PRIMARY KEY(主键)、FOREIGN KEY(外键)等。 5. **索引**...
- 添加字段:ALTER TABLE 表名 ADD COLUMN 字段名 数据类型; - 删除字段:ALTER TABLE 表名 DROP COLUMN 字段名; - 添加字段并赋值:ALTER TABLE 表名 ADD COLUMN 字段名 数据类型 DEFAULT 值; - 修改字段...
以下是对Oracle知识点的详细整理: 1. **表**:表是Oracle数据库的基本单位,由行和列组成,用于存储数据。建表时可以设置各种约束,如 PRIMARY KEY(主键)、FOREIGN KEY(外键)、UNIQUE(唯一性)、CHECK(检查...
- **空字符处理**:Oracle不允许非空字段为空,迁移时需检查并替换NULL或空字符。 - **字符串比较**:Oracle的`LIKE`操作不使用索引效率低,建议使用`instr()`函数提高查询速度。 7. **其他注意事项**: - 数据...
4. 表与索引:理解表结构、字段类型、主键、外键以及如何创建和管理索引。 5. 数据库安全管理:用户权限、角色管理、审计和备份恢复策略。 6. 高级特性:如分区、物质化视图、游标、事务管理和并发控制。 MySQL则是...
从给定的文件标题“Oracle学习资料 自己整理的”以及描述“从OCA到OCP内容,常用的命令和使用方法,技巧等”,我们可以提炼出一系列关于Oracle数据库管理与操作的关键知识点,涵盖从初级到高级的技能提升路径。...
以下是根据提供的PPT文件名称和描述整理出的核心知识点: 1. **数据库基础知识**: - 数据库的概念:存储和管理数据的系统。 - 关系型数据库:以表格形式存储数据,支持SQL查询语言。 - Oracle数据库的特点:高...
- 主键(Primary Key):作为表中唯一标识一条记录的字段,其值通常不可更改。 - 外键(Foreign Key):参照另一个表或同一表的主键或唯一键,确保数据的引用完整性,外键的值需与主键匹配或为空。 2. **数据库...
在Oracle Forms的开发环境中,Oracle Developer Suite 10g是一个关键组件,它是一个全面的集成开发环境(IDE),集成了多种工具,如Oracle JDeveloper、Oracle Reports、Oracle Forms、Oracle Discoverer、Oracle ...
- `desc`:描述表结构,显示字段名、数据类型等信息。 - `show user`:查看当前连接的用户。 - `set pagesize`:设置每页显示的记录数。 - `set linesize`:设置每行的最大字符数。 2. 数据查询与操作: - `...
例如,可以通过Form Pers隐藏某些对特定用户不相关的字段,或者更改字段的顺序和排列,甚至添加新的功能按钮。"FormPers_ML_RUP4.doc"可能就是一份关于Form Pers在Release Update Pack 4中的详细指南,包含了如何...
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的命令和功能来管理和操作数据库。以下是一些基本的Oracle命令,这些命令涵盖了从创建用户、表空间到查看数据库信息、管理权限以及数据操作等多个方面...
- **数据类型转换**:Oracle和MySQL的数据类型可能不同,需要确保数据类型的兼容性和正确性。 - **索引和约束**:迁移时需检查和调整索引和约束,以适应MySQL的规则。 - **性能优化**:根据MySQL的最佳实践优化表...
- 添加字段:`ALTER TABLE student ADD (classid NUMBER(2));` - 修改字段长度:`ALTER TABLE student MODIFY (xm VARCHAR2(12));` - 修改字段类型(无记录时):`ALTER TABLE student MODIFY (xh VARCHAR2(5));` - ...
Oracle数据库系统是企业级数据管理的重要工具,涵盖了多种对象类型和功能。以下是对这些知识点的详细解释: 1. **表**:表是Oracle数据库的基本构建块,由行和列组成,用于存储数据。创建表使用`CREATE TABLE`语句...