Oracle 插入到选择中(无效标识符错误)
我有一个名为Andamio的表destiny表,其中包含以下列:Oracle 插入到选择中(无效标识符错误),oracle,Oracle,我有一个名为Andamio的表destiny表,其中包含以下列: CODTIPOLOCALIZACION TXTNOMBRE CODLOCALIZACION CODCENTRO CODPUBLICO TXTDESCRIPCION CODCENTRO CODPARKING TXTPARKING 另一个称为Centro的是原点一,有以下列: CODTIPOLOCALIZACION TXTNOMBRE CODLOCALIZACION CODCENTRO CODPUBLICO TXTDESCRIPC
CODTIPOLOCALIZACION
TXTNOMBRE
CODLOCALIZACION
CODCENTRO
CODPUBLICO
TXTDESCRIPCION
CODCENTRO
CODPARKING
TXTPARKING
另一个称为Centro的是原点一,有以下列:
CODTIPOLOCALIZACION
TXTNOMBRE
CODLOCALIZACION
CODCENTRO
CODPUBLICO
TXTDESCRIPCION
CODCENTRO
CODPARKING
TXTPARKING
我想用前两列中相同的值填充所有行:
CODTIPOLOCALIZACION = 2 for all
TXTNOMBRE = "Park" for all
第三列来自一个自动序列:“MySeq_seq”
CODLOCALIZACION = MySeq_seq.NEXTVAL
原始表Centro的最后三列必须相同,但前提是destiny表Andamio中没有其他行的CODCENTRO和CODPUBLICO值相同,等于CODCENTRO和CODPARKING
INSERT INTO ANDAMIO
(CODTIPOLOCALIZACION, TXTNOMBRE, CODLOCALIZACION, CODCENTRO, CODPUBLICO,
TXT_DESCRIPCION)
SELECT '2', 'Park', MySeq_seq.NEXTVAL, Datos.CODCENTRO, Datos.CODPARKING, Datos.TXTPARKING
FROM (SELECT CODCENTRO, CODPARKING, TXTPARKING FROM CENTRO centrop
WHERE (centrop.CODCENTRO <> ANDAMIO.CODCENTRO
AND centrop.CODPARKING <> ANDAMIO.CODPUBLICO)) Datos
我尝试过将这些插入到序列中,有很多变体[使用插入到表值'2','Park',SELECT…]和其他许多变体。。。
我总是得到无效的标识符,因为Oracle声称在表Andamio中没有名为CODPUBLICO的列,但它确实存在
任何帮助都将不胜感激。
谢谢 之所以出现此错误,是因为您在insert语句的select部分引用了andamio列,而没有在from子句中引用andamio表 我怀疑not exists条款会给你你想要的东西,例如:
insert into andamio (codtipolocalizacion,
txtnombre,
codlocalizacion,
codcentro,
codpublico,
txt_descripcion)
select '2',
'Park',
myseq_seq.nextval,
datos.codcentro,
datos.codparking,
datos.txtparking
from (select codcentro, codparking, txtparking
from centro cen
where not exists (select null
from andamio an
where cen.codcentro = an.codcentro
and cen.codparking = an.codpublico) datos;
非常感谢你!!这是我的第一篇帖子,所以我希望我没有重复任何问题,因为我没有发现任何其他类似的问题。没关系*{:-你的问题中有很多信息耶!所以很容易发现。仅供参考,如果你在…选择…,选择部分与插入部分完全分开。你应该能够自己运行它,这是检查错误等的有用方法。