Как исправить ошибку «ORA-01735: Неверный параметр ALTER TABLE» в Oracle11g - PullRequest
0 голосов
/ 29 января 2019

Я пишу сценарий SQL, но, когда я компилирую и пытаюсь выполнить с SQL * PLUS, эта ошибка показала упомянутую ошибку в начале проблемы.Я вижу другие связанные с этим проблемы, но не могу найти решение.

Это для локального сервера на моем компьютере с Windows 10 ', на котором работает Oracle 11g с SQL * PLUS и XAMPP Server.Я пробовал на другом компьютере с похожими характеристиками, кроме конкретных деталей.

ALTER TABLE ACTORES(
ADD CONSTRAINT pk_actores PRIMARY KEY (Codigo)
);
COMMIT;
ALTER TABLE PERSONAJES(
  ADD CONSTRAINT pk_personajes PRIMARY KEY (Codigo),
  ADD CONSTRAINT fk1_personajes FOREIGN KEY (CodigoActor) REFERENCES ACTORES (Codigo),
  ADD CONSTRAINT fk2_personajes FOREIGN KEY (CodigoSuperior) REFERENCES PERSONAJES (Codigo)
);
COMMIT;
ALTER TABLE NAVES(
  ADD CONSTRAINT pk_naves PRIMARY KEY (Codigo)
);
COMMIT;

1 Ответ

0 голосов
/ 29 января 2019

Слишком много скобок не являются здоровыми .

SQL> create table actores (codigo number);

Table created.

SQL> alter table actores (add constraint pk_actores primary key (codigo));
alter table actores (add constraint pk_actores primary key (codigo))
                    *
ERROR at line 1:
ORA-01735: invalid ALTER TABLE option


SQL> alter table actores add constraint pk_actores primary key (codigo);

Table altered.

SQL>

Другая таблица:

SQL> create table personajes (codigo number, codigoactor number, codigosuperior number);

Table created.

SQL> alter table personajes add constraint pk_personajes primary key (codigo);

Table altered.

SQL> alter table personajes add constraint fk1_personajes foreign key (codigoactor)
  2    references actores (codigo);

Table altered.

SQL> alter table personajes add constraint fk2_personajes foreign key (codigosuperior)
  2    references personajes (codigo);

Table altered.

SQL>

Или, альтернативно, несколько ограничений в одном и том же ALTER TABLE:

SQL> drop table personajes;

Table dropped.

SQL> create table personajes (codigo number, codigoactor number, codigosuperior number);

Table created.

SQL> alter table personajes add
  2    (constraint pk_personajes primary key (codigo),
  3     constraint fk1_personajes foreign key (codigoactor)
  4       references actores (codigo),
  5     constraint fk2_personajes foreign key (codigosuperior)
  6       references personajes (codigo)
  7    );

Table altered.

SQL>

Сделайте то же самое для остальных ваших таблиц / ограничений.

PS О да, вам не нужно COMMIT;ALTER TABLE является DDL и неявно фиксирует любые изменения.

...