【发布时间】: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