Procedure - Pessoal preciso de ajuda
-
- Rank: DBA Sênior
- Mensagens: 365
- Registrado em: Ter, 24 Mai 2005 2:24 pm
- Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP
Araraquara - SP
Quando você executa uma query no developer aparece um grid na parte de baixo da janela, nesse grid tem o resultado do seu select, se você clicar no resultado com o botao direito do mouse aparece uma janela, entre as opcoes que ela tem existe a "Export", e dentro de export tem a opcao de salvar como csv.
[]'s
[]'s
-
- Rank: Estagiário Júnior
- Mensagens: 1
- Registrado em: Sex, 23 Nov 2007 11:08 am
- Localização: RJ
tem uma opção no PL SQL developer : Export query results .
Não sei a versão do seu, mas aqui no meu fica em cima do resultado da query onde tem uma serie de botões.
ai você escolhe a opção CSV file
Não sei a versão do seu, mas aqui no meu fica em cima do resultado da query onde tem uma serie de botões.
ai você escolhe a opção CSV file
-
- Rank: DBA Sênior
- Mensagens: 365
- Registrado em: Ter, 24 Mai 2005 2:24 pm
- Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP
Araraquara - SP
E ai Mario, beleza??
Pra gerar um arquivo automaticamente no servidor você pode criar um job, e programa-lo pra ser executado dentro do intervalo q você desejar (5 min, 1 hora, 1 dia)...
Esse job poderá chamar uma procedure, q vai ser a procedure responsavel pela criacao do arquivo no servidor.. de uma procurada aqui no fórum sobre UTL_FILE, entre os parametros que o utl_file possui tem um que indica qual a pasta que ele vai salvar o arquivo...
O q ficou faltando foi falar sobre o CSV em si, no caso o csv nada mais é do um unico registro informado em uma linha e esse registro possui um delimitador, q normalmente é utilizado o ";".. essa montagem fica fácil pois é só você concatenar seus registros e entre eles colocar um ";".
Voltando na gravacao do arquivo, dentro do loop dos seus registros, depois que você montar sua linha, você deverá utilizar o UTL_FILE.PUT_LINE pra gravar a linha no seu arquivo..
se tiver alguma dúvida é só falar.
[]'s
Pra gerar um arquivo automaticamente no servidor você pode criar um job, e programa-lo pra ser executado dentro do intervalo q você desejar (5 min, 1 hora, 1 dia)...
Esse job poderá chamar uma procedure, q vai ser a procedure responsavel pela criacao do arquivo no servidor.. de uma procurada aqui no fórum sobre UTL_FILE, entre os parametros que o utl_file possui tem um que indica qual a pasta que ele vai salvar o arquivo...
O q ficou faltando foi falar sobre o CSV em si, no caso o csv nada mais é do um unico registro informado em uma linha e esse registro possui um delimitador, q normalmente é utilizado o ";".. essa montagem fica fácil pois é só você concatenar seus registros e entre eles colocar um ";".
Voltando na gravacao do arquivo, dentro do loop dos seus registros, depois que você montar sua linha, você deverá utilizar o UTL_FILE.PUT_LINE pra gravar a linha no seu arquivo..
se tiver alguma dúvida é só falar.
[]'s
-
- Rank: Analista Sênior
- Mensagens: 157
- Registrado em: Sex, 30 Nov 2007 1:17 pm
- Localização: Porto Alegre - RS
Esse é o script pode me exemplificar como salvar esse arquivo em uma pasta?
CREATE OR REPLACE PROCEDURE prc_emprestimo_gf (
prc_con_num_est OUT NUMBER,
prc_principal_pago OUT NUMBER,
prc_juros_pago OUT NUMBER,
prc_mora_paga OUT NUMBER,
prc_iof_pago OUT NUMBER,
prc_multa_paga OUT NUMBER
)
IS
v_con_num_est NUMBER (8);
v_principal_pago NUMBER (14, 4);
v_juros_pago NUMBER (14, 4);
v_mora_paga NUMBER (14, 4);
v_iof_pago NUMBER (14, 4);
v_multa_paga NUMBER (14, 4);
BEGIN
SELECT c.con_num_est, TO_DATE (t.pgt_dat, 'DD-MM-YYYY'),
SUM (t.ppcvalpriantpgt - t.ppcvalpripospgt),
SUM (t.ppcvaljurantpgt - t.ppcvaljurpospgt),
SUM (t.ppcvalmorantpgt - t.ppcvalmorpospgt),
SUM (t.ppcvaliofantpgt - t.ppcvaliofpospgt), SUM
( t.ppcvalmulantpgt
- t.ppcvalmulpospgt
)
INTO v_con_num_est, v_principal_pago,
v_juros_pago,
v_mora_paga,
v_iof_pago,
v_multa_paga
FROM emptblppc t, tb_con c, tb_pgt p
WHERE t.con_num = c.con_num
AND t.ppcdthalt = c.con_dat_alt
AND t.con_num = p.con_num
AND t.ppcdthalt = p.pgt_dat_alt
AND t.pgt_dat = p.pgt_dat
AND t.ppcdthalt = '01 jan 1960'
AND TO_CHAR (p.DATA, 'DD-MM-YYYY') = '23-11-2007'
GROUP BY c.con_num_est, TO_DATE (t.pgt_dat, 'DD-MM-YYYY');
prc_con_num_est := nvl(v_con_num_est,0);
prc_principal_pago := nvl(v_principal_pago,0);
prc_juros_pago := nvl(v_juros_pago,0);
prc_mora_paga := nvl(v_mora_paga,0);
prc_iof_pago := nvl(v_iof_pago,0);
prc_multa_paga := nvl(v_multa_paga,0);
END;
-
- Rank: DBA Sênior
- Mensagens: 365
- Registrado em: Ter, 24 Mai 2005 2:24 pm
- Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP
Araraquara - SP
Amigo, segue um exemplo do q você precisa. Se precisar de mais exemplos da uma pesquisada aqui no fórum, você vai encontrar bastante coisa sobre UTL_FILE.
[]'s
/* Formatted on 2007/12/07 08:14 (Formatter Plus v4.8.7) */
CREATE OR REPLACE PROCEDURE prc_emprestimo_gf (
prc_con_num_est OUT NUMBER,
prc_principal_pago OUT NUMBER,
prc_juros_pago OUT NUMBER,
prc_mora_paga OUT NUMBER,
prc_iof_pago OUT NUMBER,
prc_multa_paga OUT NUMBER
)
IS
v_con_num_est NUMBER (14, 4);
v_principal_pago NUMBER (14, 4);
v_juros_pago NUMBER (14, 4);
v_mora_paga NUMBER (14, 4);
v_iof_pago NUMBER (14, 4);
v_multa_paga NUMBER (14, 4);
v_linha VARCHAR2 (2000) := '';
v_arquivo UTL_FILE.file_type;
BEGIN
SELECT c.con_num_est, TO_DATE (t.pgt_dat, 'DD-MM-YYYY'),
SUM (t.ppcvalpriantpgt - t.ppcvalpripospgt),
SUM (t.ppcvaljurantpgt - t.ppcvaljurpospgt),
SUM (t.ppcvalmorantpgt - t.ppcvalmorpospgt),
SUM (t.ppcvaliofantpgt - t.ppcvaliofpospgt), SUM
( t.ppcvalmulantpgt
- t.ppcvalmulpospgt
)
INTO v_con_num_est, v_principal_pago,
v_juros_pago,
v_mora_paga,
v_iof_pago,
v_multa_paga
FROM emptblppc t, tb_con c, tb_pgt p
WHERE t.con_num = c.con_num
AND t.ppcdthalt = c.con_dat_alt
AND t.con_num = p.con_num
AND t.ppcdthalt = p.pgt_dat_alt
AND t.pgt_dat = p.pgt_dat
AND t.ppcdthalt = '01 jan 1960'
AND TO_CHAR (p.DATA, 'DD-MM-YYYY') = '23-11-2007'
GROUP BY c.con_num_est, TO_DATE (t.pgt_dat, 'DD-MM-YYYY');
v_arquivo := UTL_FILE.fopen ('C:\DIRETORIO\', 'ARQUIVO.TXT', 'W');
UTL_FILE.put_line (v_arquivo, 'v_con_num_est : '||NVL (v_con_num_est, 0));
UTL_FILE.put_line (v_arquivo, 'v_principal_pago : '||NVL (v_principal_pago, 0));
UTL_FILE.put_line (v_arquivo, 'v_juros_pago : '||NVL (v_juros_pago, 0));
UTL_FILE.put_line (v_arquivo, 'v_mora_paga : '||NVL (v_mora_paga, 0));
UTL_FILE.put_line (v_arquivo, 'v_iof_pago : '||NVL (v_iof_pago, 0));
UTL_FILE.put_line (v_arquivo, 'v_multa_paga : '||NVL (v_multa_paga, 0));
UTL_FILE.fclose (v_arquivo);
END;
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes