立即执行:遇到符号



我目前得到这个错误ORA-06550 PLS-00103遇到符号"VERSION"…

有人能帮我解决这个问题吗?感谢!
declare
sql_stmnt VARCHAR(200);
lsparameter varchar(50);
lsparameterdata varchar(20);
begin
 sql_stmnt := 'SELECT parameter, parameter_data into lsparameter, lsparameterdata FROM MyTable WHERE parameter = 'version'';
 EXECUTE IMMEDIATE sql_stmnt;
end;

我知道我已经在where子句中将参数设置为"version"。我想从MyTable中检索参数和parameter_data以检查版本,然后继续执行函数的其余部分。

您需要像这样转义字符'

 sql_stmnt := 'SELECT parameter, parameter_data into lsparameter, lsparameterdata FROM MyTable WHERE parameter = ''version''';

您根本不需要动态SQL,您可以这样做:

declare
    lsparameter varchar(50);
    lsparameterdata varchar(20);
begin
    select parameter, parameter_data
    into lsparameter, lsparameterdata
    from MyTable
    where parameter = 'version';
    ... -- rest of your function
end;

你可以试试:

declare  
 sql_stmnt VARCHAR2(200);
 lsparameter VARCHAR2(50);  
 lsparameterdata VARCHAR2(20);
begin
 sql_stmnt := q'{SELECT parameter, parameter_data into :lsparameter, :lsparameterdata FROM MyTable WHERE parameter = 'version'}'; 
 EXECUTE IMMEDIATE sql_stmnt into lsparameter,lsparameterdata;
end;

相关内容

  • 没有找到相关文章

最新更新