SQL: не может создать таблицу - PullRequest
0 голосов
/ 28 апреля 2018

Я делаю следующее:

use oracle developer

create table loan 
(
        barcode                 number (20) not null ,
        borrowernumber          number (7) ,
        loancurrentdate         date ,
        loanreturndate          date ,
        loanreserveorder        number (20) ,
        paymentdate             date ,
        borrower_borrowernumber number not null
);

alter table loan add constraint loan_pk primary key (barcode) ;

Невозможно создать таблицу, затем изменить ее ...

create table loan 
(
    loanno                  INT not null,
    loandate                date not null,
    loanreturndate          date null,
    loanreserve             number (20) null,
    paymentdate             date null,
);

alter table loan add constraint loan_pk primary key (loanno) ;

Я получаю следующую ошибку. Почему я это получаю?

Сообщение об ошибке
Ошибка SQL: ORA-00942: таблица или представление не существует
00942. 00000 - «таблица или представление не существует»

Также отображается «неверный идентификатор»

Сообщение об ошибке:

Ошибка SQL: ORA-00904:: неверный идентификатор
00904. 00000 - «% s: неверный идентификатор»

Или я должен удалить дату платежа?


После удаления неправильной запятой создана таблица.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

Это должно работать

drop table loan;
create table loan 
(
    loanno                  INT not null,
    loandate                date not null,
    loanreturndate          date null,
    loanreserve             number (20) null,
    paymentdate             date null
);
0 голосов
/ 28 апреля 2018

Оба приведенных вами примера верны (кроме этой лишней запятой в конце второго оператора 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...