`

(转)Oracle修改字段类型方法总结

 
阅读更多
有一个表名为tb,字段段名为name,数据类型nchar(20)。

1、假设字段数据为空,则不管改为什么字段类型,可以直接执行:
alter table tb modify (name nvarchar2(20));

2、假设字段有数据,则改为nvarchar2(20)可以直接执行:
alter table tb modify (name nvarchar2(20));

3、假设字段有数据,则改为varchar2(40)执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要用下面方法来解决这个问题

/*修改原字段名name为name_tmp*/
alter table tb rename column name to name_tmp;

/*增加一个和原字段名同名的字段name*/
alter table tb add name varchar2(40);

/*将原字段name_tmp数据更新到增加的字段name*/
update tb set name=trim(name_tmp);

/*更新完,删除原字段name_tmp*/
alter table tb drop column name_tmp;

总结:
1、当字段没有数据或者要修改的新类型和原类型兼容时,可以直接modify修改。
2、当字段有数据并用要修改的新类型和原类型不兼容时,要间接新建字段来转移。
 
 将数字类型改为字符串类型(本来有值了):
/*修改原字段名name为name_tmp*/
alter table t_menu_type rename column T_TYPE_ID to T_TYPE_ID_tmp;

/*增加一个和原字段名同名的字段name*/
alter table t_menu_type add T_TYPE_ID varchar2(40);

/*将原字段name_tmp数据更新到增加的字段name*/
update t_menu_type set T_TYPE_ID=trim(T_TYPE_ID_tmp);

/*更新完,删除原字段name_tmp*/
alter table t_menu_type drop column T_TYPE_ID_tmp;
 
REFS:http://blog.csdn.net/gdjlc/article/details/23762549/

 

分享到:
评论

相关推荐

    详解Oracle修改字段类型方法总结

    本文主要针对Oracle修改字段类型的方法进行详细讲解,特别是在面对不同情况时如何有效地进行操作。 首先,我们来看一个具体的例子,假设有一个名为`tb`的表,其中包含一个名为`name`的字段,其数据类型为`nchar(20)...

    ORACLE中CLOB字段转String类型

    ### ORACLE中CLOB字段转String类型 在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何...

    oracle变更数据表字段类型

    为了更清楚地展示如何在Oracle中更改字段类型,我们将通过一个具体的例子来演示整个过程。 假设我们有一个名为`test_skate`的表,其中包含一个`ID`字段,其类型为`NUMBER`。现在我们需要将其类型更改为`VARCHAR2(50...

    运用Java如何存取Oracle中的CLOB类型字段

    在IT领域,尤其是在数据库操作与Java编程的交集部分,理解和掌握如何在Java中存取Oracle数据库中的CLOB(Character Large Object)类型字段是至关重要的技能。CLOB数据类型主要用于存储大量的文本信息,如文章、报告...

    oracle建表修改字段

    通过上述示例,我们了解了在Oracle数据库中创建表和修改字段的基本方法。`CREATE TABLE`用于定义新表的结构,而`ALTER TABLE MODIFY`则允许在表已存在的情况下调整其结构,满足业务需求的变化。掌握这些基本的SQL...

    Oracle的CLOB大数据字段类型操作方法

    在Oracle中,VARCHAR2作为字段类型的最大存储量为4000个字符,而在PL/SQL编程环境中,VARCHAR2变量的限制更宽松,可以达到32767个字节,但请注意,这32767个字节是基于字符集的,不同的字符集可能会有不同的字节数。...

    Oracle 字符集详解

    Oracle字符集是数据库管理...总结,Oracle字符集是数据库管理的关键部分,理解和正确配置字符集能确保数据的准确性和系统的稳定性。在实际操作中,需根据具体需求选择适当的字符集,并注意字符集变更可能导致的风险。

    Hibernate SQLQuery 查询Oracle char类型结果为一个字符解决方法

    #### 解决方案二:使用`CAST`函数转换字段类型 另一种解决方法是在SQL查询语句中直接使用Oracle提供的`CAST`函数来显式地将char类型的字段转换为`VARCHAR2`类型。这样可以在查询阶段就确保字段被正确处理为字符串...

    oracle_修改表结构

    以上就是关于Oracle中修改表结构的一些基本操作方法。这些命令可以帮助数据库管理员更灵活地管理表结构,提高数据库的可用性和效率。在实际应用中,根据具体需求选择合适的命令非常重要,同时也需要注意备份数据以...

    oracle格式化查看json数据

    总结来说,Oracle提供了全面的JSON支持,包括数据类型、函数、操作符和PL/SQL包,以及客户端工具的增强,使我们能够方便地在数据库中存储、查询和格式化查看JSON数据。无论你是开发人员还是数据库管理员,理解并掌握...

    oracle个人总结

    - Oracle中可以通过ROWNUM伪列实现分页,但这种方法有局限性,不能查询“>=”某个值的记录。 6. **数据复制与权限**: - 可以使用`CREATE TABLE AS SELECT`来复制表结构和内容。 - 权限管理使用`grant`关键字,...

    oracle和sql数据类型

    总结来说,Oracle 和 SQL Server 数据类型在很多方面有相似之处,如字符串、数字、日期/时间、二进制数据类型,但在细节上有所差异,如长度限制、Unicode 支持和特定用途的类型(如 Oracle 的 Bfile 和 SQL Server ...

    Oracle的表结构转成Mysql的表结构

    ### Oracle的表结构转成MySQL的表结构 #### 功能概述 本文介绍了一种将Oracle数据库中的表结构转换为MySQL数据库表结构的方法。通过编写一个PL/SQL函数`fnc_table_to_mysql`来实现这一目标。该函数可以接受四个参数...

    Oracle数据库备份与恢复总结

    ### Oracle数据库备份与恢复知识点总结 #### 一、EXP/IMP (导出与导入) **1.1 基本命令** - **EXP**: 用于从数据库导出数据。 - `exp username/password [参数]` - **IMP**: 用于向数据库导入数据。 - `imp ...

    ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob) (2).pdf

    这些字段类型各有其特性和用途。 1. Long类型:Long数据类型用于存储大文本数据,如用户简历(EMP_DESCLONG)。它能存储的最大长度为2GB。然而,由于Long字段在处理大量数据时性能较低,且不支持索引,所以在现代...

    数据库建表增加或删除字段

    在Oracle数据库管理中,对表结构进行修改是常见的需求之一,比如添加新的字段或删除不再使用的字段等。本文将基于给定的文件信息——“数据库建表增加或删除字段”来详细阐述如何通过SQL语句实现这些操作。 ### 一...

    Oracle中创建表,创建序列,创建自增字段,添加注释, 添加记录,添加触发器,提交

    在创建表时,需要指定表的名称、字段名称、字段类型、主键、索引等信息。在上面的示例代码中,创建了一个名为 `Car` 的表,包含三个字段:`GUID`、`PhoneId` 和 `UserName`,其中 `GUID` 字段是主键。 序列...

    通过xlrd读取excel生成oracle的建表语句

    总结来说,这个过程涉及了Python的xlrd库用于读取Excel数据,理解Oracle数据库的建表语句语法,以及根据数据类型选择合适的数据字段。通过这样的方式,可以自动化处理数据导入到Oracle数据库的过程,提高工作效率,...

Global site tag (gtag.js) - Google Analytics