#vb.net #npgsql
#vb.net #npgsql
Вопрос:
У меня есть рабочая функция Postgres, которая принимает многострочный текстовый параметр «_list» и использует regexp_split_to_table(TRIM(_list), 'rn')
для создания таблицы с каждой строкой текста в виде строки.
Теперь я хочу вызвать это из VB.NET считывание значения из текстовой области. Я использую pgCmd.Parameters.AddWithValue("_list", NpgsqlDbType.Text, my_list)
.
Однако VB заменяет разрывы строк на vbLf, и моя функция Postgres видит его как одну строку. Как мне обойти это?
Ответ №1:
regex_split_to_table
похоже, что регулярное выражение используется в качестве средства сопоставления с разделением..
.. поэтому просто сделайте это regexp_split_to_table(TRIM(_list), 'r?n')
(добавил знак вопроса после r
) так, чтобы он соответствовал 0 или 1 возврату каретки, за которым следует перевод строки при разделении. Таким образом, не имеет значения, предоставляет ли ваша программа или любая другая программа CRLF или LF..
Ответ №2:
Использование pgCmd.Parameters.AddWithValue("_list", NpgsqlDbType.Text, my_list.Replace(vbLf, vbCrLf))
решило проблему