Оба приведенных вами примера верны (кроме этой лишней запятой в конце второго оператора CREATE TABLE
). Это примеры SQL * Plus, но - так как SQL Developer эмулирует это хорошо, я считаю, что они тоже должны работать там отлично.
Первый:
SQL> create table loan
2 (
3 barcode number (20) not null ,
4 borrowernumber number (7) ,
5 loancurrentdate date ,
6 loanreturndate date ,
7 loanreserveorder number (20) ,
8 paymentdate date ,
9 borrower_borrowernumber number not null
10 );
Table created.
SQL> alter table loan add constraint loan_pk primary key (barcode) ;
Table altered.
Второй:
SQL> drop table loan;
Table dropped.
SQL> create table loan
2 (
3 loanno INT not null,
4 loandate date not null,
5 loanreturndate date null,
6 loanreserve number (20) null,
7 paymentdate date null
8 );
Table created.
SQL> alter table loan add constraint loan_pk primary key (loanno) ;
Table altered.
SQL>
Что именно вы имеете в виду, говоря «Не можете создать таблицу, а затем изменить ее ...» после первого CREATE TABLE
? Любая ошибка? Если да, то какой?
«ORA-00942: таблица или представление не существует», вероятно, повышается на ALTER TABLE
, поскольку вы не можете изменить это, если его не существует (но загадка в том, почему вы не можете его создать).
«ORA-00904:: неверный идентификатор» означает, что вы использовали имя столбца, которого нет в таблице, например
SQL> alter table loan modify xxx number;
alter table loan modify xxx number
*
ERROR at line 1:
ORA-00904: "XXX": invalid identifier
Если возможно, сделайте то же самое, что и я, - скопируйте / вставьте сеанс SQL * Plus, чтобы мы могли увидеть, что вы сделали и как отреагировал Oracle.