Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
em Qua, 08 Mar 2006 9:21 am
Pessoal, tenho a seguinte merge abaixo, porém a versão do oracle é 8, gostaria de saber como migro esse merge para a versão 8.
- Código: Selecionar todos
merge into bx_tbl_agencia bx_ag
using (select distinct party_name,
account_number,
location
from VIEW_GOL_AR_BAIXA_OPENSKIES
) v_ag
on ( v_ag.account_number = bx_ag.account_number and v_ag.location = bx_ag.location )
when not matched then insert (bx_ag.id,
bx_ag.party_name,
bx_ag.account_number,
bx_ag.location)
values (seq_agencia.nextval,
v_ag.party_name,
v_ag.account_number,
v_ag.location);
-
izaura
- Localização: santos-sp
em Seg, 06 Jan 2014 2:05 pm
Izaura,
Estou atualizando este tópico antigo em aberto com uma resposta, para o caso de algum forista se deparar com este problema no ORACLE 8.
Por favor, consultar este link para maiores informações:
http://www.tek-tips.com/viewthread.cfm?qid=949305Abraços,
Sergio Coutinho
-
stcoutinho
- Localização: Sao Paulo - SP
em Qui, 23 Jan 2014 5:40 pm
Pessoal,
O Merge é uma instrução que faz parte do padrão ANSI 2003 e o Oracle 8 e 8i não são aderentes a este padrão. Merge só funciona no Oracle 9i ou versão superior. Para fazer o processamento correspondente é necessário criar um bloco PL/SQL com a estrutura
- Código: Selecionar todos
SELECT ... IF EXISTE THEN UPDATE ... ELSE INSERT .... END IF;
, ou escrever uma estrutura de comandos similar dentro da aplicação.
[]s
-
fbifabio
- Localização: São Paulo - SP
Fábio Prado
www.fabioprado.net
-
em Sex, 24 Jan 2014 7:12 am
Atualizando ..
A nota (link) mencionada anteriormente já sugere uma sintaxe adequada:
- Código: Selecionar todos
BEGIN
UPDATE my_table SET some_column = some_value
WHERE some_condition_is_true;
IF (sql%ROWCOUNT = 0) THEN
INSERT INTO my_table .......;
END IF;
END;
Abraços,
Sergio
-
stcoutinho
- Localização: Sao Paulo - SP
Voltar para SQL
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante