2012-08-01 54 views
0

我尝试在Oracle在我的存储过程中的动态游标的概念,我用的语句如下:错误开放换using语句

OPEN d for 
      'select datetime,'|| v_paramname ||',tt from datasource where '|| v_vrformula ||' and feederid=cast('||v_meterid||',varchar2(6)) and datetime>=:v_timeperiod' using v_timeperiod; 
    LOOP 
    FETCH d INTO V_dateval,V_value,V_dataid; 
    EXIT WHEN d%NOTFOUND; 
    INSERT INTO pseb.validationfailureaudit (MeterID,RuleID,DataType,Value,Dataid, TimePeriod,EditedValue,EditedTimePeriod,paramname) VALUES (V_meterid,V_ruleid,V_datatype,V_value ,V_dataid,V_dateval,null, null,V_paramname); 
    V_length:=V_length+1; 
    END LOOP; 
CLOSE d; 

我m到处缺少关键字错误开放声明。

请帮我解决这个问题。

+2

而不是打开游标,输出到屏幕上要动态构建最终的SQL语句。你可能会有一个语法错误,导致你的'Missing keyword'错误。 – Ollie 2012-08-01 08:00:11

回答

0

你似乎缺少为AS子句中的CAST

... and feederid=cast('||v_meterid||' AS varchar2(6)) ...