Как заменить двойные кавычки в преобразовании производного столбца?

У меня есть файл. Я загружаю данные из плоского файла в исходную таблицу с помощью ssis.And один из столбцов имеет следующие значения:

<Somecol1 =""1"" col1values= ""223,567,890,653"">

Мне нужен следующий вывод столбца:

<Somecol1 ="1" col1values= "223,567,890,653">

Я попытался заменить в производном столбце.

REPLACE( COLA, "\"","\")

но это не работает.

Ответ 1

Я думаю, что вы почти получили правильное выражение, за исключением дополнительной косой черты в заменяющей строке. Вот выражения, которые могут сработать для вас.

Выражение # 1: Удаляет все двойные кавычки в заданной строке.

REPLACE(COLA, "\"", "")

Выражение # 2: Заменяет все двойные вхождения двойных кавычек с одиночным появлением двойных кавычек.

REPLACE(COLA, "\"\"", "\"")

Вот пример, демонстрирующий выражение # 1:

  • Снимок экрана # 1 показывает файл CSV, который будет считаться пакетом.
  • Снимок экрана # 2 показывает Derived Column transformation внутри Data Flow task, который заменит все двойные кавычки в первом столбце с именем Заголовок.
  • Снимок экрана # 3 показывает данные в таблице после выполнения пакета. Обратите внимание, что двойные кавычки во втором столбце оставлены так, как есть, потому что для их замены нет выражения.

Вот пример, демонстрирующий выражение # 2:

  • В этом примере будет использоваться тот же файл, что и в примере 1. См. снимок экрана # 1.
  • Снимок экрана # 4 показывает Derived Column transformation внутри Data Flow task, который заменит все двойные вхождения двойных кавычек с одиночным появлением двойные кавычки в первом столбце с именем Заголовок.
  • Снимок экрана # 5 показывает данные в таблице после выполнения пакета. Обратите внимание, что двойные кавычки во втором столбце оставлены так, как есть, потому что для их замены нет выражения.

Надеюсь, что это поможет.

Снимок экрана №1:

1

Снимок экрана №2:

2

Снимок экрана №3: ​​

3

Снимок экрана №4:

4

Снимок экрана № 5:

5

Ответ 2

Это может не сработать, если другие столбцы не имеют такой же проблемы, но если это единственный текстовый столбец, который вы импортируете, или все они похожи на это, вы можете изменить свой текстовый идентификатор на две двойные кавычки вместо один. Тогда SSIS выведет его из плоского файла правильно, и вам не придется иметь дело с попыткой его очистки позже.

Ответ 3

Ниже приведены примеры

REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(Client_1,"\"",""),"*",""),",",""),"[",""),"]",""),"'",""),"!",""),"/",""),"<>","")