2012-08-01 53 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)) ...