create or replace
Procedure PRO_Get_NowData
(
P_FCID VARCHAR2,
o_cur out sys_refcursor
)
AS
V_Command varchar2(2000);
BEGIN
V_Command:=
'SELECT * FROM (select sum(ACTIVEPOWER) AS ACTIVEPOWER,avg(WindSpeed) AS WindSpeed,avg(Temperature) AS Temperature,avg(WindDirection) AS WindDirection from TB_'
||P_FCID||'_FJ_'||substr(sysdate,1,4 )||
' where RECORDTIME in(select RECORDTIME from TB_'
||P_FCID||'_FJ_'||substr(sysdate,1,4 )||
' group by RECORDTIME having count(*)>0 ) group by RECORDTIME ORDER By RECORDTIME DESC) Where ROWNUM = 1';
OPEN o_cur FOR v_command;
END PRO_Get_NowData;
在sqldeveloper中编写的存储过程,jsp调用时提示缺少右括号,怎么调试都找不到错误。
Procedure PRO_Get_NowData
(
P_FCID VARCHAR2,
o_cur out sys_refcursor
)
AS
V_Command varchar2(2000);
BEGIN
V_Command:=
'SELECT * FROM (select sum(ACTIVEPOWER) AS ACTIVEPOWER,avg(WindSpeed) AS WindSpeed,avg(Temperature) AS Temperature,avg(WindDirection) AS WindDirection from TB_'
||P_FCID||'_FJ_'||substr(sysdate,1,4 )||
' where RECORDTIME in(select RECORDTIME from TB_'
||P_FCID||'_FJ_'||substr(sysdate,1,4 )||
' group by RECORDTIME having count(*)>0 ) group by RECORDTIME ORDER By RECORDTIME DESC) Where ROWNUM = 1';
OPEN o_cur FOR v_command;
END PRO_Get_NowData;
在sqldeveloper中编写的存储过程,jsp调用时提示缺少右括号,怎么调试都找不到错误。
-----加个空格看看。
RECORDTIME in (select
syadate是日期类型啊。substr需要的是字符类型呀,你的存储过程编译通过了没有呢?
SQL> select substr(sysdate,1,4) from dual;SUBSTR(SYSDATE,1,4)
-------------------
19-1
(substr(to_char(sysdate,'yyyy/mm/dd hh24:mi:ss'),1,4 ))
(select sum(ACTIVEPOWER) AS ACTIVEPOWER,
avg(WindSpeed) AS WindSpeed,
avg(Temperature) AS Temperature,
avg(WindDirection) AS WindDirection
from TB_P_FCID_FJ_2010
where RECORDTIME in
(select RECORDTIME from TB_P_FCID_FJ_2010 group by RECORDTIME having count(*)>0)
group by RECORDTIME ---这里分了组,但是你的选择列中没有这个列啊。你在plsql下执行成功?
ORDER By RECORDTIME DESC
) Where ROWNUM = 1
-------你的语句有问题啊。。