2016-07-05 9 views
2

私はpgsqlを使い慣れていません。私は、pgsqlの関数パラメータとしてテーブル名を使いたいだけです。テーブル名はPostgreSQLの関数パラメータ/ ERROR:カラム ".."は存在しません

CREATE OR REPLACE FUNCTION user_test_table_name_as_input (table_name text) 
RETURNS VOID 
LANGUAGE plpgsql 
AS $$ 
DECLARE 
    i int; 
BEGIN 
    FOR i IN EXECUTE 'SELECT DISTINCT category FROM' || quote_ident(table_name) 
    LOOP 
    RAISE NOTICE '%', i; 
    END LOOP; 
END 
$$ 

私はこの機能を使用しようと...

SELECT user_test_table_name_as_input (table_name); 

...私はこのエラーを取得:

ERROR: column "table_name" does not exist 
SQL state: 42703 

私はTable name as a PostgreSQL function parameterなどの関連スレッドを読んで、しかし、他の提案されたソリューション(連結、フォーマット())、私のために、どちらも動作しません。何か案が?

+0

ストアドプロシージャの呼び出しの引数として 'table_name'を試してください。 (引用符をテキストとして) –

+0

ありがとう。私は関数を使用するときに引用符を忘れてしまったことに気付きました。 – dijea

答えて

1

'table_name'には、ストアドプロシージャの呼び出しの引数として引用符が必要です。これはテキストです。

関連する問題