Eae pessoal, bom ... tava dando uma olhadinha no forum e achei muito bom... hehe e aproveitei pra postar uma duvida pra vocês...
É o seguinte...
Por exemplo eu tenho a tabela de funcionarios e outra de dependetes..
eu quero pegar os dependentes que tem o nome "joao" e inserir eles como funcionarios na tabela de funcionarios... tem como !?!??!
como daria pra fazer isso ??
vlw...se ficou meio confuso, eheh posta denovo que eu explico melhorzinho..
Duvida: Consulta com insercao, e atualizacao ? é possivel?
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Como é a tabela de Funcionário e de dependentes ?
Dá um DESC aí pra galera
Dá um DESC aí pra galera
-
- Rank: Estagiário Pleno
- Mensagens: 4
- Registrado em: Seg, 06 Fev 2006 1:58 pm
- Localização: Presidente Prudente
bom.. na verdade foi uma analogia... porque na real é bem mais complexo que isso hehe !!!
Bom então ai vai... vou explicar do jeito que está...
aqui na empresa agente tem um banco onde estao cadastrados os "lotes" que seriam os terrenos das casas... e em cada lote logicamente ta cadastrado 1 ou mais endereço !!! Por isso eu queria pegar os lotes que estao cadastrados com mais de um endereço, criar um lote novo, e jogar esse endereco nesse lote. fazer na mão um por um eu consigo, mas o que eu queria é fazer uma funcao, para achar todos os lotes que tem + que 1 endereco criar um lote automaticamente e jogar o endereco pra esse novo lote... deixando assim todos lotes com apenas 1 endereco...
ai vai o desc das tabelas:
onde lot_face seria o lote e address o endereco
heheheh é isso aí...
se precisar d+ algo tamoe aí !
Bom então ai vai... vou explicar do jeito que está...
aqui na empresa agente tem um banco onde estao cadastrados os "lotes" que seriam os terrenos das casas... e em cada lote logicamente ta cadastrado 1 ou mais endereço !!! Por isso eu queria pegar os lotes que estao cadastrados com mais de um endereço, criar um lote novo, e jogar esse endereco nesse lote. fazer na mão um por um eu consigo, mas o que eu queria é fazer uma funcao, para achar todos os lotes que tem + que 1 endereco criar um lote automaticamente e jogar o endereco pra esse novo lote... deixando assim todos lotes com apenas 1 endereco...
ai vai o desc das tabelas:
onde lot_face seria o lote e address o endereco
lot_face:
Name Null? Type
----------------------------------------- -------- ----------------------------
FEAT_NUM NOT NULL NUMBER(10)
G_VERSION NOT NULL NUMBER(10)
G_NEXT_VERSION NUMBER(10)
G_GENERATION NUMBER(10)
CENTER_LINE_FNUM NOT NULL NUMBER(10)
LOT_ID NUMBER(10)
LOT_TYPE NOT NULL NUMBER(1)
NUM VARCHAR2(35)
NUM_QTY NUMBER(3)
FEEDER_POINT NOT NULL NUMBER(1)
ZIP VARCHAR2(10)
ATTENDANCE NUMBER(1)
REFERENCE_NAME VARCHAR2(60)
REFERENCE_TYPE NUMBER(10)
address:
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NOT NULL NUMBER(10)
LOT_FACE_FNUM NUMBER(10)
STREET_ID NOT NULL NUMBER(10)
SPECIAL_ADR_FNUM NUMBER(10)
ADDR_TYPE NUMBER(1)
NUM NOT NULL VARCHAR2(35)
COMPL VARCHAR2(35)
DEDICATED NUMBER(1)
ROW_LOCK NUMBER(10)
ROW_LOCK_TYPE VARCHAR2(1)
G_VERSION NOT NULL NUMBER(10)
G_NEXT_VERSION NUMBER(10)
G_GENERATION NUMBER(10)
se precisar d+ algo tamoe aí !
-
- Rank: Estagiário Pleno
- Mensagens: 4
- Registrado em: Seg, 06 Fev 2006 1:58 pm
- Localização: Presidente Prudente
Dae galera...
Bom, só pra constar eu consigo fazer o que eu queria... não sei se vocês entenderam qualquer eu tava querendo mas ... agradeço
eu consigui fazendo o seguinte...
eu fiz uma função
nela eu declarei um cursor, fiz a consulta que eu queria
depois eu fui dando um insert de acordo com as informacoes que eu tinha no cursor...
vlwww
fuizzz
Bom, só pra constar eu consigo fazer o que eu queria... não sei se vocês entenderam qualquer eu tava querendo mas ... agradeço
eu consigui fazendo o seguinte...
eu fiz uma função
nela eu declarei um cursor, fiz a consulta que eu queria
depois eu fui dando um insert de acordo com as informacoes que eu tinha no cursor...
vlwww
fuizzz
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Acho que você pode fazer o INSERT direto:
Veja o exemplo:
Assim, ele faz primeiro o select de baixo, e insere tudo na tabela1. Sem precisar fazer uma rotina pra isso. (Desculpe, não tinha entendido direito sua dúvida...)
É possível também usar o MERGE, pra fazer INSERT e UPDATE ao mesmo tempo. (caso existe, faz update, se não existe, faz INSERT). Veja esse tópico:
http://www.glufke.net/oracle/viewtopic.php?t=305
Veja o exemplo:
INSERT
INTO TABELA1
( CAMPO1
, CAMPO2
, CAMPO3
)
(SELECT
X.CAMPOX1
, X.CAMPOX2
, X.NOME
FROM OUTRA_TABELA X
WHERE NOME LIKE 'JOAO%'
)
/
É possível também usar o MERGE, pra fazer INSERT e UPDATE ao mesmo tempo. (caso existe, faz update, se não existe, faz INSERT). Veja esse tópico:
http://www.glufke.net/oracle/viewtopic.php?t=305
-
- Rank: Estagiário Pleno
- Mensagens: 4
- Registrado em: Seg, 06 Fev 2006 1:58 pm
- Localização: Presidente Prudente
nossa dr_gori essa informacao foi valiosissima... !!!
é que agora que comecei a mecher com o sql no oracle... tem muita coisa que da pra fazer... muito bomm !!!
Vlw aeee !!!
mais dicas...são sempre bem vindas !!!!
é que agora que comecei a mecher com o sql no oracle... tem muita coisa que da pra fazer... muito bomm !!!
Vlw aeee !!!
mais dicas...são sempre bem vindas !!!!
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes