0

解決策が見つからない問題に遭遇しました。

関数の作成に成功しました。関数名と引数は次のとおりです。

CREATE OR REPLACE FUNCTION app_private.create_user(username citext, email text, email_is_verified boolean, name text, avatar_url text, title text DEFAULT NULL::text, color character varying DEFAULT NULL::character varying, user_role smallint DEFAULT 0, password text DEFAULT NULL::text)
RETURNS app_public.users
....
CREATE FUNCTION

また、関数を実行する権限をロールに付与することに成功しました。AND もコメントを作成しました:

grant execute on function app_private.create_user(username citext, email text, email_is_verified bool, name text, avatar_url text, title text, color varchar(7), user_role smallint, password text) to nine_manager;
GRANT    
comment on function app_private.create_user(username citext, email text, email_is_verified bool, name text, avatar_url text, title text, color varchar(7), user_role smallint, password text) is  
    E'Creates a user account.';
COMMENT

ただし、クエリを実行してテスト ユーザーを作成しようとすると、次のようになります。

SELECT "app_private.create_user"('JS0'::citext, 'test@gmail.com'::text, true::boolean, 'John Smith'::text, 'SY'::text, 'Manager'::text, '#000000'::varchar(7), 5::SMALLINT, 'test'::text);

エラーが発生します:

エラー: 関数 app_private.create_user(citext, text, boolean, text, text, text, character Various, smallint, text) が存在しません
LINE 1: SELECT "app_private.create_user"('SY0'::citext, 'test@gmail ....

クエリとキャストを変更しようとしましたが、失敗しました。ほぼ髪を引っ張ります。

よろしくお願いします。

4

1 に答える 1

1

以下のように select で関数を呼び出す前に、二重のクォートを削除してください

     Select app_private.create_user(....)
      From table;
于 2020-01-28T10:29:46.633 に答える