插入到表使用从其他两个表的数据,使用上的SQLDeveloper
问题描述:
我正在写一个PL/SQL程序PL/SQL,我需要插入到表的基础上,两列的两个型动物的表平等。插入到表使用从其他两个表的数据,使用上的SQLDeveloper
这里是我的代码:
create or replace PROCEDURE insertSomething
IS
BEGIN
INSERT INTO MYDBP (ZIP)
SELECT POSTCODE
FROM ZIPDBP
WHERE ZIPDBP.ZIP = OTHERDBP.ZIP;
COMMIT;
END;
我收到一个错误说OTHERDBP.ZIP是无效的标识符。什么是问题?
编辑:
为了得到我的预期,我需要两个表ID之间的另一平等语句的输出,但同样我又得到无效的标识符,此时为DBP_CLIENTS.ID。下面是代码
INSERT INTO DBP_CLIENTS (POSTCODE)
SELECT POSTCODE
FROM DBP_POSTCODE, HELENS_DATA
WHERE DBP_POSTCODE.LOCALITY = HELENS_DATA.SUBURB
AND DBP_POSTCODE.STATE = 'NSW'
AND DBP_CLIENTS.ID = HELENS_DATA.ID;
COMMIT;
答
试试这个:
create or replace PROCEDURE insertSomething
IS
BEGIN
INSERT INTO MYDBP (ZIP)
SELECT POSTCODE
FROM ZIPDBP, OTHERDBP
WHERE ZIPDBP.ZIP = OTHERDBP.ZIP;
COMMIT;
END;
你必须otherdbp添加到from
部分。而你并不需要在过程声明使用()
。 此外,insert
是PL/SQL中被保留的话,那么程序必须有不同的名称
+0
代码运行,但输出是不是我所期待。我将编辑我的帖子。 –
答
你必须在添加DBP_CLIENTS FROM子句:
INSERT INTO DBP_CLIENTS (POSTCODE)
SELECT POSTCODE
FROM DBP_POSTCODE, HELENS_DATA, DBP_CLIENTS
WHERE DBP_POSTCODE.LOCALITY = HELENS_DATA.SUBURB
AND DBP_CLIENTS.ID = HELENS_DATA.ID
AND DBP_POSTCODE.STATE = 'NSW';
COMMIT;
试加'DBP_CLIENTS'到'from' – rzysia
必须表示从哪个表'postcode'要使用 – rzysia
是的,我改变了,但仍然没有去,该死的。事情是,我需要此列数据添加到已经存在的基础上,ID平等的语句行,但它不断加入新行。 –