【问题标题】:Netezza SQL script formatNetezza SQL 脚本格式
【发布时间】:2015-05-20 17:24:01
【问题描述】:

我想用 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;
/

【问题讨论】:

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

标签: sql sql-server oracle netezza


【解决方案1】:

简短的回答是你不能这样做。您在这里想要做的是在存储过程之外运行 SQL 的过程变体,这不是 Netezza(及其祖先 PostgreSQL)努力遵守的 ANSI 标准的一部分。

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

【讨论】:

    猜你喜欢
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多