PLSQL错误-ORA-00984:此处不允许列
我已经编写了一个PL-SQL块PLSQL错误-ORA-00984:此处不允许列,plsql,insert,Plsql,Insert,我已经编写了一个PL-SQL块 DECLARE SchemaName VARCHAR2(50) :='REQ_SUNIL_5750'; userpassword VARCHAR2(50) :='XYZ'; stmt VARCHAR2(5000); BEGIN stmt :='INSERT INTO ' || SchemaName || '.USER_CREDS VALUES ('|| SchemaName ||', '|| userpassword ||' )
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'的表,它有用户名和密码列
请帮助您必须正确引用字符串值:
stmt :='INSERT INTO ' || SchemaName ||
'.USER_CREDS VALUES ('''|| SchemaName ||''', '''|| userpassword ||''' )';
您必须正确引用字符串值:
stmt :='INSERT INTO ' || SchemaName ||
'.USER_CREDS VALUES ('''|| SchemaName ||''', '''|| userpassword ||''' )';
弗兰克的回答很好,不过我想补充一点
从性能和可重用性的角度来看,executeimmediate语句应该使用bind变量,insert语法应该指定与输入的值相对应的列。Frank的回答很好,不过我要补充一点 从性能和可重用性的角度来看,executeimmediate语句应该使用bind变量,insert语法应该指定与输入的值相对应的列