需要将一个ORACLE的存储过程转成MSSQL的
但是现在错误百出。。。
CREATEPROCEDURE G$DataProcess
@p_Year VARCHAR(6),
@v_Lxdm VARCHAR(10),
@v_Qdzh NUMBER(8, 3),
@v_Zdzh NUMBER(8, 3),
@v_Gldw VARCHAR(11)AS
DECLARE c_TrueList CURSOR FOR
SELECT 路线代码, isnull(起点桩号, 0), isnull(止点桩号, 0), 管理单位
FROM G$公路路段单位管理
BEGIN
-- 绿化管理系统的数据处理
OPEN c_TrueList;
WHILE TRUE
BEGIN
= v_Qdzh And 止点桩号 = v_Qdzh And 止点桩号 = v_Qdzh And 止点桩号 <= v_Zdzh;
还有一点需要提出的是,在使用循环语句的时候可以使用while(@@fetchstatus=0),其中@@fetchstatus是系统的全局变量,如果游标取数成功就为零;另外,游标在使用过程中会耗费大量的系统资源,建议使用带有identity列的临时表,这样的效率比较高,虽然大家对游标很熟悉!
|