2015-04-07 45 views
0

我正在寫一個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平等的語句行,但它不斷加入新行。 –

回答

2

試試這個:

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

代碼運行,但輸出是不是我所期待。我將編輯我的帖子。 –

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; 
相關問題