表名作為PostgreSQL函數參數我想在Postgres函數中傳遞一個表名作為參數。我試過這個代碼:CREATE OR REPLACE FUNCTION some_f(param character varying) RETURNS integer
AS $$
BEGIN
IF EXISTS (select * from quote_ident($1) where quote_ident($1).id=1) THEN
return 1;
END IF;
return 0;
END;$$ LANGUAGE plpgsql;select some_f('table_name');我得到了這個:ERROR: syntax error at or near "."LINE 4: ...elect * from quote_ident($1) where quote_ident($1).id=1)...
^********** Error **********ERROR: syntax error at or near "."這是我在更改為這個時所犯的錯誤select * from quote_ident($1) tab where tab.id=1:ERROR: column tab.id does not exist
LINE 1: ...T EXISTS (select * from quote_ident($1) tab where tab.id...很可能,quote_ident($1)有效,因為如果沒有where quote_ident($1).id=1我得到了1,這意味著某些東西被選中了。為什么第一個quote_ident($1)工作和第二次不是同時進行嗎?這怎么能解決呢?
表名作為PostgreSQL函數參數
MMTTMM
2019-05-31 13:11:44