0
我有這樣的功能:傳遞表名作爲參數傳遞給一個函數創建一個表
CREATE OR REPLACE FUNCTION create_table(tableName varchar)
RETURNS void AS
$BODY$
BEGIN
EXECUTE format('CREATE TABLE IF NOT EXISTS %L(
link_id integer NOT NULL);',tableName);
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
ALTER FUNCTION create_table(varchar)
OWNER TO postgres;
假設我執行這樣的功能:
select * from create_table('me')
我得到這個錯誤:
ERROR: syntax error at or near "'me'"
LINE 1: CREATE TABLE IF NOT EXISTS 'me'(
^
QUERY: CREATE TABLE IF NOT EXISTS 'me'(
link_id integer NOT NULL);
CONTEXT: PL/pgSQL function create_table(character varying) line 4 at EXECUTE statement
********** Error **********
ERROR: syntax error at or near "'me'"
SQL state: 42601
Context: PL/pgSQL function create_table(character varying) line 4 at EXECUTE statement
請讓我知道這個錯誤的含義以及如何解決它? 感謝
你的函數返回void,所以你無法從結果中選擇。另外,我不確定postgresql,但至少有一個其他數據庫引擎,ms sql,函數不允許寫入數據庫。他們只能返回數據。 –