0
我在执行存储过程时遇到错误而困惑不解。该错误是“无效的关系运算符”:为什么执行立即命令时出现运行时错误
...
DECLARE
varResult integer;
varFilterString varchar2(1000);
varSampleCode nvarchar2(80);
begin
--debug values
varFilterString := 'auditflag=0' ;
varSampleCode := 's00083';
--this command gives the runtime error:
execute immediate 'select count(*) from samples where samplecode = :samplecode and auditflag = 0 and :filter'
into varResult
using varSampleCode, varFilterString ;
...
PL/SQL是不是我经常做的,我是被它迷惑。这条线有什么问题?
TIA
好了,现在,有了理解 - 但我仍然得到一个运行时错误(ORA-0900无效的SQL语句)当行执行:1和auditflag:从样品,其中samplecode =执行即时“SELECT COUNT(*) = 0和'|| varFilterString into varResult using varSampleCode; – 2014-12-04 09:29:25
如果您手动运行查询,会发生什么情况:'sample sample ='s00083'且auditflag = 0且auditflag = 0'的样本中选择count(*)?我看不到明显的错误,但我现在没有Oracle。 – DoctorMick 2014-12-04 09:46:16
没关系。当我得到错误时,varFilter的实际值是“submittercode ='S'”,它由调用应用程序传递并且非常合法。这可能与嵌入的撇号有关吗? – 2014-12-04 09:54:35