Execute Immediate : Encountered the symbol

J2H656 picture J2H656 · May 21, 2013 · Viewed 8k times · Source

i am currently getting this error ORA-06550 PLS-00103 Encountered the symbol "VERSION"...

Can any one help me rectify this problem? Much appreciated!

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;

I know i am already setting the parameter to "version" in the where clause. I want to retrieve the parameter and parameter_data from MyTable to check the version and then to continue with the rest of my function.

Thanks in advance.

Answer

haki picture haki · May 21, 2013

you need to escape the character ' like this

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

and your are missing an into after the execute immediate.