【发布时间】:2015-11-04 22:31:54
【问题描述】:
我正在尝试在嵌套表中插入引用,但我不断收到错误 SQL 错误:ORA-00936:缺少表达式
相关类型及表格如下:
create type TP1_PROPRIETE as object (
NO_PROPRIETE number(10),
ADRESSE_PRO varchar2(20),
VILLE_PRO varchar2(20),
NB_PIECES_PRO number(2));
/
create type TP1_CAPROPRO as object (
REF_PROPRIETE_CAPROPRO ref TP1_PROPRIETE);
/
create type TP1_CAPROPRO_NT as table of TP1_CAPROPRO;
/
create type TP1_PARTENAIRE as object (
NOM_COMPLET_PAR varchar2(40));
/
create type TP1_PARTENAIRE_NT as table of TP1_PARTENAIRE;
/
create type TP1_PROPRIETAIRE as object (
NO_PROPRIETAIRE number(10),
NOM_COMPLET_PROR varchar2(40),
REF_PARTENAIRES_PROR TP1_PARTENAIRE_NT,
REF_PROPRIETES_PROR TP1_CAPROPRO_NT);
/
create table TP1_PROPRIETAIRE_T of TP1_PROPRIETAIRE
nested table REF_PARTENAIRES_PROR store as TP1_PARTENAIRE_NT_PROR
nested table REF_PROPRIETES_PROR store as TP1_CAPROPRO_NT_PROR;
/
create table TP1_PROPRIETE_T of TP1_PROPRIETE (
constraint CT_NB_PIECES_NON_NEG check (NB_PIECES_PRO > 0));
/
下面是插页:
insert into TP1_PROPRIETE_T
values(1465798654,
'1170 Victory',
'New York',
5);
/
insert into TP1_PROPRIETAIRE_T
values(9654255475,
'Mike Ross',
TP1_PARTENAIRE_NT(TP1_PARTENAIRE('Andre Ross')),
TP1_CAPROPRO_NT(TP1_CAPROPRO(select ref(p)
from TP1_PROPRIETE_T p
where p.NO_PROPRIETE = 1465798654)));
/
执行最后一次插入时出现以下错误:
Error starting at line 117 in command: insert into TP1_PROPRIETAIRE_T values(9654255475, 'Mike Ross', TP1_PARTENAIRE_NT(TP1_PARTENAIRE('Andre Ross')), TP1_CAPROPRO_NT(TP1_CAPROPRO(select ref(p) from TP1_PROPRIETE_T p where p.NO_PROPRIETE = 1465798654))) Error at Command Line:121 Column:39 Error report: SQL Error: ORA-00936: missing expression 00936. 00000 - "missing expression" *Cause: *Action:
从我从 SO 和其他论坛阅读的内容来看,错误很可能在最后一个 select ref(p) 中的某个地方......但语法对我来说似乎很好,所以我真的不知道为什么我会得到这个错误。感谢您的宝贵时间。
【问题讨论】: