簡體   English   中英

如何修復Oracle11g中的“ ORA-01735:無效的ALTER TABLE選項”錯誤

[英]How to fix “ORA-01735: Invalid ALTER TABLE option” error in Oracle11g

我正在編碼一個SQL腳本,但是,當我編譯並嘗試使用SQL * PLUS執行時,此顯示在問題開始時提到了錯誤。 我看到了其他相關問題,但找不到解決方案。

這用於Windows 10'計算機中的本地服務器,該服務器運行帶有SQL * PLUS和XAMPP Server的Oracle 11g。 我在另一台具有類似規格的計算機上嘗試過,但具體細節除外。

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;

太多括號是不健康的

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,並且隱式提交任何更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM