我有一个问题,我需要替代" 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
答案 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
关键字应该做什么。