NZSQL/CODE - 如何在 Netezza 中使用 PRINT
NZSQL/CODE - How to use PRINT in Netezza
我们正在为 Netezza SQL 使用 Aginity Workbench,我想知道是否有人知道 NZSQL 中用于 TSQL [=17= 的等效项] 功能?
当有人试图执行不应该重写数据的查询时,我们使用它来打印错误,而我找到的唯一解决方案是使用 netezza 命令行“-t”。
提前致谢!
您可以使用 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)=>
我在顶部提供的 link 中记录了此行为。
我们正在为 Netezza SQL 使用 Aginity Workbench,我想知道是否有人知道 NZSQL 中用于 TSQL [=17= 的等效项] 功能?
当有人试图执行不应该重写数据的查询时,我们使用它来打印错误,而我找到的唯一解决方案是使用 netezza 命令行“-t”。
提前致谢!
您可以使用 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)=>
我在顶部提供的 link 中记录了此行为。