2016-12-05 50 views
-1

有什麼不對下面的語句:PL/SQL編譯錯誤

DECLARE 
    int_exists INTEGER; 
BEGIN 
    SELECT COUNT(ItemKey) 
    INTO int_exists 
    FROM BIR_TabsForDashboard 
    WHERE ItemKey = 'Position'; 
    IF(int_exists = 0) THEN --doesnt exist 
    EXECUTE IMMEDIATE 'ALTER TABLE BIR_TabsForDashboard ADD Position int NULL'; 
    END IF; 
END; 

我得到這個報告錯誤:

ORA-06550: line 7, column 9: 
PL/SQL: ORA-00904: "ITEMKEY": invalid identifier 
ORA-06550: line 4, column 3: 
PL/SQL: SQL Statement ignored 
06550. 00000 - "line %s, column %s:\n%s" 
*Cause: Usually a PL/SQL compilation error. 

出了什麼問題?當我在另一張桌子上使用它時似乎有用,但是由於某種原因,當我將它用於這個特定的表時,它會出現這個錯誤?

+0

看起來像你的'BIR_TabsForDashboard'表沒有名爲'ITEMKEY'的列。 –

+0

ItemKey不被識別爲列。 –

+0

另外我沒有看到任何阻止它嘗試再次添加'position'列的內容,如果你運行這個命令兩次,所以你的下一個問題將是'ORA-01430:被添加的列已經存在於表格中。 –

回答

1

BIR_TabsForDashboard沒有名爲ItemKey的列。