插入到表使用从其他两个表的数据,使用上的SQLDeveloper

插入到表使用从其他两个表的数据,使用上的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; 
+0

试加'DBP_CLIENTS'到'from' – rzysia

+0

必须表示从哪个表'postcode'要使用 – rzysia

+0

是的,我改变了,但仍然没有去,该死的。事情是,我需要此列数据添加到已经存在的基础上,ID平等的语句行,但它不断加入新行。 –

试试这个:

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;