Как обновить один столбец через информатику?

У меня есть целевая таблица со следующими атрибутами:

PARTY_ID PK
START_DATE PK
STATUS_CD PK
END_DATE

У меня есть динамический поиск, который возвращает мне 1 (вставка) 2 (обновление) 0 (дубликат) для каждой строки из исходной таблицы.

Я хочу, когда я получаю 2 (обновление), чтобы добавить END_DATE в обновленную строку, не меняя ничего другого.

Например, у меня есть следующая строка в моей целевой таблице:

1 12/01/2014 2 NULL

и я получаю эту строку из своей исходной таблицы:

1 14/01/2014 6 NULL

Я хочу добавить ТОЛЬКО дату окончания в целевую таблицу без чего-либо еще. НРАВИТСЯ:

1 12/01/2014 2 14/01/2014

Я знаю, как обновить всю строку, но не знаю, как обновить только один столбец.

Схема:

CREATE SET TABLE IND_MAR_STATUS ,NO FALLBACK ,
 NO BEFORE JOURNAL,
 NO AFTER JOURNAL,
 CHECKSUM = DEFAULT,
 DEFAULT MERGEBLOCKRATIO
 (
  INDIVIDUAL_PARTY_ID DECIMAL(18,0) NOT NULL,
  INDIV_MARITAL_STAT_START_DTTM DATE FORMAT 'YYYY-MM-DD' NOT NULL,
  MARITAL_STATUS_CD VARCHAR(100) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL,
  INDIV_MARITAL_STAT_END_DTTM DATE FORMAT 'YYYY-MM-DD',
  ETL_SOURCE_ID DECIMAL(18,0) NOT NULL,
  ETL_EXTRACT_SPEC_ID DECIMAL(18,0),
  ETL_JOB_RUN_ID DECIMAL(18,0))
PRIMARY INDEX ( INDIVIDUAL_PARTY_ID );

введите здесь описание изображения


person apoellitsi    schedule 19.02.2014    source источник


Ответы (1)


Просто отключите целевые порты, которые вы не хотите обновлять (т. е. должны быть подключены только PARTY_ID и END_DATE).

person Marek Grzenkowicz    schedule 19.02.2014
comment
У меня есть стратегия обновления, в которой я проверяю, равен ли флаг, который я получаю, 0 (отклонить) 1 (вставить) 2 (обновить). Если я подключу только порт конечной даты для обновления, это не будет работать, потому что если у меня есть вставка, ей потребуются все порты! - person apoellitsi; 19.02.2014
comment
Вы можете использовать маршрутизатор и отдельные экземпляры цели для вставки и обновления. - person Marek Grzenkowicz; 19.02.2014
comment
Я добавлю схему моей таблицы, чтобы вы могли понять, как это - person apoellitsi; 20.02.2014
comment
ОБНОВЛЕНИЕ: ЭТО РАБОТАЕТ! Но у меня три одинаковые целевые таблицы.!! Что не является хорошей практикой. У меня это есть, потому что у меня есть три стратегии обновления. Один для обновления одного столбца. Один для вставки и один для вставки обновленной строки как новой. - person apoellitsi; 20.02.2014
comment
Я тоже добавил картинку - person apoellitsi; 20.02.2014
comment
Почему вы считаете это плохой практикой? Представьте, что у вас есть только одна цель, и вы проверяете информацию в мониторе Wofkflow. Можете ли вы определить, были ли строки обновлены или вставлены? Просто убедитесь, что цели имеют осмысленные имена. - person Marek Grzenkowicz; 20.02.2014