postgres的替代“fetch_status”

时间:2014-08-22 19:21:21

标签: sql postgresql

我有一个问题,我需要替代" fetch_STATUS"。我必须将下一个代码块从Sql Servers转换为Postgres。

   WHILE (@@fetch_status <> -1)
       BEGIN
        IF (@@fetch_status <> -2)
            BEGIN
            IF (@OrdenSecuencial = '' OR LOWER(@OrdenSecuencial) = 'null' OR @OrdenSecuencial IS NULL)
            BEGIN
                Exec SPUpdateSecuencial @ArbolNodoID, @OrdenSecuencial output
                IF @@ERROR <> 0 Goto DeleteError
            END
        END
        FETCH NEXT FROM CU_ArbolNodo INTO @ArbolNodoID,@Orden, @OrdenSecuencial,@ArbolNodoIdPadre
       END

2 个答案:

答案 0 :(得分:1)

在SQL Server中:

WHILE (@@fetch_status <> -1)  
           BEGIN  
                IF (@@fetch_status <> -2)

在PostgreSQL中:

    WHILE (FOUND) LOOP  
           BEGIN  
                IF (FOUND)   
                  [...]  
                END IF;  
           END;  
       END LOOP;  

我在这里回答了类似的问题:https://stackoverflow.com/a/39966688/6934093

答案 1 :(得分:0)

类似的东西:

for result_row in (select ArbolNodoID, OrdenSecuencial
                   from some_table) 
loop
   if (lower(result_row.OrdenSecuencial) in ('', 'null') or result_row.OrdenSecuencial is null) then 
     perform SPUpdateSecuencial(result_row.ArbolNodoID, result_row.OrdenSecuencial);
   end if;
end loop;

在调用存储过程时,我不知道T-SQL中的output关键字应该做什么。