Oracle: обновление с использованием значений из других таблиц - PullRequest
0 голосов
/ 07 февраля 2012

У меня есть следующее обновление, но я не хочу копировать значения вручную.Я предпочитаю извлекать их с помощью запроса.Должен ли я использовать PL / SQL или есть формулировка SQL?

Запрос, который я использую для получения значений, которые я скопировал в обновление вручную, не является сохранением ключа («Концепция таблицы с сохранением ключа в представлении соединения»).").

UPDATE wkf_cronologia
   SET swkf_stato_workflow_id = 'o3gE1tlSdcDIC6FF',
       swkf_data_ini = TO_TIMESTAMP ('19-06-2010 18:28:10,556000000','DD-MM-RRRR HH24:MI:SS,FF'),
       swkf_versione = 0, 
       SPWKF_STATO_PUBBLICO_ID = '*1UNICOO',
       SPWKF_DATA_INI = TO_TIMESTAMP ('01-01-0001 00:00:00,000000000', 'DD-MM-RRRR HH24:MI:SS,FF'),
       SPWKF_VERSIONE = 0
 WHERE wkfc_cronologia_id = 'ApAJ0qCudNphjLxj';

1 Ответ

1 голос
/ 07 февраля 2012

Вы можете использовать подзапрос:

UPDATE wkf_cronologia
   SET (swkf_stato_workflow_id,
       swkf_data_ini,
       swkf_versione, 
       SPWKF_STATO_PUBBLICO_ID,
       SPWKF_DATA_INI,
       SPWKF_VERSIONE) = (select a,b,0,c,d,e
                            from another_table
                            where something=wkf_cronologia.swkf_stato_workflow_id)
 WHERE swkf_versione is null;
...