精华内容
下载资源
问答
  • Oracle中某字段已有数据,需要修改字段类型或者字段名
    千次阅读
    2019-09-23 20:37:27

    使用PLSQL工具如果是表里边已经有大量数据,不好清空数据再修改字段或者字段类型,可以用如下方法,亲测有效

    ALTER TABLE 表名 RENAME COLUMN 字段名TO 字段名_N;
    ALTER TABLE 表名 ADD (字段名 字段类型);
    COMMENT ON COLUMN 表名.字段名 IS '该字段名备注';
    UPDATE 表名 SET 字段名=TRIM(字段名_N);
    COMMIT;
    ALTER 表名 DROP COLUMN 字段名_N;
    

    比如:

    ALTER TABLE table RENAME COLUMN ORG_ADDRESS TO ORG_ADDRESS_N;
    ALTER TABLE table ADD (ORG_ADDRESS VARCHAR(30));
    COMMENT ON COLUMN table .ORG_ADDRESS IS '机构ID';
    UPDATE table SET ORG_ADDRESS=TRIM(ORG_ADDRESS_N);
    COMMIT;
    ALTER TABLE table DROP COLUMN ORG_ADDRESS_N;
    
    更多相关内容
  • 在做项目的过程中,发现开发库中某张表的某字段有许多值是空的,而测试库中该字段的值则是有的。  那么,有什么办法能将测试库中该字段的值更新到开发库中呢?  SQL Server中这是比较容易解决的,而Oracle中不...
  • 一,altertable表名modify字段名字段类型(字段长度);如果不好使,就是用第二种方法:二,-- Create tablecreate table TABLE1(col1 number(9),col2 char(20));... --修改成功,因为表中无数据//插入数据INSERT INT...

    一,alter table 表名 modify 字段名 字段类型(字段长度);

    如果不好使,就是用第二种方法:

    二,

    -- Create table

    create table TABLE1

    (

    col1 number(9),

    col2 char(20)

    );

    //尝试修改

    ALTER TABLE TABLE1 MODIFY COL1 NUMBER(10); --修改成功,因为表中无数据

    //插入数据

    INSERT INTO TABLE1 (COL1, COL2) VALUES (1, ‘aaa‘);

    //再次尝试修改

    ALTER TABLE TABLE1 MODIFY COL2 VARCHAR2(20);--修改失败,因为表中已有数据,不允许直接操作

    //先缓存表

    CREATE TABLE T_TABLE1 AS SELECT * FROM TABLE1;

    //删除原表所有数据

    DELETE FROM TABLE1;

    //修改字段

    ALTER TABLE TABLE1 MODIFY COL1 NUMBER(9);--修改成功

    ALTER TABLE TABLE1 MODIFY COL2 VARCHAR2(20);--修改成功

    //插入原数据

    INSERT INTO TABLE1 SELECT * FROM T_TABLE1;

    //删除缓存表

    DROP TABLE T_TABLE1;

    //注意,如果是CHAR类型,不足位数会自动用空格补齐,所以谨慎使用CHAR类型,并可用TRIM()验证是否有符合条件的记录。

    //初始表结构时,SELECT * FROM TABLE1 WHERE COL2 = ‘aaa‘; 是没有数据的,需要SELECT * FROM TABLE1 WHERE TRIM(COL2) = ‘aaa‘;

    oracle数据库表的已经有数据,想修改某个字段的类型,如何修改

    标签:数据库表   varchar2   如何   table   ber   where   class   aaa   into

    本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:http://www.cnblogs.com/zhangxw1992/p/6605438.html

    展开全文
  • (1)在英文版本的ORACLE中默认日期格式为’DD-MON-YY’,例如’01-JAN-...string_value :为字符串直接值(字符串本身)、字符串列(数据库中定义的某个表列)或字符串内部函数的返回值。 date_format为合法的Orac
  • 经常需要oracle中的所有的字段类型更改为另外一个类型,可以考虑利用如下代码:此处的demo为将NVARCHAR2转为VARCHAR2类型并且字段长度保持不变。declarecursor c_tab is select * from user_tab_columns t where t...

    【oracle】批量更改所有表的同一字段类型。经常需要oracle中的所有的字段的类型更改为另外一个类型,可以考虑利用如下代码:此处的demo为将NVARCHAR2转为VARCHAR2类型并且字段长度保持不变。

    declare

    cursor c_tab is select * from user_tab_columns t where t.data_type = 'NVARCHAR2';

    r_tab user_tab_columns%rowtype;

    v_cell varchar2(100);

    sql_str varchar2(1000);

    data_length number;

    begin

    open c_tab;

    loop

    fetch c_tab into r_tab;

    exit when c_tab%notfound;

    v_cell:='';

    data_length:=trunc(r_tab.data_length/2,0);

    sql_str:='select max('||r_tab.column_name||') from '||r_tab.table_name;

    dbms_output.put_line('sql_str: '||sql_str);

    execute immediate sql_str into v_cell;

    commit;

    dbms_output.put_line('value: '||v_cell);

    dbms_output.put_line('table name: '||r_tab.table_name||' column name: '||r_tab.column_name||' length: '||r_tab.data_length);

    --1. 修改原字段名

    sql_str:='alter table '||r_tab.table_name||' rename column '||r_tab.column_name||' to temp_column';

    dbms_output.put_line('sql_str: '||sql_str);

    execute immediate sql_str;

    commit;

    --2. 添加一个和原字段同名的字段

    sql_str:='ALTER TABLE '||r_tab.table_name||' ADD '||r_tab.column_name||' VARCHAR2('||data_length||')';

    dbms_output.put_line('sql_str: '||sql_str);

    execute immediate sql_str;

    commit;

    --3. 将原来的数据更新到新字段中,这是要注意,一定要显示进行数据类型转换

    sql_str:='UPDATE '||r_tab.table_name||' SET '||r_tab.column_name||' = CAST(temp_column AS VARCHAR2('||data_length||'))';

    dbms_output.put_line('sql_str: '||sql_str);

    execute immediate sql_str;

    commit;

    --4. 删除原来的备份字段

    sql_str:='ALTER TABLE '||r_tab.table_name||' DROP COLUMN temp_column';

    dbms_output.put_line('sql_str: '||sql_str);

    execute immediate sql_str;

    commit;

    end loop;

    close c_tab;

    end;

    展开全文
  • 下面的实例是修改所有表中AUDIT_USERNAME字段类型为varchar2(200),可以根据实际需要,对语句进行更改。 declare -- 修改表字段长度的字符串 v_alter_sqlstr varchar2(500); -- 游标 cursor c_result is ...

    下面的实例是修改所有表中AUDIT_USERNAME字段的类型为varchar2(200),可以根据实际需要,对语句进行更改。

    declare
      -- 修改表字段长度的字符串
      v_alter_sqlstr  varchar2(500);
      -- 游标
      cursor c_result is 
      select t_column.TABLE_NAME,
             t_column.column_name,
             t_column.data_length,
             'alter table ' || t_column.table_name || ' modify ' || t_column.column_name ||
             ' varchar2(200)' as alter_sqlstr
        from user_tab_cols t_column where column_name in ('AUDIT_USERNAME');
    
      -- 定义一个与游标一样的变更
      v_result c_result%rowtype;
    begin
      open c_result;
        loop
          fetch c_result into v_result;  
          exit when c_result%notfound;
          v_alter_sqlstr := v_result.alter_sqlstr;
          --dbms_output.put_line(v_alter_sqlstr || ';'); -- 可单独将SQL从output窗口提取出来执行
          
          -- 执行修改
          execute immediate v_alter_sqlstr;   
        end loop;
      close c_result;
    exception
      when others then
        begin
          dbms_output.put_line('异常:' || 'sqlcode:' || sqlcode || ' sqlerrm : ' ||sqlerrm );
        end;  
    end;

     

    展开全文
  • 1.在开发过程经常会遇到表中一个字段数据类型不对,比如说需要保存的数据带小数,但是在最初设计的时候是给的number(10)类型,开始保存是整数的时候满足要求,后来在保存小数的时候会发现自动四舍五入,这样就...
  • 不废话需求:在plsql中更改oracle数据库的info_agency表中的county字段的数据类型 为varchar 长度为255实现:alter TABLE INFO_AGENCY MODIFY (county VARCHAR(255));亲用 则 可用 ...
  • 以下的文章主要描述的是Oracle修改字段类型实际操作方案,我们大家都知道Oracle修改字段类型的实际应用是较为常见的,了解其实际的操作步骤还是有一定好处的,下面就是文章的具体内容的介绍。因为业务需要,修要...
  • 模板: UPDATE t2 SET t2.C_date = (select EventTime from t1 where t1.id = t2.id) where exists (select 1 from t1 where t1.id = t2.id) 实际使用: UPDATE hc_fee_order_item it SET it.fee_charge = ...
  • assets_cards 的id 是 LETTING_DETAILSES 的外键,表里字段serial_number 的数据也以pre_serial_number字段存在 LETTING_DETAILSES,id 与serial_number是一一对应的!由于测试数据库的assets_cards与研发...
  • 1.将该列设置为null,再修改类型(这样会丢失数据)2.最简单的方法:假设你的表名为 tab_targetcreate table test as select * from tab_target whre 1=2;alter table test modify (col_name number(5));insert into ...
  • Oracle数据库的字段类型

    千次阅读 2021-05-08 18:02:12
    LOB有以下3中类型: ,只能存储字符数据 ,保存本地语言字符集数据 ,以二进制信息保存数据 可以指定将一个LOB数据保存在Oracle数据库内,还是指向一个包含次数据的外部文件。 LOB可以参与事务。管理LOB中的数据必须...
  • 上午在测试J2EE项目时,先将oracle中Date类型字段,改成了timestamp,测试完后,再准备改成Date类型时,发现报错了,说是该字段类型不为空时,是不能修改的,意外之意,是该字段中已经有值了,是不能直接...
  • 实际值的长度大于了数据库里某个字段允许的最大长度导致的插入失败问题。 常见的场景是oracle sequence自动增长,系统用到一定的时候,sequence的值不断的增大,系统开始报错。 解决方法:更改字段的长度解决 您...
  • Oracle修改字段类型和长度,oracle修改字段Oracle修改字段名alter table 表名 rename column 旧字段名 to 新字段名Oracle修改字段类型和长度alter table 表名 modify 字段名 数据类型如果是修改数据类型比如由...
  • 最近学习了Oracle修改字段类型方法,留做记录。有一个表名为tb,字段段名为name,数据类型nchar(20)。1、假设字段数据为空,则不管改为什么字段类型,可以直接执行:sql;">alter table tb modify (name nvarchar2...
  • 一、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR...
  • 2、假设字段有数据,执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要用下面方法来解决这个问题: //修改字段名 第一步 alter table 表名 rename column 原字段名name to 新字段名name_bk...
  • oracle中查询张表中的字段名,字段类型,是否为空,字段长度等信息--更改某张表的字段类型长度alter table bill_info modify IDCARD VARCHAR2 (30); --注意字段名(idcard)要大写;--查询张表中的字段名,字段...
  • oracle 查询当前用户所有包含字段,并修改字段的值
  • oracle数据库如何修改字段的数据类型以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!1、首先打开plsql,连接上oracle数据库,假设有一张数据库叫做 ...
  • 第一种方法:update a set (a.a_name)=(select b.b_name from b where a.id=b.id) where exists (select 1 from b where a.id=b.id) 第二种方法:update a set (a.a_name)=(select b.b_name from b where a.id=b.id)...
  • 都说写程序与数据库表字段的顺序没有关系,可是做过实际的项目之后才知道,对于操作数据库的人来说,数据库字段...通过用过Oracle的人都知道,要想在ORACLE中更改表的列名和顺序可是一件很烦琐的事,下面给大...
  • Oracle关联两张批量修改某个字段

    千次阅读 2020-07-12 12:56:33
    有两张A、B,需要关联这两张,对表A某个字段,批量进行更新。 一、业务描述: 现有A、B分别存储用户基本信息,且有主键可以关联。因为数据新旧等关系,A、B的数据不一致(A,标红的内容),比如...
  • oracle修改表某字段长度

    万次阅读 2019-01-02 10:23:24
    1.修改一个列 alter table 表名 modify name varchar2(60); 2.修改多个列 alter table 表名 modify (name varchar(60),name1 varchar2(60));  
  • Oracle 修改字段

    2021-08-12 10:18:51
    将student的sno字段类型修改为varchar2(30) 增加字段 alter table tablename add columnName type; 例如: alter table student add bz varchar2(200); 给学生添加bz列,bz列的类型为varc
  • 直接修改,会提示需要先清空该列的值,在Oracle数据库的表中有数据时,我们想要修改表字段精度,可以按照如下步骤解决:第一步:备份要修改数据create table ACC_TRANSPORTLOAN_BAK as select * from ACC_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 96,436
精华内容 38,574
关键字:

修改表中某个字段类型oracle