0

我试图在 Oracle 中插入一个字母数字序列,但它不起作用。

create sequence LIB  start with 1 increment by 1;

select 'LIBR'||to_char(seq_no.nextval,'FM0000099') from dual;

create table addLib(
   USER_ID VARCHAR2(20) PRIMARY KEY,
   NAME VARCHAR2(20),
   PASSWORD VARCHAR2(20),
   FATHER_NAME VARCHAR2(20),
   DOB DATE,
   QUALIFICATION VARCHAR2(20),
   DOJ DATE,
   STATE VARCHAR2(20),
   ADDRESS VARCHAR2(20),
   PINCODE NUMBER(6));

INSERT INTO addLibrarian
values(
  LIB.nextval(LIBR),
  'abc',
  '1234',
  'xyz',
  to_date('19970503','YYYYMMDD'),
  'b.tech',
  to_date('19970308','YYYYMMDD'),
  'tanakpur',
  262309);

我希望它将所有值插入表中,但错误显示值不足

4

2 回答 2

1

有多个问题:

  • LIB.nextval(LIBR)不是有效的语法。

  • 表名无效。

  • VALUES 子句中缺少值address

尝试这个:

create table addLib( -- changed table name
   USER_ID VARCHAR2(20) PRIMARY KEY,
   NAME VARCHAR2(20),
   PASSWORD VARCHAR2(20),
   FATHER_NAME VARCHAR2(20),
   DOB DATE,
   QUALIFICATION VARCHAR2(20),
   DOJ DATE,
   STATE VARCHAR2(20),
   ADDRESS VARCHAR2(20),
   PINCODE NUMBER(6));

INSERT INTO addLib -- changed table name
values(
  'LIBR' || LAPD(LIB.nextval, 7, 0), -- use something like this
  'abc',
  '1234',
  'xyz',
  to_date('19970503','YYYYMMDD'),
  'b.tech',
  to_date('19970308','YYYYMMDD'),
  'tanakpur',
  '<address>', -- add this value
  262309);

干杯!!

于 2019-09-08T03:00:57.430 回答
0

您有 10 列并插入 9 个值:but error show not enough values. 将最后一个正确的值添加到您的插入中。

这种类型的错误可以通过格式化你的代码或使用美化器自动为你做这件事来防止。

于 2019-09-08T00:15:38.277 回答