我目前收到此错误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以检查版本,然后继续我的其余功能。
提前致谢。
答案 0 :(得分:3)
你需要像这样逃避角色'
sql_stmnt := 'SELECT parameter, parameter_data into lsparameter, lsparameterdata FROM MyTable WHERE parameter = ''version''';
并且您在执行立即执行后错过了一个。
答案 1 :(得分:2)
根本不需要动态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;
答案 2 :(得分:1)
你可以试试这个:
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;