2011-07-08 97 views
0

不允許我寫了一個PLSQL塊PLSQL錯誤 - ORA-00984:列在這裏

DECLARE 
    SchemaName VARCHAR2(50) :='REQ_SUNIL_5750'; 
    userpassword VARCHAR2(50) :='XYZ'; 
    stmt VARCHAR2(5000); 
BEGIN 
    stmt :='INSERT INTO ' || SchemaName || '.USER_CREDS VALUES ('|| SchemaName ||', '|| userpassword ||')'; 
    DBMS_OUTPUT.PUT_LINE(stmt) ; 
    EXECUTE IMMEDIATE stmt; 
    commit; 
END; 

當我執行上述塊我以下饒人, ORA-00984:列這裏不允許

我已經創建的表名爲「REQ_SUNIL_5750.USER_CREDS並具有用戶名和密碼欄 請幫

回答

3

你必須正確地引用您的字符串值:

stmt :='INSERT INTO ' || SchemaName || 
    '.USER_CREDS VALUES ('''|| SchemaName ||''', '''|| userpassword ||''')'; 
+0

完美!!有效。謝謝 –

0

弗蘭克的回答很好,我想補充一點。

從性能和可重用性的角度來看,執行立即語句應該使用綁定變量,而插入語法應該指定與輸入值相對應的列。

+0

申請您的意見,幫助我感謝 –