#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 и нажать «Просмотреть сеанс», чтобы увидеть, какие команды вы уже выполнили, и, если вам нужно, вы можете нажать «Сбросить сеанс», чтобы очистить все, а затем вы можете запустить свой скрипт и построить таблицу без каких-либо существующих объектов длясоздайте конфликт.