如何在 SQL 中打印到控制台?
How to print to console in SQL?
我正在使用 PostgreSQL
我想向控制台打印一条消息。
如果我使用 plpythonu
我使用 plpy.notice
如果我使用 plpgsql
我使用 raise notice
但是当函数是纯函数时如何打印 SQL
?
使用 SELECT 'string'
对我没有帮助,因为它在列中打印字符串,如果消息位于代码的中间,它不会显示它。
我想要 raise notice
/ plpy.notice
之类的东西 SQL
.
CREATE OR REPLACE FUNCTION A()
RETURNS VOID AS
$BODY$
how do i print 'hello world' here?
$BODY$
LANGUAGE sql VOLATILE
如果是 plpgsql
我会这样做:
CREATE OR REPLACE FUNCTION A()
RETURNS VOID AS
$BODY$
Raise Notice 'hello world'
$BODY$
LANGUAGE plpgsql VOLATILE
我正在寻找 LANGUAGE SQL
中的等效项
你只能select它在SQL
db=# CREATE FUNCTION b() RETURNS text AS
$BODY$
select 'Hello there'::text;
$BODY$
LANGUAGE sql VOLATILE;
CREATE FUNCTION
db=# select b()::text;
b
-------------
Hello there
(1 row)
在普通的 SQL 中有 NOTIFY
命令。该命令将 payload 发送到 channel。 channel 和 payload 可以是任何字符串。
CREATE OR REPLACE FUNCTION A() RETURNS void AS $BODY$
NOTIFY msg, 'hello world';
$BODY$ LANGUAGE sql;
然后:
LISTEN msg;
SELECT A();
Asynchronous notification "msg" with payload "hello world" received from server process with PID 3275.
UNLISTEN msg;
该消息还将包含一些有关其来源的信息。如果你真的只想要字符串(有效负载),那么你必须从完整的字符串中解析出来。
我正在使用 PostgreSQL
我想向控制台打印一条消息。
如果我使用 plpythonu
我使用 plpy.notice
如果我使用 plpgsql
我使用 raise notice
但是当函数是纯函数时如何打印 SQL
?
使用 SELECT 'string'
对我没有帮助,因为它在列中打印字符串,如果消息位于代码的中间,它不会显示它。
我想要 raise notice
/ plpy.notice
之类的东西 SQL
.
CREATE OR REPLACE FUNCTION A()
RETURNS VOID AS
$BODY$
how do i print 'hello world' here?
$BODY$
LANGUAGE sql VOLATILE
如果是 plpgsql
我会这样做:
CREATE OR REPLACE FUNCTION A()
RETURNS VOID AS
$BODY$
Raise Notice 'hello world'
$BODY$
LANGUAGE plpgsql VOLATILE
我正在寻找 LANGUAGE SQL
你只能select它在SQL
db=# CREATE FUNCTION b() RETURNS text AS
$BODY$
select 'Hello there'::text;
$BODY$
LANGUAGE sql VOLATILE;
CREATE FUNCTION
db=# select b()::text;
b
-------------
Hello there
(1 row)
在普通的 SQL 中有 NOTIFY
命令。该命令将 payload 发送到 channel。 channel 和 payload 可以是任何字符串。
CREATE OR REPLACE FUNCTION A() RETURNS void AS $BODY$
NOTIFY msg, 'hello world';
$BODY$ LANGUAGE sql;
然后:
LISTEN msg;
SELECT A();
Asynchronous notification "msg" with payload "hello world" received from server process with PID 3275.
UNLISTEN msg;
该消息还将包含一些有关其来源的信息。如果你真的只想要字符串(有效负载),那么你必须从完整的字符串中解析出来。