Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Npgsql未找到具有XML参数的函数,而是查找文本_.net_Postgresql_Npgsql - Fatal编程技术网

.net Npgsql未找到具有XML参数的函数,而是查找文本

.net Npgsql未找到具有XML参数的函数,而是查找文本,.net,postgresql,npgsql,.net,Postgresql,Npgsql,我有一个名为test_xml_func的Postgres SQL函数,它接受xml类型的参数。在.NET中使用Npgsql调用此函数时,我收到一个错误,表示text\u xml\u func(text)不存在。有没有一种方法可以让它在不必将NpgsqlParameter的NpgsqlDbType属性设置为XML的情况下查找XML函数 我正在使用NPGSQLv3.0.3和Postgres9.5Beta1 博士后功能: CREATE OR REPLACE FUNCTION test_xml_func

我有一个名为test_xml_func的Postgres SQL函数,它接受xml类型的参数。在.NET中使用Npgsql调用此函数时,我收到一个错误,表示text\u xml\u func(text)不存在。有没有一种方法可以让它在不必将NpgsqlParameter的NpgsqlDbType属性设置为XML的情况下查找XML函数

我正在使用NPGSQLv3.0.3和Postgres9.5Beta1

博士后功能:

CREATE OR REPLACE FUNCTION test_xml_func(_xml XML)
RETURNS BOOLEAN AS 
$$
    SELECT TRUE;
$$ LANGUAGE SQL;
.NET呼叫

Using connection As New NpgsqlConnection(ConnectionString)
    Using cmd As New NpgsqlCommand("test_xml_func", connection) With {.CommandType = CommandType.StoredProcedure}
        cmd.Parameters.Add(New NpgsqlParameter("_xml", "<ITEMS><ITEM><VALUE>1</VALUE></ITEM></ITEMS>"))
        connection.Open()
        System.Console.WriteLine(cmd.ExecuteScalar())
    End Using
End Using
将连接用作新的NpgsqlConnection(ConnectionString)
使用cmd作为新的NpgsqlCommand(“test_xml_func”,connection)和{.CommandType=CommandType.StoredProcedure}
cmd.Parameters.Add(新的NpgsqlParameter(“\uXML”,“1”))
connection.Open()
System.Console.WriteLine(cmd.ExecuteScalar())
终端使用
终端使用

否,必须将NpgsqlDbType参数的NpgsqlDbType设置为XML。你有什么特别的理由想避免这种情况吗


当NpgsqlDbType和DbType未在NpgsqlParameter上设置时,Npgsql默认为推断PostgreSQL类型的类型。在字符串值的情况下,这是一个PostgreSQL文本,这就是为什么您会得到一个错误,即未定义text_xml_func(text)。

我们正在从MSSQL转换到Postgres的过程中,我们有一系列DB调用,它们将xml作为文本传递进来,如上所示。找到它们并将它们更改为将NpgsqlDbType设置为XML将是一件痛苦的事情,所以我们希望有另一种方法。看起来我们唯一的选择是这个,或者在使用xpath之前将它们作为文本并转换为XML。谢谢你的回复!