将多行文本参数从 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 都没有关系..
我有一个工作的 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 都没有关系..