0

有一个函数存根(我需要并行化它,部分为它分离输入数据,并使其在来自这些部分的数据不同的计算机上)

-- Function: net_train(text[], integer)

-- DROP FUNCTION net_train(text[], integer);

CREATE OR REPLACE FUNCTION net_train(terms text[], perceptron_id integer)
  RETURNS void AS
$BODY$begin
-- stub
end;$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION net_train(text[], integer)
  OWNER TO postgres;
COMMENT ON FUNCTION net_train(text[], integer) IS 'Comment: Train the Kohonen Neural Network with input data
Params:
 text[] terms - array of terms, on which net is train
 int perceptron_id - ID of perceptron to be added

是否要检查它是否已执行,是否有必要在其中插入一些操作,即我对 2 个感兴趣的问题的回答:

  1. 如何显示来自此功能的一些消息?(希望看到一个例子)
  2. 如果假设,在调用此函数之前/etc/perceptron_id.txt文件(此函数参数具有整数类型,在这种情况下此数字的字符串表示形式)意味着如何从此函数中实现将输入的每个元素添加到已创建的文件中terms text []已经创建了每行一个数组(之前打开了上述文件以添加行)?(希望看到一个例子)
4

1 回答 1

0

我不太确定输出到屏幕是什么意思。这些函数将值返回给 sql 查询执行器,而不是屏幕。但是,您可以发出通知或返回包装程序随后可以显示在屏幕上的结果。就像是:

RAISE NOTICE 'Config file updated';

现在要执行更新文件之类的操作,您可能需要执行以下操作:

COPY perceptron(id) TO '/etc/percetron_id.txt' WITH csv;

否则,您想使用包装函数。

请注意,这类事情不是事务性的。您不能回滚对数据库外部文件的写入,因此我建议让另一个程序提取结果并写入文件,而不是直接在后端这样做。 LISTEN并且NOTIFY非常适合。

于 2013-08-31T08:10:49.020 回答