创建asistenti表时触发ORA-00903无效表名错误,求助排查
排查ORA-00903: invalid table name错误的原因
Hey there, let's break down why you're running into this error with your table creation statement:
- 核心语法错误:外键定义里多了多余的
to关键字
在Oracle的外键声明语法中,REFERENCES后面直接跟上被引用的表名即可,不需要额外加to。你写的references to medici(marca)是不符合语法规范的,这才触发了错误提示。
修正后的完整SQL语句如下:
create table asistenti ( marca Number(2) not null, nume Varchar2(30), prenume Varchar2(30), experienta Varchar2(30), marca_medic Number(2) not null, primary key (marca), foreign key(marca_medic) references medici(marca) );
额外补充几个后续排查的小要点(这次问题不在这,但可以帮你避坑):
- 确认
medici表的拼写完全正确:你提到已经创建过该表,但还是要留意大小写或拼写失误(Oracle默认不区分大小写,但如果创建时用引号强制区分则需注意)。 - 确认
asistenti不是Oracle保留关键字:这个表名是合法的,不属于系统保留字,所以无需担心命名冲突问题。
内容的提问来源于stack exchange,提问作者Ciprian Pop




