2011-07-08 96 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

申请您的意见,帮助我感谢 –