Netezza SQL脚本格式

Netezza SQL脚本格式,sql,sql-server,oracle,netezza,Sql,Sql Server,Oracle,Netezza,我想用DECLARE/BEGIN/END编写一个SQL脚本(代码块),然后执行它,但我不希望它是一个存储过程。在oracle或SQL Server中,我可以将文件另存为.SQL文件,然后执行它。在Netezza中,这不起作用。任何显示如何运行SQL代码的正常DECLARE/BEGIN/END块的指针都会有所帮助 例如,在不创建存储过程的情况下,如何在Netezza中执行这段代码。我想在我的电脑上保存文件,并在需要时执行它 declare cursor c1 is SELECT DISTIC

我想用DECLARE/BEGIN/END编写一个SQL脚本(代码块),然后执行它,但我不希望它是一个存储过程。在oracle或SQL Server中,我可以将文件另存为.SQL文件,然后执行它。在Netezza中,这不起作用。任何显示如何运行SQL代码的正常DECLARE/BEGIN/END块的指针都会有所帮助

例如,在不创建存储过程的情况下,如何在Netezza中执行这段代码。我想在我的电脑上保存文件,并在需要时执行它

declare
   cursor c1 is SELECT DISTICT sdogid from POLYGON_SDOGEOM;
   gid number;
   i number; 
begin
     i := 0;
     for r in c1 loop
       begin
        gid:= r.sdo_gid;
        sdo_admin.update_index_fixed('POLYGON', gid, 15, FALSE, FALSE, FALSE);
        exeption when others then
          dbms_output.put_line('error for gid'||to_char(gid)||':  '||SQLERRM );
       end;
       i:=  i + 1;
       if i = 50 then
          commit;
          i:= 0;
       end if;
     endloop;
commit;
end;
/

简而言之,你不能这么做。这里要做的是在存储过程之外运行SQL的过程变体,这不是Netezza(及其前身PostgreSQL)努力遵守的ANSI标准的一部分


这种过程逻辑必须在存储过程中实现

您是否考虑过在Powershell中使用SQLCMD?Powershell在您的环境中可用吗?