PostgreSql-在我的函数中使用执行语句显示我的表时遇到问题
这是我使用的perform语句:PostgreSql-在我的函数中使用执行语句显示我的表时遇到问题,postgresql,Postgresql,这是我使用的perform语句: perform * from table1; 但是,当我执行该函数时,表不会显示在终端上。没有产生任何错误,表格就是不显示 我的职能: CREATE OR replace FUNCTION addToTable (number INTEGER,NAME VARCHAR(15)) RETURNS void AS $$ BEGIN INSERT INTO table1 VALUES ( number ,NAME
perform * from table1;
但是,当我执行该函数时,表不会显示在终端上。没有产生任何错误,表格就是不显示
我的职能:
CREATE OR replace FUNCTION addToTable (number INTEGER,NAME VARCHAR(15))
RETURNS void AS $$
BEGIN
INSERT INTO table1
VALUES (
number
,NAME
);
perform *
FROM table1;
END;$$
LANGUAGE plpgsql;
调用它:select*from addToTable_1(2,'User')
调用它:
select*from addToTable_1(2,'User')
@Vivek.S select不起作用,因为它会给出一个错误,说明“查询没有结果数据的目标”。这就是我使用“执行”的原因,但我不知道为什么在执行函数时没有表格显示。@Vivek.S执行“执行选择”后,我遇到了错误,说“错误:语法错误在或接近”选择“。该函数是一个void函数。正如我已经说过的,您必须显示整个函数并引用@Vivek.S,我已经发布了整个函数。这很简单,我不明白为什么它不显示表,即使它没有产生任何错误。@Vivek.S select不起作用,因为它会给出错误,说“查询没有结果数据的目标”。这就是我使用“执行”的原因,但我不知道为什么在执行函数时没有表格显示。@Vivek.S执行“执行选择”后,我遇到了错误,说“错误:语法错误在或接近”选择“。该函数是一个void函数。正如我已经说过的,您必须显示整个函数并引用@Vivek.S,我已经发布了整个函数。这很简单,我不明白为什么它不显示表,即使它没有产生任何错误。用户如何知道我们返回哪个表?我们只是告诉它名称和编号,但没有提到哪个表。您想从table1
中获取所有行,还是只想插入行??,顺便说一句returning*
将返回table1
中插入的所有行。我希望打印表中的所有行和所有列。谢谢您,它工作正常!是否可以添加多个转盘?例如:将表1、表2、表3的集合返回为$$,如果每个表中的所有列的数据类型和返回列计数都相同,那么我有一个解决方法,如何知道我们返回的是哪个表?我们只是告诉它名称和编号,但没有提到哪个表。您想从table1
中获取所有行,还是只想插入行??,顺便说一句returning*
将返回table1
中插入的所有行。我希望打印表中的所有行和所有列。谢谢您,它工作正常!是否可以添加多个转盘?例如:将表1、表2、表3的集合返回为$$,如果每个表中所有列的数据类型和返回列计数都相同,那么我有一个解决方法
CREATE OR replace FUNCTION addToTable_1 (num INTEGER,nam VARCHAR(15))
RETURNS setof table11 AS $$
BEGIN
EXECUTE format( 'insert into table11 values(%s,%s) ',num,quote_literal(nam));
RETURN QUERY
EXECUTE 'select * from table11';
END;$$
LANGUAGE plpgsql;