gpt4 book ai didi

postgresql - 我想让我的 pl/pgsql 脚本输出到屏幕上

转载 作者:行者123 更新时间:2023-11-29 11:39:16 26 4
gpt4 key购买 nike

我有以下脚本,我希望从中输出到屏幕。

CREATE OR REPLACE FUNCTION randomnametest() RETURNS integer AS $$
DECLARE
rec RECORD;
BEGIN
FOR rec IN SELECT * FROM my_table LOOP
SELECT levenshtein('mystring',lower('rec.Name')) ORDER BY levenshtein;
END LOOP;

RETURN 1;
END;
$$ LANGUAGE plpgsql;

我想在表中获取 levenshein() 函数的输出以及 rec.Name。我该怎么做?此外,它还给我一个关于我调用 levenshtein() 的行的错误,说我应该改用 perform。

最佳答案

假设您要插入 函数的返回值和rec.name 到不同的表中。这是您可以执行的操作(首先创建new_tab)-

SELECT levenshtein('mystring',lower(rec.Name)) AS L_val;
INSERT INTO new_tab (L_val, rec.name);

上面的用法如下所示。

我想,您可以使用 RAISE INFO 'This is %', rec.name; 来查看值。

CREATE OR REPLACE FUNCTION randomnametest() RETURNS integer AS $$

DECLARE
rec RECORD;
BEGIN
FOR rec IN SELECT * FROM my_table LOOP
SELECT levenshtein('mystring',lower(rec.Name))
AS L_val;

RAISE INFO '% - %', L_val, rec.name;
END LOOP;

RETURN 1;
END;
$$ LANGUAGE plpgsql;

注意- FROM 子句是可选的,以防您从像 netxval(sequence_name) 这样的选择中的函数中选择并且不这样做有任何实际表可供选择,例如 SELECT nextval(sequence_name) AS next_value;,在 Oracle 术语中它将是 SELECT sequence_name.nextval FROM dual;SELECT function() FROM dual;. postgreSQL 中没有dual

我还认为 ORDER BY 不是必需的,因为我的假设是您的函数 levenshtein() 很可能在任何时间点只返回一个值,因此没有足够的数据来ORDER

关于postgresql - 我想让我的 pl/pgsql 脚本输出到屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11890138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com