À l'aide de npgsql pour appeler une fonction qui prend un caractère en paramètre

Je suis en train d'utiliser Npgsql pour appeler une fonction (procédure stockée) qui prend un CARACTÈRE en paramètre, mais il ne fonctionne pas. Si je déclare la même fonction sans paramètres, ou avec un paramètre de type ENTIER, j'obtiens le résultat que je veux. Quand je déclarer le paramètre en tant que PERSONNAGE, il s'arrête de fonctionner. Quel est le problème?

Voici le code de ma fonction:

CREATE OR REPLACE FUNCTION testrefcursor1(in xxx character varying(10)) RETURNS SETOF refcursor AS
$$
DECLARE 
  ref1 refcursor;
  ref2 refcursor;
BEGIN

OPEN ref1 FOR 
 SELECT * FROM accounts;
RETURN NEXT ref1;

OPEN ref2 FOR 
 SELECT * FROM accounts;
RETURN NEXT ref2;

RETURN;
END;
$$
LANGUAGE plpgsql;

Et voici le code C# que j'utilise:

var connection = new Npgsql.NpgsqlConnection(connectionString.ConnectionString);

connection.Open();
var trans = connection.BeginTransaction();

var command = new Npgsql.NpgsqlCommand("testrefcursor1", connection);
command.CommandType = System.Data.CommandType.StoredProcedure;

var parameter = command.CreateParameter();
parameter.ParameterName = "xxx";
parameter.DbType = System.Data.DbType.String;
parameter.Value = "10";
command.Parameters.Add(parameter);

var da = new Npgsql.NpgsqlDataAdapter(command);
var ds = new System.Data.DataSet();
da.Fill(ds);

trans.Commit();
connection.Close();

J'ai déjà essayé de déclarer le paramètre en tant que personnage, PERSONNAGE(10), le CARACTÈRE VARIABLE et le CARACTÈRE VARIABLE(10)...

EDIT: je n'ai pas de message d'erreur, mais au lieu d'obtenir le résultat escompté, je reçois un jeu de résultats vide avec une seule colonne qui a le même nom que la fonction, je suis en train de l'appeler.

...quel est le problème avec Postgres?

OriginalL'auteur Antoine Aubry | 2009-08-19