精华内容
下载资源
问答
  • oracle 实现插入自增

    千次阅读 2016-12-09 22:32:33
    刚使用oracle,它和mysql 好多地方还是有所不同的,简单的问题,都得从头学起。。。。。。 创建一张表,字段如下...实现oracle 自增步,创建个sequence。 create sequence Tempinfo_seq increment by 1 start

    刚使用oracle,它和mysql 好多地方还是有所不同的,简单的问题,都得从头学起。。。。。。
    创建一张表,字段如下:


    oracle不像sql 
    server 有关键字auto_increment直接可插入数据时自增 ,
    实现oracle 自增列第一步,创建一个sequence。
    create sequence Tempinfo_seq increment by 1 start with 1 
    minvalue 1 maxvalue 9999999999999 nocache 
    order;


    第二步,创建一个触发器。

    create or 
    replace trigger userlogin_trigger
    before insert on Tempinfo
    for each 
    row
    begin
          select  Tempinfo_seq.Nextval    into:new.ids from sys.dual 
    ;
    end;


    执行插入查看

    insert into 
    Tempinfo (names,sex) values 
    ('Serein',2188);


    查看当插入一行新数据时,首个字段IDS自动增加。

    当然也事不用创建触发器,直接在插入数据时使用sequence就可以了

    insert into Tempinfo (ids,names,sex) values 
    (Tempinfo_seq.Nextval,'Serein',2188);

     

    展开全文
  • Oracle 实现插入自增

    千次阅读 2018-05-02 12:18:45
    :创建sequencecreate sequence TEST_SEQ --序列名 (TEST_SEQ 为序列名,随便取名)­ increment by 1 --每次增加1 ­ start with 1 --从1开始 ­ nomaxvalue --没有最大值 ­ nocache --没有缓存序列­ 或者...

    一:创建sequence

    create sequence TEST_SEQ  --序列名 (TEST_SEQ 为序列名,随便取名)­ 
    increment by 1 --每次增加1 ­ 
    start with 1 --从1开始 ­ 
    nomaxvalue --没有最大值 ­ 
    nocache --没有缓存序列­ 或者 cache 20 缓存 20 个
    select TEST_SEQ.currval from dual; --查询当前的序列值
    
    
    select TEST_SEQ.nextval from dual; --查询当前自增后的序列值
    

    二:创建表插入

    假设表名为ORCL_TEST ,SQL语句如下:

    INSERT INTO orcl_test VALUES(TEST_SEQ.nextval , '王小明','小明',.....) -- 直接在主键自增列上用TEST_SEQ.nextval 来获取值就行

    三:使用触发器

    和第二种方法任选其一就好

    create or replace trigger test_trigger --(test_trigger) 触发器名称
    before insert 
    on orcl_test  -- (orcl_test)表名称
    for each row  -- for each row : 对表的每一行触发器执行一次
    begin
    select TEST_SEQ.nextval into :new.id from dual; -- (new.id)new 等于新插入的一行, id 是orcl_test 表要实现自增的主键列
    end;
     公司换oracle了,自己写demo练练手,顺便记一下
    展开全文
  • oracle怎么用命令向建好的表中插入一列并使它成为第一列?请说详细点,最好举例说明。  分享| 2012-05-11 14:53li597600208man | 浏览 1686 次 2012-05-11 17:14 提问者采纳...

    oracle怎么用命令向建好的表中插入一列并使它成为第一列?请说详细点,最好举例说明。
     分享| 2012-05-11 14:53li597600208man | 浏览 1686 次
    2012-05-11 17:14
    提问者采纳
    分为两步来实现,首先插入数据,假设表T,有字段col1,col2,col3,需要向前200行的col2插入行数+1的值,并将col2变为第一列,
    插入数据有两种方法:
    1》直接update即:UPDATE T SET T.COL2 = ROWNUM + 1 WHERE ROWNUM <=200;
    2》写一个存储过程
    CREATE OR REPLACE PROCEDURE INS IS
    BEGIN
    FOR I IN 1 .. 200 LOOP
    INSERT INTO T (COL2) VALUES (I);
    END LOOP;
    COMMIT;
    END;
    编译并运行该过程,插入列即完成。

    下面将COL2列调整为第一列:
    方法一:借用临时表,建temp表与t表的表结构、数据完全一致,重建t表,调整字段顺序,再将temp表的数据导回来,即
    CREATE TABLE TEMP AS SELECT * FROM T;
    CREATE TABLE T(
    COL2 TYPE,
    COL1 TYPE,
    COL3 TYPE
    );
    INSERT INTO T
    SELECT COL2,COL1,COL3 FROM TEMP;
    COMMIT;
    DROP TABLE TEMP;
    此方法需要足够的空间、回滚段和时间消耗
    方法2:利用数据库表对象更新字段的序列号
    在当前表用户下使用下面命令查询T对象的编号:
    select OBJECT_name,object_id from all_objects where object_name=’T’;(注意一定要大写)
    SQL> /
    OBJECT_NAME OBJECT_ID


    T 50555
    切换到sys帐号下
    select obj#,col#,name from col$ where obj#=50555;
    OBJ# COL# NAME


     50555          1 COL1
     50555          2 COL2
     50555          3 COL3
    

    Elapsed: 00:00:00.03
    下面可以通过修改这个系统表来实现修改列名与顺序,注意,COL#就是列的顺序。
    UPDATE COLSET COL#=2 WHERE OBJ#=50555 and name=’COL1’;  
    UPDATE COL
    SET COL#=2 WHERE OBJ#=50555 and name=’COL1’;  UPDATE COL
    SET COL#=1 WHERE OBJ#=50555 and name=’COL2’;
    再次查询
    select obj#,col#,name from col$ where obj#=50555;
    OBJ# COL# NAME


     50555          1 COL2
     50555          2 COL1
     50555          2 COL3
    

    提交修改commit ;
    重启服务
    SQL> SHUTDOWN IMMEDIATE
    SQL>STARTUP
    重新登录表用户下,查询SELECT * FROM T;
    COL2 COL1 COL3
    至此列顺序调整成功

    展开全文
  • Oracle一列分成多列

    万次阅读 2015-05-11 23:50:59
    Oracle一列分成多列在Oracle中,我们可以使用listagg(Oracle 11g及以上)将多行合并成中的某一列合并成一列,现在我们的需求是将一列分割成多列。先建立一张表,插入测试数据:CREATE TABLE CELEBRITY( NAME ...

    Oracle将一列分成多列

    在Oracle中,我们可以使用listagg(Oracle 11g及以上)将多行合并成中的某一列合并成一列,现在我们的需求是将一列分割成多列。

    先建立一张表,插入测试数据:

    CREATE TABLE CELEBRITY(
                 NAME VARCHAR2(100)
     );
    
    INSERT INTO CELEBRITY VALUES ('Stephen King');
    INSERT INTO CELEBRITY VALUES ('Tom Hanks');
    INSERT INTO CELEBRITY VALUES ('Christopher Nolan');
    

    查询该表其结构如下:

    NAME
    Stephen King
    Tom Hanks
    Christopher Nolan

    现在将表分割成两列:

    SELECT 
      REGEXP_SUBSTR(name,'^[^ ]*')  first_name,
      REGEXP_SUBSTR(name, '([[:alpha:]]+)$')   middle_name
    FROM CELEBRITY

    其中我们使用到了REGEXP_SUBSTR函数,其使用正则进行匹配,将一列分成两列,其结果如下:

    FIRST_NAMEMIDDLE_NAME
    StephenKing
    TomHanks
    ChristopherNolan

    当然,我们可以使用INSTR函数来进行分割:

    SELECT 
        SUBSTR(NAME, 1, INSTR(NAME, ' ')-1) FIRST_NAME,
        SUBSTR(NAME, INSTR(NAME, ' ')+1) MIDDLE_NAME
    FROM  CELEBRITY

    或者我们这样:

    SELECT
      SUBSTR(NAME, 1, SPACE_POS-1) FIRST_NAME,
      SUBSTR(NAME, SPACE_POS+1) MIDDLE_NAME
    FROM (SELECT NAME,INSTR(NAME, ' ') SPACE_POS
    FROM CELEBRITY)

    以上方法均可以将一列分成两列。

    展开全文
  • 在公司实际的项目开发中,我遇到这样一个需求,需要将oracle数据库某张表的某两列相加形成新的一列
  • 最近在做个项目,测试修改人家的代码,然后用到PreparedStatement把数据插入数据库,死活不成功,报错,无效的索引。 代码是这样的: 1、拼成个sql:insert into tableName(A,B,C,D) values(a,b,?,?) 2、ps...
  • SQL/Oracle一列多行合并为一行

    万次阅读 2015-01-10 09:28:52
    1.SQL 参照:http://www.cnblogs.com/smalleyes/archive/2012/03/08/2385658.html 方法:用户自定义函数 CREATE FUNCTION FN_Merge (@Student NVARCHAR(50)) RETURNS NVARCHAR(50) AS BEGIN DECLARE @C
  • 插入时,问题是B表的数据为空,并没有对应的主键ID,所以应该用序列来生成(创建表的时候必须添加个序列) 表A aa 序列SEQ_A 表B bb 序列SEQ_B,两个表的主键都叫id INSERT INTO A(id,aa) (SELECT SEQ_A....
  • Oracle插入timestamp类型数据

    千次阅读 2018-11-14 08:31:57
    Oracle插入timestamp类型数据
  • ORACLE行转转行

    千次阅读 2018-11-23 17:44:24
    文章目录ORACLE行转列和列转行定义ORACLE-行转列-unpivot数据...列转行:把一列多行数据转换成一行多列数据 ORACLE-行转列-unpivot 数据准备 -- 此表用于表示某人四个季度的收入:用于行转列测试 create table t_t...
  • ORACLE插入新字段方法

    千次阅读 2019-01-31 13:19:43
    ORACLE插入新字段的方法 欢迎使用Markdown编辑器 你好! 这是你第次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的...
  • Oracle 插入insert语句

    万次阅读 2017-10-10 10:19:13
    insert into 表名(1,2,......)values(值1,值2,......); insert into 表名2(1,2,......)select 值1,值2,...... from 表名1; (表2必须存在,1,2,......必须存在) insert into 表2 select
  • 使用这个语句执行的时候报错 ora-01400 说是无法将NULL插入,但是我已经去n除null了。而且我是想插入到MAX_QTY_CHAR这个字段,为什么报错说是TRGT_NAME 字段呢?这个报错信息,我百度了一下说是要创建触发器或者是...
  • 博客链接:oracle 实现插入自增   打开Navicat,定位到自己创建的表。 、 创建序列 其他-序列 填写相应的信息,特别注意:表数据为空的话,开始值从1开始。看清数据库表中的数目,只填写前三个保存自动...
  • oracle插入空值

    千次阅读 2011-10-25 10:57:13
     插入值时可以选择只插入某几个字段,但前提是其他的没有插入值的字段允许空值。格式如下:  insert into goods(goodsId,goodsName,unitPrice) values('2','餐巾','10.23'); 如果想省略goods表后的字段,那么...
  • 大家平时在查询数据的时候,肯定会遇到需要将一列的多个值变成一行; 第一种情况:显示在同一行的同一列上 1、新建一个表test 可以参考:https://blog.csdn.net/heqiang525/article/details/90210326 里面的建表...
  • mysql 如何插入一列自增序号

    万次阅读 2016-11-24 16:50:33
    今天看到朋友问的个问题,“mysql 加一 叫序号 然后序号自增 怎么搞?”,由于他主要用的是oracle,所以不太了解mysql的用法,然后我就告诉他用rownum就好了,但是他说用了这个没得到效果。我想了一下 没啥啊。他...
  • [img]http://dl.iteye.com/upload/attachment/0078/5681/9307b725-eaa3-3be2-96ec-59fdef05039a.png[/img] 就这一列
  • oracle插入时如何插入uuId

    千次阅读 2011-12-12 17:37:32
    SQL> select sys_guid() from dual ; SYS_GUID() SQL> select sys_guid() from dual ; SYS_GUID() -------------------------------- E29F02A1D08A4E919C2CA8D0E4AEF830 ...SQL> insert into pppp(id) va
  • Oracle插入1000条限制

    千次阅读 2019-03-27 17:11:06
    使用批量插入解决 如: 次插800条 while(rowList.size()>0){ List<Map<String, Object>> list1 = StringUtil.getBatchList(rowList, 800); service.importBankAcc(list1); } public static...
  • 将表按分区,每增加新的值,表就会自动新增个分区?是用函数来写还是存储过程
  • Oracle行转次经历

    千次阅读 2018-07-17 14:16:47
    新项目表结构作了调整,每个党员每一年条记录,12个月份的数据变成了字段,主键变成由年份和党员id构成,表结构如下: 月统计得分和季统计得分的数据存储是有格式要求的,如下: 由于需要数据迁移,我把...
  • 在项目中向Oracle插入数据时报错::ORA-01461: 仅能绑定要插入 LONG 的 LONG 值。 这是因为我的Oracle数据库字符集为32位编码的字符集,所能存储的汉字大大缩减。   解决办法: 执行“select userenv('...
  • Oracle数据库中给表增加一列: alter table 表名 add 列名 类型 default 值 ;  案列:alter table ASSP_VOUCHER_MODEL_STAMP add MrDai number default 10000 not null;  Oracle数据库只供删除表的一列...
  • 插入数据时获取自增ID,使用序列,需要在插入数据时,自增字段插入序列下个值
  • oracle个表数据插入到另个表

    千次阅读 2020-01-07 15:29:18
    插入部分表数据,示:将table_name_new表中五个字段对应插入到table_name表中,where后面是条件判断可去掉(where forgid = '0',插入指定行数据) insert into table_name t (t.val1,t.val2,t.val3,t.val4,t....
  • Oracle 追加个编号

    2017-05-01 07:53:47
    Oracle数据库的一张表,已有历史数据大约 4000 条,现要为该表追加个新的编号(比如叫 Code),该的值要求是“年月日时分秒”+3位随机数。 比如在 2017-05-01 15:50:33 这时刻生成的编号可能是...
  • Oracle一插入多条数据

    千次阅读 2020-01-17 16:16:07
    Oracle次插入多条数据 oracle不像mysql那样可以在values后面添加多个插入的值,mysql具体操作 mysql插入多条数据 -- mysql插入多行代码 insert into CB_...oracle插入多条数据的方法 1.采用union all拼接...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,929
精华内容 45,971
关键字:

oracle插入一列