Netezza SQL 脚本格式
Posted
技术标签:
【中文标题】Netezza SQL 脚本格式【英文标题】:Netezza SQL script format 【发布时间】: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 在您的环境中可用吗? 【参考方案1】:简短的回答是你不能这样做。您在这里想要做的是在存储过程之外运行 SQL 的过程变体,这不是 Netezza(及其祖先 PostgreSQL)努力遵守的 ANSI 标准的一部分。
这种过程逻辑必须在存储过程中实现。
【讨论】:
以上是关于Netezza SQL 脚本格式的主要内容,如果未能解决你的问题,请参考以下文章
如何安排 sql 脚本并将数据导出到 IBM Netezza 中的特定位置