(急)存储过程的问题.请高手们指教了
niwh 2004-12-16 03:50:32 我要编写一个存储过程,然后通过JSP来调用。
先写一个最简单存储过程
CREATE PROCEDURE G$DataProcess
@p_Year VARCHAR(6) AS
select * from alldata
GO
可以执行
但是如果再加个游标,调用就会出错。
如下:
CREATE PROCEDURE G$DataProcess
@p_Year VARCHAR(6) AS
DECLARE @v_Lxdm VARCHAR(10),
@v_Qdzh NUMERIC(8, 3),
@v_Zdzh NUMERIC(8, 3),
@v_Gldw VARCHAR(11)
DECLARE @c_TrueList CURSOR
Set @c_TrueList = CURSOR FOR
SELECT 路线代码, isnull(起点桩号, 0), isnull(止点桩号, 0), 管理单位
FROM G$公路路段单位管理
BEGIN
-- 绿化管理系统的数据处理
OPEN @c_TrueList
WHILE (@@FETCH_STATUS = 0)
BEGIN
FETCH NEXT FROM @c_TrueList INTO @v_Lxdm, @v_Qdzh, @v_Zdzh, @v_Gldw
END
CLOSE @c_TrueList
DEALLOCATE @c_TrueList
END
出错信息如下:
错误类别:
java.sql.SQLException
错误定位:
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
com.microsoft.jdbc.base.BasePreparedStatement.executeQuery(Unknown Source)
_data._dataprocess__jsp._jspService(_dataprocess__jsp.java:229)
com.caucho.jsp.JavaPage.service(JavaPage.java:75)
com.caucho.jsp.Page.subservice(Page.java:506)
com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
com.caucho.server.http.Invocation.service(Invocation.java:315)
com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)
com.caucho.server.TcpConnection.run(TcpConnection.java:139)
java.lang.Thread.run(Thread.java:536)
第2个例子从语法角度应该没错。至少MSSQL语法校验通过了。我参照工具书里面的类似例子也没发现问题。