问题
表A有数据,想修改其中有一列A1为VARCHAR2(10)型(原来为NUMBER型)。
当时开始执行sql
alter table A modify (A1 varchar2(10));
结果报错了
SQL> alter table A modify (A1 varchar2(10));
alter table A
modify(A1 varchar2(10))
ORA-01439: 要更改数据类型,则要修改的列必须为空
A1中是有数据的,我不想破坏原来的数据,只想修改列类型。
解决方法
网上找到的方法
create table bbb as select * from aaa where 1=2;
alter table bbb modify (a1 varchar2(32));
insert into bbb select * from aaa;
drop table aaa;
rename table bbb to aaa;
个人不太喜欢,要对整个表操作,不值后来用以下的方法 ,要oralce 9i以上的版本才可以。
--#alter table fyt_ntj_table7 modify( dzdx varchar2(10));
--1.添加列add(newColumn varchar2(10))
alter table fyt_ntj_table7 add(newColumn varchar2(10));
--2.赋值newColumn = dzdx
update fyt_ntj_table7 set newColumn = dzdx;
commit;
--3.删除原来的列和列的约束drop column dzdx
alter table fyt_ntj_table7 drop column dzdx CASCADE CONSTRAINTS;
--4.重命名newColumn to dzdx
alter table fyt_ntj_table7 rename column newColumn to dzdx;
还是有问题的,不能做为一个事务去处理。
如果中间的update 没成功,就把第三步删除列给X了,就惨了,所以要做这一列的副本列。。。保险啊。。
分享到:
相关推荐
Oracle 中的 ROWID 虚拟列用于对表中的某一列进行唯一标示,DB2/400 中也有这样的数据类型 ROWID,它与 Oracle 中的 ROWID 的功能相似。DB2/400 中的 ROWID 可以存放 40 byte 的数据用来唯一标示表中的每一行。 ...
Oracle 10g 数据类型是数据库管理的基础,它定义了数据在存储和处理时的格式。Oracle 提供了丰富的数据类型来满足各种数据存储需求,主要包括字符型、数值型、日期时间型和大对象型。 1. 字符型 字符型数据类型包括...
Oracle 基本数据类型 Oracle 中有多种基本数据类型,包括字符类型、数字类型、日期类型、二进制类型等。了解这些数据类型的特点和使用场景,对于数据库设计和开发至关重要。本文将详细介绍 Oracle 中的基本数据类型...
《Oracle基本数据类型存储格式详解》 Oracle数据库中,数据类型的存储格式对于数据库的性能和空间利用率至关重要。本文将深入探讨Oracle的字符类型、数字类型、日期类型、ROWID类型和RAW类型的基本数据类型的存储...
文件名"mysql,oracle以及java数据类型对照.doc"正是提供这种信息的关键资源,它详尽列出了这些对应关系,便于开发人员参考。 总的来说,掌握Java、MySQL和Oracle之间的数据类型对应是提升开发效率和代码质量的关键...
Oracle数据库系统支持多种数据类型,这些数据类型用于定义表中的列,以便存储各种形式的信息。以下是对Oracle支持的数据类型进行详细解释: 1. 字符类: - `CHAR`:这是一个定长字符串类型,最大长度为2000个字符...
Oracle 数据类型是数据库管理系统Oracle中用于定义和存储各种数据类型的规则和格式。这些数据类型决定了字段可以存储的数据种类,以及如何存储和处理这些数据。在Oracle中,数据类型分为多种,包括字符类型、数值...
Oracle中的ROWID虚拟列用于对表中的某一列进行唯一标示,DB2/400中也有类似的数据类型ROWID,它与Oracle中的ROWID的功能相似。DB2/400中的ROWID可以存放40 byte的数据用于唯一标示表中的每一行。 了解Oracle和DB2...
Oracle 数据库开发培训中根据某一列的值修改另一列的值 Oracle 数据库是一种关系型数据库管理系统,广泛应用于企业级应用程序中。在 Oracle 数据库中,我们可以使用 update 语句来修改某一列的值根据另一列的值。...
Oracle数据库是世界上最广泛使用的数据库管理系统之一,其强大的功能和丰富的数据类型是其核心特性之一。在Oracle编程中,理解并熟练掌握数据类型至关重要,因为它们决定了数据如何存储、处理和检索。以下是对Oracle...
### Oracle 数据类型详解 在数据库管理系统(DBMS)中,数据类型是定义字段或变量能够存储何种类型数据的标准。Oracle数据库提供了丰富的数据类型,适用于不同的应用场景。本文将详细介绍Oracle中的几种常见数据...
### Oracle基本数据类型详解 #### 一、概述 Oracle 数据库提供了多种数据类型来满足不同的需求,这些数据类型包括字符型、数值型、日期时间型、大对象类型等。了解这些基本数据类型对于正确设计数据库表结构至关...
Oracle9i 数据类型、Java 数据类型以及 Schema 类型之间的对比主要关注它们在存储和处理数据时的差异。这些数据类型是编程和数据库管理中的基础,理解它们的关系对于开发与数据库交互的应用程序至关重要。 1. ...
Oracle 基本数据类型 Oracle 数据库中有多种基本数据类型,包括 char、varchar2、number、date、long、raw、long raw、blob、clob、nclob、bfile 等。这些数据类型是我们在设计数据库时最基本的组成部分,了解每种...
### Oracle 数据类型详解 #### 4.1 Oracle 数据类型 ##### 4.1.1 概述 在深入了解Oracle数据库中的各种数据类型之前,我们首先需要明确数据类型的基本概念。数据类型是由一组具有相同特性的值及其上定义的操作...
《Oracle与SQL Server数据类型对应关系深度解析》 在数据库领域,Oracle与SQL Server作为业界广泛使用的两大数据库管理系统,各自拥有独特的数据类型体系。当在两者之间进行数据迁移、复制或整合时,理解并掌握其...
在Oracle数据库中,数据类型定义了列可以存储的数据类型。理解这些数据类型对于创建表结构和编写SQL语句至关重要。主要的数据类型包括: 1. **数值型**:NUMBER(p,s)用于存储浮点数,p是总位数(包括小数点),s是...
Oracle数据库系统提供了多种数据类型,其中包括了三种主要的集合数据类型:VARRAY(变量数组)、NESTED TABLE(嵌套表)和 Associative Array(关联数组,也称为INDEX BY TABLE)。这三种集合数据类型在存储和操作一...
### Oracle 数据类型详解 #### 一、概述 Oracle 数据库提供了丰富的数据类型,这些类型能够满足各种业务场景的需求。在数据库设计中合理选择数据类型对于提高数据库性能、减少存储空间和确保数据一致性等方面都至...
### Oracle查询指定表的所有字段名和数据类型SQL 在Oracle数据库管理中,有时我们需要了解某个特定表的所有字段名称以及它们对应的数据类型等信息。这对于理解表结构、进行数据迁移或编写更为精确的SQL语句非常有...