2015-11-20 21 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