NZSQL / CODE - 如何在Netezza中使用PRINT

时间:2015-02-12 21:16:55

标签: sql netezza

我们正在使用Aginity Workbench进行Netezza SQL,我想知道是否有人知道在NZSQL中使用等同于TSQL" PRINT"功能?

当有人试图执行一个在不应该重写数据的查询时,我们用它来打印错误,而我找到的唯一解决方案是使用netezza命令行" -t"。

提前致谢!

1 个答案:

答案 0 :(得分:2)

您可以使用RAISE执行此操作,如记录here

以下是一个例子:

CREATE OR REPLACE PROCEDURE RAISE_DEMO()
RETURNS VARCHAR(ANY)
EXECUTE AS OWNER
LANGUAGE NZPLSQL AS
BEGIN_PROC
DECLARE
MYNAME varchar;
BEGIN
MYNAME := 'SCOTT';

RAISE NOTICE 'Hello, %', MYNAME;

END;
END_PROC;

TESTDB.ADMIN(ADMIN)=> call raise_demo();
NOTICE:  Hello, SCOTT
 RAISE_DEMO
------------

(1 row)

如果您将NOTICE更改为EXCEPTION,则执行将停止。

CREATE OR REPLACE PROCEDURE RAISE_DEMO()
RETURNS VARCHAR(ANY)
EXECUTE AS OWNER
LANGUAGE NZPLSQL AS
BEGIN_PROC
DECLARE
MYNAME varchar;
BEGIN
MYNAME := 'SCOTT';

RAISE EXCEPTION 'Hello, %, this is an exception', MYNAME;

RAISE NOTICE 'You should not see this message';

END;
END_PROC;

TESTDB.ADMIN(ADMIN)=>  call raise_demo();
ERROR:  Hello, SCOTT, this is an exception
TESTDB.ADMIN(ADMIN)=>

此行为记录在我在顶部提供的链接中。