zoukankan      html  css  js  c++  java
  • ORA-00913错误:PL/SQL: ORA-00913: too many values

    ORA-00913错误


    描写叙述:PL/SQL: ORA-00913: too many values


    目标:编写一个能够循环插入数据的脚本


    操作过程:

    SQL> desc tcustmer
    Name               Null?    Type
     ----------------- -------- ----------------------------
     CUST_CODE         NOT NULL VARCHAR2(10)
     NAME                       VARCHAR2(30)
     CITY                       VARCHAR2(20)
     STATE                      CHAR(2)


    SQL>CREATE SEQUENCE tcustmer_cust 
          INCREMENT BY 1
          START WITH 1
          MAXVALUE 100000000
          CACHE 10000
          NOCYCLE; 
          
    SQL> begin
      2       for i in 1..10 loop
      3         insert into tcustmer
      4         values (tcustmer_cust.nextval,'T','test'||i,'BEIJING','CN');
      5         if mod(i,10)=0 then 
      6         commit;
      7         end if;
      8      end loop;
      9      commit;
     10  end;
     11  /
           insert into tcustmer
                       *
    ERROR at line 3:
    ORA-06550: line 3, column 20:
    PL/SQL: ORA-00913: too many values
    ORA-06550: line 3, column 8:
    PL/SQL: SQL Statement ignored


    检查发现插入的values值,列数超过了tcustmer表的列数
    调整例如以下:
    SQL>begin
         for i in 1..10 loop
           insert into tcustmer
           values ('T'||tcustmer_cust.nextval,'test'||i,'BEIJING','CN');
           if mod(i,10)=0 then 
           commit;
           end if;
        end loop;
        commit;
    end;
    /
    PL/SQL procedure successfully completed.

    总结:

        对于tcustmer_cust.nextval理解错误,创建序列的目的正是消除主键的干扰,所以在使用的时候须要将其放到列值中。



  • 相关阅读:
    服务器 防Dos攻击
    多浏览器 div 半透明
    网站工具收集
    广告平台
    ie6 position:fixed
    数据图 饼图 曲线图
    36个css框架
    css3 特效
    日ip 日pv
    网站 需求分析 收集
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3988015.html
Copyright © 2011-2022 走看看