Re: [oracle_br] Duvida PL\SQL.
Bom dia Igor! Olha, não vou conseguir te dar detalhes específicos do DOT NET, mas eu já trabalhei num sistema em 2006 em que era feito algo parecido. E funcionava. Não me pergunte qual era a versão do DOT NET e como faziam isso lá, pois eu trabalhava somente no banco de dados (e também desenvolvia essas packages PL/SQL). Mas se não me engano eu também usei REFCURSOR mesmo... vc não pode fazer dessa maneira? 2013/10/28 Igor Alves igor.al...@gmail.com ** Eu criei : TYPE TABELA_HEADIS TABLE OF REC_HEAD INDEX BY BINARY_INTEGER; TYPE TABELA_BODYIS TABLE OF REC_BODY INDEX BY BINARY_INTEGER; Nesses caras eu carrego os dados de 2 cursores. .No primeiro os cabeçalho do relatório. .No segundo o detalhe . No detalhe eu resolvo os cálculos , carrego no TYPE tudo ja pronto. A merda e que o .net não consegue ler o Tipo Tabela somente o Refcursor Queria sua opinião de vocês , a melhor forma de fazer isso com o menor custo para o bancopreciso carregar o REFCURSOR com o TYPE de tabela se é que tem como fazer isso(fiz mais ficou lento). Igor Alves
Re: [oracle_br] Duvida PL/SQL
Olá Juliano, Olhei rapidamente teu código, pelo erro, tenta verficar na definição dos campos que você colocou no select do LOOP For vlinha In (select M.ano,cod_modelo,item_ agrupador,avg (PRECO_UNITARIO_NACIONAL) as preco,QUANTIDADE_COMPOSICAO,QUANTIDADE_COMPOSICAO*Avg (PRECO_UNITARIO_NACIONAL) as total --Bulk Collect Into tb_vetor from modelo_equipamento M join tabela_preco T on (M.cod_equipamento = T.cod_equipamento) where M.ano = vano group by cod_modelo,item_agrupador, QUANTIDADE_COMPOSICAO ) Loop Não encontrei o campo VALOR_CCA_COM_OCIOSIDADE no teu loop, porém você faz referencia ao mesmo no insert, veja: Insert Into PRECIFICACAO_DETALHADA (ANO,COD_MODELO,QUANTIDADE_ INVENTARIO,UNIDADE,PRECO_MODELO,VALOR_CCA,C USTO_INDIRETO,VALOR_CCA_COM_CUSTO_INDIRETO,FATOR_OCIOSIDADE,VALOR_CCA_ COM_OCIOSIDADE) Values (vlinha.ANO,vlinha.COD_MODELO,vlinha.QUANTIDADE_INVENTARIO,vlinha.UNID ADE,vlinha.PRECO_MODELO,vlinha.VALOR_CCA, vlinha.CUSTO_INDIRETO,vlinha.VALOR_CCA_COM_CUSTO_INDIRETO,vlinha.FATOR _OCIOSIDADE,vlinha.VALOR_CCA_COM_OCIOSIDADE); Espero ter ajudado em algo. -- Atenciosamente Francisco Porfirio Ribeiro Neto [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Duvida PL/SQL
Você pode fazer um insert com select. Insert Into Tabela Select .. Assim todo o retorno do select vai para a tabela. - Original Message - From: jusegantine To: oracle_br@yahoogrupos.com.br Sent: Monday, January 26, 2009 12:24 PM Subject: [oracle_br] Duvida PL/SQL Bom dia Senhores Eu tenho este select : vano = '2008' select cod_modelo,item_agrupador,avg(PRECO_UNITARIO_NACIONAL)as preco,QUANTIDADE_COMPOSICAO,QUANTIDADE_COMPOSICAO*avg (PRECO_UNITARIO_NACIONAL)as total from modelo_equipamento M join tabela_preco T on (M.cod_equipamento = T.cod_equipamento) where ano = vano group by cod_modelo,item_agrupador, QUANTIDADE_COMPOSICAO) Ele me retorna uma tabela com uma série de dados calculados. Como eu posso criar uma procedure com cursor se necessário, que de um insert desses dados resultantes em outra tabela? O procedimento recebe como parametro o ANO. Qual a melhor maneira de fazer isso para que depois eu possa chama-lo em um front-end? Muito Obrigado Senhore! Meu emprego está dependendo disso no Momento! rs []'s [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Duvida PL/SQL
Se entendi o que voce quer, então é bem simples. Segue código: * create* *or* *replace* *procedure* sp_insere_tabela( vano *In* *Date* ) *Is* *Type* TP_RECORD *Is* *Record*( n_cod_modelo *Number,--coloque o tipo correto* n_item_agrupador *Number*,*--coloque o tipo correto* n_preco *Number*,*--coloque o tipo correto* n_qtd_comp *Number*,*--coloque o tipo correto* n_total *Number--coloque o tipo correto* ); *Type* tp_vetor *Is* *Table* *Of* tp_record *Index* *By* *Binary_Integer*; tb_vetor tp_vetor; *begin* *select* cod_modelo, item_agrupador, *avg*(PRECO_UNITARIO_NACIONAL)*as* preco, QUANTIDADE_COMPOSICAO, QUANTIDADE_COMPOSICAO**Avg* (PRECO_UNITARIO_NACIONAL)*as* total *Bulk* *Collect* *Into* tb_vetor *from* modelo_equipamento M *join* tabela_preco T *on* (M.cod_equipamento = T.cod_equipamento) *where* ano = vano *group* *by* cod_modelo,item_agrupador, QUANTIDADE_COMPOSICAO; *For* i *In* 1..tb_vetor.*Count* *Loop* *Insert* *Into* tabela(CAMPOS, AQUI) *Values* (tb_vetor(i).n_cod_modelo,tb_vetor(i).n_item_agrupador,tb_vetor(i).n_preco, tb_vetor(i).n_qtd_comp,tb_vetor(i).n_total); *End* *Loop*; *Exception* *When* no_data_found *Then* raise_application_error(-2,'Nenhum Registro Encontrado'); *end* sp_insere_tabela; Agora é só fazer os ajustes necessarios, mas a ideias basica é essa. Valeu abraço 2009/1/26 jusegantine jusegant...@yahoo.com.br Bom dia Senhores Eu tenho este select : vano = '2008' select cod_modelo,item_agrupador,avg(PRECO_UNITARIO_NACIONAL)as preco,QUANTIDADE_COMPOSICAO,QUANTIDADE_COMPOSICAO*avg (PRECO_UNITARIO_NACIONAL)as total from modelo_equipamento M join tabela_preco T on (M.cod_equipamento = T.cod_equipamento) where ano = vano group by cod_modelo,item_agrupador, QUANTIDADE_COMPOSICAO) Ele me retorna uma tabela com uma série de dados calculados. Como eu posso criar uma procedure com cursor se necessário, que de um insert desses dados resultantes em outra tabela? O procedimento recebe como parametro o ANO. Qual a melhor maneira de fazer isso para que depois eu possa chama-lo em um front-end? Muito Obrigado Senhore! Meu emprego está dependendo disso no Momento! rs []'s -- José Eduardo Batista Juliano Cel (16)9189-2486 Híade Informática Consultoria Oracle e desenvolvimento de sistemas. Ribeirão Preto - SP [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Duvida PL/SQL
não entendi direito mas parece que o group by resolve!? mand emais detalhes Em 27/02/07, Thiago M. Zerbinato [EMAIL PROTECTED] escreveu: Pessoal, Alguem pode me dar uma idéia de como fazer isso, na minha tabela esta assim: **NOTA** **CFOP** **VALOR** 1 5101 150,00 2 5101 20,00 3 5101 30,00 4 6101 1.000,00 5 5102 5.000,00 6 6101 250,00 7 6101 300,00 8 5101 350,00 9 5101 450,00 10 5101 600,00 O Resultado tem que ser assim. **NOTA** **CFOP** **VALOR** 1 A 3 5101 200,00 4 6101 1.000,00 5 5102 5.000,00 6 A 7 6101 550,00 8 A 10 5101 1.400,00 Alguma ideia ? -- Thiago M. Zerbinato [thiagomz] OCP DBA --- http://thiagomz.hpg.com.br [As partes desta mensagem que não continham texto foram removidas] -- Roberto Fernandes Sobrinho Deenvolvedor Oracle [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Duvida PL/SQL
Nao teria como voce colocar o resultado de uma forma tabular? Ex.: NOTA CFOP VALOR 11011000,00 51023000,00 Resultado Esperado NOTA CFOP VALOR 1a5 101 1000,00 8a3 102 2000,00 Ou explicar melhor qual sua necessidade. Atenciosamente David Silveira OCA Developer Thiago M. Zerbinato [EMAIL PROTECTED] escreveu: Pessoal, Alguem pode me dar uma idéia de como fazer isso, na minha tabela esta assim: **NOTA** **CFOP** **VALOR** 1 5101 150,00 2 5101 20,00 3 5101 30,00 4 6101 1.000,00 5 5102 5.000,00 6 6101 250,00 7 6101 300,00 8 5101 350,00 9 5101 450,00 10 5101 600,00 O Resultado tem que ser assim. **NOTA** **CFOP** **VALOR** 1 A 3 5101 200,00 4 6101 1.000,00 5 5102 5.000,00 6 A 7 6101 550,00 8 A 10 5101 1.400,00 Alguma ideia ? -- Thiago M. Zerbinato [thiagomz] OCP DBA --- http://thiagomz.hpg.com.br [As partes desta mensagem que não continham texto foram removidas] __ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Duvida PL/SQL
Welvis, FIRST e LAST são usados em ARRAYS e não em CURSORES. Para arrays, acesse: http://www.psoug.org/reference/bulk_collect.html Para cursores, acesse: http://www.psoug.org/reference/control_struct.html Espero ter ajudado. Neto. - Original Message - From: Welvis Douglas Silva Moreto To: oracle_br@yahoogrupos.com.br Sent: Monday, July 03, 2006 9:25 AM Subject: [oracle_br] Duvida PL/SQL Eu tenho como fazer um first em um curso dentro do Oracle.? att Welvis Douglas ___ Você quer respostas para suas perguntas? Ou você sabe muito e quer compartilhar seu conhecimento? Experimente o Yahoo! Respostas ! http://br.answers.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html