проблема с недопустимым идентификатором в oracle livesql

#oracle #ddl

#Oracle #ddl

Вопрос:

у меня есть довольно простой код, просто чтобы посмотреть, работает ли мое значение, которое я вставляю в столбец, но я застрял с проблемой недопустимого идентификатора

 create table person(
 ID_NO varchar(15),
 datelend DATE,
 constraint person_name_PK primary key(ID_NO));

 insert into person(ID_NO,datelend) values('sahil','2018-01-25');

 select* from person;
 

это показывает, что «ID_NO» является недопустимым идентификатором, и это имя уже используется существующим объектом.

Комментарии:

1. Вероятно, вы уже создали person таблицу в своем сеансе LiveSQL, нажмите кнопку сброса, чтобы избавиться от всего и начать заново. Помните, что '2018-01-25' это не дата, вы всегда должны использовать явный формат даты to_date('2018-08-25','yyyy-mm-dd') , который будет работать

2. привет, что-нибудь о том, почему «ID_NO» является недопустимым идентификатором?

3. Предположительно, таблица, которую вы уже создали с именем person , не содержит столбца с именем id_no . Вы можете проверить с помощью desc person

Ответ №1:

Ваш код работает (хотя вы, вероятно, хотите вставить DATE в свой оператор литерал, а не строковый литерал INSERT ):

 create table person(
  ID_NO varchar(15),
  datelend DATE,
  constraint person_name_PK primary key(ID_NO)
);

insert into person(ID_NO,datelend) values ('sahil', DATE '2018-01-25');

select * from person;
 

Если он не работает в LiveSQL, то вы, вероятно, уже создали person таблицу без столбца. Вы можете нажать на кнопку «Действия» на листе SQL и нажать «Просмотреть сеанс», чтобы увидеть, какие команды вы уже выполнили, и, если вам нужно, вы можете нажать «Сбросить сеанс», чтобы очистить все, а затем вы можете запустить свой скрипт и построить таблицу без каких-либо существующих объектов длясоздайте конфликт.