>데이터 베이스 >MySQL 튜토리얼 >ORA-00913错误:PL/SQL: ORA-00913: too many values

ORA-00913错误:PL/SQL: ORA-00913: too many values

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-06-07 16:49:592283검색

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理解错误,创建序列的目的正是消除主键的干扰,所以在使用的时候需要将其放到列值中。

Linux-6-64下安装Oracle 12C笔记

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

本文永久更新链接地址:

linux

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.