2015-11-20 41 views
1

执行statment显示我的桌子麻烦这是我用的是执行语句:PostgreSQL的 - 有使用我的功能

​​

但是,当我执行该功能不显示该表到终端。没有产生错误,表格不显示。

我的功能:

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; 
+0

@ Vivek.S选择不会工作,因为它会给错误,指出 “查询有没有目的地的结果数据”。这就是为什么我使用执行,但我不知道为什么当我执行该功能没有表显示。 – Brandon

+0

@ Vivek.S在执行完select后出现错误select“ERROR:syntax error at or near”select“。该函数是一个void函数 – Brandon

+0

正如我已经说过的,您必须显示整个函数并参考http:// www .postgresql.org/docs/9.4/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-NORESULT –

回答

0
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; 

称之为:select * from addToTable_1(2,'User')

+0

reuturns如何知道我们正在返回哪个表?我们只告诉它的名称和编号,但我们不提及哪个表 – Brandon

+0

您想从'table1'获得所有行或只想要插入的行??,BTW'返回*'将返回'table1'中的所有插入的行 –

+0

我希望打印表的所有行和所有列。 – Brandon