将多行文本参数从 VB.NET 传递给 npgsql

Passing multi-line text parameter from VB.NET to npgsql

我有一个工作的 Postgres 函数,它采用多行文本参数“_list”并使用 regexp_split_to_table(TRIM(_list), '\r\n') 创建一个 table,每行文本作为一行。

我现在想从 VB.NET 读取文本区域的值来调用它。我正在使用 pgCmd.Parameters.AddWithValue("_list", NpgsqlDbType.Text, my_list).

但是 VB 正在用 vbLF 替换换行符,而我的 Postgres 函数将其视为单行。我该如何解决这个问题?

正在使用 pgCmd.Parameters.AddWithValue("_list", NpgsqlDbType.Text, my_list.Replace(vbLf, vbCrLf)) 已解决问题

regex_split_to_table 看起来采用正则表达式作为其拆分匹配器..

..所以只需将其设为regexp_split_to_table(TRIM(_list), '\r?\n')(在\r后添加一个问号),以便在拆分时匹配0或1个回车returns后跟一个换行符。这样,您的程序或任何其他程序是否提供 CRLF 或 LF 都没有关系..