oracle修改已存在数据的字段类型】的更多相关文章

第一次使用oracle数据库,在通过Navicat premium工具修改字段类型时,发现报“ORA-01439: column to be modified must be empty to change datatype ”的错误,百度后才发现oracle修改字段类型比较麻烦. 总体修改过程可分为以下几个步骤: (1)新增一个临时字段 alter table "athletes_age" add "tmp_col" VARCHAR2(255);       //…
创建测试表 create table t_person( id varchar2(200) primary key, name varchar2(200), address varchar2(200) ); 向测试表中插入数据 insert into t_person(id,name,address) values(sys_guid(),'zhangsan','beijing'); insert into t_person(id,name,address) values(sys_guid(),'…
在oracle中,如果已经存在的数据的某些列,假如要更换类型的话,有的时候是比较麻烦的, 会出现:ORA-01439: column to be modified must be empty to change datatype 修改方法为: Kzwr alter table test add tmp_col varchar2(100);-- 添加临时列 update test set tmp_col = C_EDR_CTNT ; --将目标字段中数据加入到临时列中 update web_app…
在oracle中,如何修改已存在数据列名的数据类型 一般人直接在表结构设计这里修改,这里只适合修改列没有数据,可修改 那么,如何这个列是有数据,是怎么修改的呢? 直接修改会Oracle错误 第一步:先创建一个新列名,名字跟修改的名称一样(多了个1),数据类型改成要修改的(如varchar(100)) 第二步:将原列名的数据备份到新列名中,执行赋值操作 --将旧列名的数据迁到新列名--- update TMS_DELIVERY_ITEM_BOX set ITEM_BILL1=ITEM_BILL 第…
C# 默认是不能修改已装箱了的值类型中字段的值,但是可以通过 值类型实现指定的接口来改变 首先定义一个接口 interface IChange { void Change(int a, int b); } 在定义值类型的类,实现以上接口 struct Point : IChange { private int x; private int y; public Point(int x,int y) { this.x = x; this.y = y; } /// <summary> /// 自己定…
Mysql修改已有数据的字符集 问题 在生产环境中跑了很久,发现MysqlClient连接的字符集是默认的latin1,我们一直以为都是utf8,造成这样的误解,是因为在内网环境中,我们是源码编译的Mysql,并指定了编译选项字符集位utf8,这时Mysql的是默认字符接都是utf8. 而在外网,我们是二进制包安装,默认是latin1,虽然在my.conf中指定了[client] [mysql] [mysqld] 中字符集为utf8,这并不能保证MysqlClient连接时的字符集为utf8.所…
http://www.cnblogs.com/LDaqiang/articles/1157998.html由于需求变动,现要将一个类型NUMBER(8,2)的字段类型改为 char.大体思路如下:      将要更改类型的字段名改名以备份,然后添加一个与要更改类型的字段名同名的字段(原字段已经改名),然后更新数据,最后删除改名备份的字段. 以下操作在 Oracle 10.2.0.1.0 中通过. 1./*修改原字段名*/ALTER TABLE 表名 RENAME COLUMN 字段名 TO 字段…
今天在做数据抽取的时候,发现有一张业务表数据量达到了5000W,所以就想将此表改为分区表.分区表的有点如下: 1.改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度.2.增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用:3.维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可:4.均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能. 第一步:首先对要在线重定义的表自行验证,看该表是否可以重定义,如果不可以则会提示错误信息 SQL>…
Oracle常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 最大长度2000 bytes VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 Byte/char,默认情况用的是Byte NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过…
MySQL的修改和删除数据表字段 写在前面: 数据库存在的意义:数据存储和数据管理. 数据库:行(数据),列(字段) 注意:本页是解决了列的字段问题.下一页是解决行的数据问题. 注意,所有的字段名,最好都用``包裹! 1.修改表名 2.增加表的字段(id,name,age这种就是字段) 3.修改表的字段(重命名字段+修改字段的类型和约束) 4.删除表的字段 1. 修改表名 -- 修改表名,格式:ALTER TABLE 旧表名 RENAME AS 新表名; -- 修改表名,格式:ALTER TAB…
Oracle恢复已删除的数据,主要有两种方法:SCN和时间戳. 一.通过SCN恢复删除且已提交的数据 1.获得当前数据库的scn号 select current_scn from v$database; (切换到sys用户或system用户查询) 查询到的scn号为:1499223 2.查询当前scn号之前的scn select * from 表名 as of scn 1499220; (确定删除的数据是否存在,如果存在,则恢复数据:如果不是,则继续缩小scn号) 3.恢复删除且已提交的数据 f…
若向hive表添加字段,通常会使用下面这种语句 alter table default.testparquet add columns(c8 string); 但是对于分区表来说, 1. 若新建的分区在添加字段之前,新加的字段不会被加到已有分区中. 2. 若新建的分区在添加字段之后,新的分区会继承表的字段. 这种情况会导致的问题就是在查询的时候老的分区虽然能查到新加的字段,但是新加字段的值为null. 解决方案: 1. 使用类似这样的语句:alter table default.testparq…
mongoimport:指定字段的类型,防止将数字型的字符串导入成数值类型 1.正常模式导入 mongoimport -d idpad_zl -c trs_action_dzwl_zm --type csv --columnsHaveTypes --fields "_id.string(),netbar_wacode.string(),start_time.string(),imsi.string(),imsi_text.string(),imei.string(),device_longitu…
转自: http://www.maomao365.com/?p=6738 摘要: 下文将从数据库的数据类型着手,剖析在sqlserver数据库中可以存储二进制数据的数据类型,如下所示: mssql sqlserver常见数据类型如下:</span> bit:整型,数据范围[0,1,null],用于存取布尔值 tinyint:整型,数据范围[0~256) smallint:整型,数据范围[-215~215)int:整型,数据范围[-231~231) decimal:精确数值型 ,例:decima…
--查看历史数据 select * from test1 as of timestamp to_timestamp('2018-12-23 14:41:00', 'yyyy-mm-dd hh24:mi:ss'); --开启可移动数据命令 alter table test1 enable row movement; --查看flashback功能是否开启 为no表示未开启 select open_mode,log_mode,flashback_on from v$database; --正式回滚数…
DataTable dt_PI = new DataTable(); //克隆表结构 dt_PI = ds.Tables[].Clone(); dt_PI.Columns["FLTFullPercentage"].DataType = typeof(String);//修改[满柜百分比]列的数据类型 ].Rows) { DataRow rowNew = dt_PI.NewRow(); ].Columns) { if (col.ColumnName == "FLTFullPer…
pl/sql 修改包下存储过程步骤: 假定有如下过程:pkg_ypgl_query.PROC_KCZQUERY; 1. pl/sql 右侧objects面板中选择Package bodies>PKG_YPGL_QUERY; 2. 单击右键>edit>工具自动打开一个修改主页面; 3. 于主页面左侧面板中选择要修改的过程; 4. 修改过程. 5. F8或者执行一次,过程语法无错误,修改OK.…
--修改有数据oracle字段类型 从number转为varchar--例:修改ta_sp_org_invoice表中RESCUE_PHONE字段类型,从number转为varchar --step1:增加一个原类型缓冲区字段alter table ta_sp_org_invoice add permile_temp number;--step2:将要修改的字段的值存入缓冲区,同时将要修改的字段制空update ta_sp_org_invoice set permile_temp=RESCUE_…
目前Oracle 数据库大概有26个字段类型,大体分为六类,分别是字符串类型.数字数据类型.日期时间数据类型.大型对象(LOB)数据类型.RAW和LONG RAW数据类型.ROWID和UROWID数据类型.当然Oracle还提供用户自定义的数据类型,但在我这篇不做讨论.=============== 字符串类型===============Charchar数据类型存储固定长度的字符值.一个CHAR数据类型可以包括1到2000个字符.如果对CHAR没有明确地说明长度,它的默认长度则设置为1. 如果…
简介 目前Oracle 数据库大概有26个字段类型,大体分为六类,分别是字符串类型.数字数据类型.日期时间数据类型.大型对象(LOB)数据类型.RAW和LONG RAW数据类型.ROWID和UROWID数据类型.当然Oracle还提供用户自定义的数据类型,但这里不做讨论. 字符串类型 CHAR CHAR数据类型存储固定长度的字符值.一个CHAR数据类型可以包括1到2000个字符.如果对CHAR没有明确地说明长度,它的默认长度则设置为1. 如果对某个CHAR类型变量赋值,其长度小于规定的长度,那么…
PHPCMS V9帮助中心 数据结构 phpcms v9 数据... phpcms v9 数据... PHPSSO 数据库结... phpcms v9 数据表结构 在线版 PHPCMS V9 数据结构 (2010-12-28) 表 1 : v9_admin 管理员表 字段 类型 Null 默认 额外 注释 userid mediumint(6) unsigned PK   auto_increment 用户id username varchar(20) YES     用户名 password…
1.在开发过程中经常会遇到表中的某一个字段数据类型不对,比如说需要保存的数据带小数,但是在最初设计的时候是给的number(10)类型,开始保存是整数的时候满足要求,后来在保存小数的时候 会发现自动四舍五入,这样就造成数据不准确,但是直接修改表中的字段类型为number(10,2)会提示已有数据不能修改,这时候也有很多种解决的办法,举一个最简单的方法,就是给表格在增加一个 字段,允许为空,然后把要修改列中的值全部复制到新列里面,然后把旧列置空,然后修改旧列的字段类型,修改完把数据在复制过来,删掉…
创建视图的时候,因为表太多,里面一些字段类型不一样,PL/SQL报错,为‘表达式必须具有对应表达式相同的数据类型’,发现后,一个字段的类型为CLOB和VARCHAR2(4000)两种,将CLOB进行修改 将CLOB字段修改成varchar2(4000)字段 第一步:把原字段换个名字,此条的sql是把C_009700010003换成C_0097000100031 alter table 表名 rename column  当前字段 to 备用字段; alter table T_00970001 r…
分享自己一些常用的sql语句给大家 偶尔我们需要在已有表,并且有数据的情况下,修改其某个字段的类型或缩短他的长度,但是因为表中有数据,所以不可以直接修改,需要换个思路. //建立测试表,可跳过(善于应用各种系统功能组合,来实现日常工作需要,是每个合格程序员必备的) -- Create table create table TABLE1 (   col1 number(9),   col2 char(20) ); //尝试修改 ALTER TABLE TABLE1 MODIFY COL1 NUMB…
在一次做开发的时候,遇到需要将数据表的字段类型由number改成varchar,可是该字段又有值, 用  alter table t-name modify cname newType;会报错. 话说,当时在网上没找到合适的解决办法,很苦恼! 今天在博客园看到解决这个问题的办法,很nice,分享! 当要修改的字段有值的时候,不能更改字段类型: 两种解决办法: 1.   > 新增一列,列类型与要修改的新类型一致: >将旧列的值赋给新列(需强制类型转换): > update tname se…
转载:https://www.cnblogs.com/Grand-Jon/p/7389427.html 一.Oracle中的varchar2类型 我们在Oracle数据库存储的字符数据一般是用VARCHAR2.VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型,不同场景的最大长度不同. 在Oracle Database中,VARCHAR2 字段类型,最大值为4000:PL/SQL中 VARCHAR2 变量类型,最大字节长度为3276…
Oracle使用SQL语句修改字段类型 1.如果表中没有数据 Sql代码 1 2 3 alter table 表名 modify (字段名1 类型,字段名2 类型,字段名3 类型.....)  alter table student modify(id number(4));---将student表中id字段改为number,长度4   alter table student modify(id number(4),studentName varchar2(100)); 2.如果原表中存在数据…
在oracle修改user表字段name类型时遇到报错:“ORA-01439:要更改数据类型,则要修改的列必须为空”,是因为要修改字段的新类型和原来的类型不兼容. 如果要修改的字段数据为空时,则不会报这种类型的错误,可以进行字段类型的修改. alter table user modify (name varchar2(20)); 要修改字段的新类型和原来的类型不兼容时,可以通过如下方式解决该问题: 1.修改原字段名name为临时字段name_new: alter table user renam…
有一个表名为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:要更改数据类型,则要修改的列必须为空”,这时…
标准SQL修改字段类型和长度语句: ALTER TABLE tableName modify column columnName 类型;例如Mysql的修改字段类型语句:alter table test modify column name varchar(255); Oracle修改字段类型和长度语句:ALTER TABLE tableName modify(columnName 类型);例如alter table test modify(name varchar(255));…