沒有的功能,我可以這樣做:PLPGSQL:將參數傳遞給函數的休息,我的引號
DELETE FROM table1
WHERE something='hello'
我與事物的值的行=「你好」被刪除,但一旦我實現的功能,我開始有引號問題。
CREATE OR REPLACE FUNCTION somefunc(varchar)
RETURNS varchar AS $$
BEGIN
DELETE FROM table1
WHERE something='$1';
DELETE FROM table2
WHERE something='$1';
RETURN $1;
END;
$$ LANGUAGE plpgsql;`
似乎沒什麼可行的。我試過了(我在SO或別處看到過的所有變化):
something=$1 <-- says column "hello" doesn't exist (because no quotes are given)
something=''$1''
something='''$1'''
something=''''$1''''
something='''||$1||'''
something=$Q$$1$Q1$ <--- gives syntax error
something=$Q1$ $1 $Q1$
something=$$ $1 $$
something=quote_literal($1)
還有很多其他的變化。我如何解決這個問題?
順便說一句,我正在使用python腳本來運行該功能。這是運行它的線。我也嘗試在這行中加入引號以及無效:
cur.execute("SELECT somefunc(%s);" % (sys.argv[2]))
謝謝!
使用'DELETE FROM表1 WHERE東西= $ 1;'和'SELECT somefunc( '你好')'爲我工作。所以我想它應該與你如何從python調用函數有關(我不知道Python,所以我不知道它可能是什麼) –