PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

la fonction n'existe pas, mais je pense vraiment qu'elle existe

Eh bien, quelque chose est étrange. J'ai fait :

[email protected]@[local] =# create function abuse_resolve(inout __abuse_id bigint,
                               out __msg text) returns record language plpgsql as
                               $$ begin __msg = 'ok'; end; $$;
CREATE FUNCTION
[email protected]@[local] =# \df abuse_resolve
List of functions
-[ RECORD 1 ]-------+----------------------------------------
Schema              | so9679418
Name                | abuse_resolve
Result data type    | record
Argument data types | INOUT __abuse_id bigint, OUT __msg text
Type                | normal

[email protected]@[local] =# select abuse_resolve('30'::bigint);
-[ RECORD 1 ]-+--------
abuse_resolve | (30,ok)

Avez-vous eu d'autres problèmes avec cette base de données ? Pouvez-vous le copier avec dump/restore et essayer ceci sur la nouvelle copie ? Qualifier explicitement le nom de la fonction avec le schéma "public" aide-t-il ? Quelle version de PostgreSQL utilisez-vous ?

mise à jour :fonction sql Cela a également bien fonctionné pour moi en utilisant :

create function abuse_resolve(inout __abuse_id bigint, out __msg text)
  language sql as $$ select $1, 'ok'::text $$;