Не удалось вставить значение в таблицу (Oracle) - PullRequest
0 голосов
/ 15 октября 2019

Я получаю сообщение об ошибке - ORA-01722: недопустимый номер при попытке вставить значения в мою таблицу.

Я использую оракул. Первоначальная проблема заключалась в том, что первичным ключом для хранилища таблиц был внешний ключ для работника таблицы, и наоборот, поэтому я не мог вставить какие-либо значения. Поэтому я изменил внешний ключ в хранилище таблиц на NULL и попробовал, но все равно не работал

create table Store(
Store_ID integer primary key,
Warehouse_ID integer not null,
Employee_ID integer,
Owner_name varchar2 (15) not null,
Store_hours varchar (10) not null,
Store_name varchar (20) not null,
Store_Address varchar2 (35) not null,
  CONSTRAINT Warehouse_FK_Store
  FOREIGN KEY (Warehouse_ID)
  REFERENCES Warehouse (Warehouse_ID),
  CONSTRAINT Employee_FK_Store
  FOREIGN KEY (Employee_ID)
  REFERENCES Employee (Employee_ID));

insert into Store
values (101, 1001, NULL , 'Grant Campbell', '7:00am - 10:00pm', 'Papakura', '331-345 Great South Road, Takanini, Auckland, 2110');

Ответы [ 3 ]

1 голос
/ 15 октября 2019

Ваш запрос верный, но ваш размер Store_Address varchar слишком мал, а размер вашего запроса больше, чем, т.е. вам нужно изменить размер Store_Address varchar (35) на Store_Address varchar (255)

   create table Store(
    Store_ID integer primary key,
    Warehouse_ID integer not null,
    Employee_ID integer,
    Owner_name varchar2 (15) not null,
    Store_hours varchar (10) not null,
    Store_name varchar (20) not null,
    Store_Address varchar2 (255) not null,
      CONSTRAINT Warehouse_FK_Store
      FOREIGN KEY (Warehouse_ID)
      REFERENCES Warehouse (Warehouse_ID),
      CONSTRAINT Employee_FK_Store
      FOREIGN KEY (Employee_ID)
      REFERENCES Employee (Employee_ID));

    insert into Store
    values (101, 1001, NULL , 'Grant Campbell', '7:00am - 10:00pm', 'Papakura', '331-345 Great South Road, Takanini, Auckland, 2110');
0 голосов
/ 15 октября 2019

При заданном значении '331-345 Великая Южная Дорога, Таканини, Окленд, 2110331-345 Великая Южная Дорога, Таканини, Окленд, 2110' размер равен 100. Где соответствующий размер созданного столбца 'Store_Address' равен 35.

Это будет работать, если вы увеличите размер столбца 'Store_Address'.

0 голосов
/ 15 октября 2019

У вас проблемы с длиной полей. И вы должны включить вставляемые столбцы.

Я не знаю, какие типы относятся к ссылочным ключам, но они должны быть одинаковыми.

Это работает:

create table Stores (
    Store_ID integer primary key,
    Warehouse_ID integer not null,
    Employee_ID integer,
    Owner_name varchar2 (255) not null,
    Store_hours varchar2(255) not null,
    Store_name varchar2(255) not null,
    Store_Address varchar2(255) not null
    --  CONSTRAINT Warehouse_FK_Store  FOREIGN KEY (Warehouse_ID) REFERENCES Warehouse (Warehouse_ID),
    --  CONSTRAINT Employee_FK_Store FOREIGN KEY (Employee_ID) REFERENCES Employee (Employee_ID)    
);

insert into Stores (Store_ID, Warehouse_ID, Employee_ID, Owner_name, Store_Hours, Store_name, Store_Address)
    values (101, 1001, NULL , 'Grant Campbell', '7:00am - 10:00pm', 'Papakura', '331-345 Great South Road, Takanini, Auckland, 2110');

См. здесь .

Здесь - версия с ограничениями внешнего ключа.

...