Re: [oracle_br] Re: Ferramenta para BD free

2012-07-18 Por tôpico Jales Jose Moraes
Ok, vou pesquisar as ferramentas, especialmente as que disponibilizam as opções 
para imp/exp. Obrigado...

 


 De: J. Laurindo Chiappa 
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Terça-feira, 17 de Julho de 2012 13:54
Assunto: [oracle_br] Re: Ferramenta para BD free
  
 
   
 
Colega, há literalmente *** centenas *** de tools clientes multidatabase  
(principalmente feitas em java, que ´parece ser bastante popular pra isso) : 
googla por database client tools, vai na casa-mãe dos freewares e open-sources 
(ie, o sourceforge), vai na wikipedia, que vc as encontra às dúzias, sem 
exagero

Algumas mais conhecidas : o próprio Oracle SQL Developer (via drivers JDBC vc 
conecta em qquer db  que tenha driver JDBC disponível), SQLeonardo em 
http://sqleonardo.altervista.org/ , epictetus em 
http://www.antilogics.com/epictetus.html , sqlminus em 
http://sqlminus.sourceforge.net/ , db-browser em 
http://databasebrowser.sourceforge.net/, gql+ em 
http://gqlplus.sourceforge.net/ , sql++ em http://samy.pl/sql++/ , yasqlr em 
http://sourceforge.net/projects/yasql/ (bem conhecido), o SQLtools em 
http://www.sqltools.net/index.html?frame=http%3A//www.sqltools.net/sqltools.html
 (ultra-conhecido, e conexão multi-database é via ODBC, iirc), e finalmente as 
duas que certamente vc mais vai ouvir falar quando se pensa em tool multidatase 
freeware, TOra em http://torasql.com/ e o Squirrel-SQL em 
http://squirrel-sql.sourceforge.net/ .
E :

- apesar de relativamente longa a lista acima é só das mais conhecidas, como eu 
disse pesquisando vc acha Trocentas mais

- só listei tools freeware completas, ie free as free beers & free as in free 
speech - ou seja, que Não expiram, que Não tem restrições de onde/quando/quanto 
usar, que Não são versões capadas de tools maiores SE isso não te incomoda 
e vc aceita crippeware/expireware/demoware, aí vc acha uma Outra tonelada a 
mais de tools

[]s

Chiappa

OBS : eu não vejo o fato de vc ter que conhecer as tools clientes padrão de 
cada database que vc trabalha como um fardo impossível - ao contrário, acho 
mesmo Aconselhável, pois entre outras coisas no Suporte do Fabricante, em 
fóruns, em livros, etc, é Essa tool default padrão que vc vai ser usada - , mas 
acima segue a resposta que vc solicitou

--- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes 
 escreveu
>
> Alguém conhece alguma ferramenta free que se conecta em várias bases tipo 
> oracle, mysql e postgres (via ODBC por exemplo)...
> 
> [As partes desta mensagem que não continham texto foram removidas]
>

   
 

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Re: Ficheiros TXT

2012-07-18 Por tôpico Eduardo Rodrigues
Verifique também Carlos o nome do arquivo, pois parece que falta o final *
_ftp*

FCLOSE  num aquivo que não foi aberto.

*v_ficheiro_UTL_ftp* := UTL_FILE.FOPEN(v_directorio_ftp,
v_directorio_remote || v_nome_ficheiro_ftp, 'W');
UTL_FILE.FCLOSE(*v_ficheiro_UTL*);


*Att.*
*Eduardo Rodrigues*


Em 18 de julho de 2012 11:51, J. Laurindo Chiappa
escreveu:

> **
>
>
> Colega, é quase certo que esse PUT_LINE fora do LOOP não faz sentido :
> normalmente o cursor é lido linha-a-linha dentro do cursor, então apenas
> para cada linha lida é que vc precisa gravar no arquivo, então creio que
> essa gravação feita pelo PUT_LINE de fora do cursor é que tá fazendo a
> caca Outra coisa é esse negócio de se ter o FOPEN dentro do loop
> (imagino que vc faz isso pra só abrir o arquivo se realmente tem dados, mas
> talvez seja mais simples vc apenas remover o arquivo criado se não tinha
> dados), de se quebrar cada coluna em variáveis diferentes (que vc chama de
> v_linha 1 e 2), embora não seja por si só errado isso é o Veículo preferido
> dos bugs, lógicas desnecessariamente complexas são um prato cheio pros bugs
> ...
> A lógica simples e funcional penso que seria + ou - :
>
> 
> v_contador := 0;
>
> v_ficheiro_UTL_ftp := UTL_FILE.FOPEN(v_directorio_ftp, v_directorio_remote
> || v_nome_ficheiro_ftp, 'W');
> FOR r in c LOOP
> v_contador := v_contador + 1;
> UTL_FILE.PUT_LINE(v_ficheiro_UTL_ftp, r.d || r.v);
> END LOOP;
> UTL_FILE.FCLOSE(v_ficheiro_UTL);
> if v_contador = 0 then
> utl_file.FREMOVE(v_directorio_ftp, v_directorio_remote ||
> v_nome_ficheiro_ftp);
> end if;
>
> okdoc ??
>
>
> []s
>
> Chiappa
>
> --- Em oracle_br@yahoogrupos.com.br, "Carlos Pinto" 
> escreveu
> >
> > Obrigado Chiappa.
> >
> >
> >
> > Praticamente é isto:
> >
> >
> >
> >
> >
> > FOR r in c LOOP
> >
> >
> >
> > if not v_ficheiro_criado_ftp then
> >
> >
> >
> > v_linha := null;
> >
> >
> >
> > v_ficheiro_criado_ftp := TRUE;
> >
> > v_nome_ficheiro_ftp := v_filename1_ftp;
> >
> > v_ficheiro_UTL_ftp := UTL_FILE.FOPEN(v_directorio_ftp,
> > v_directorio_remote || v_nome_ficheiro_ftp, 'W');
> >
> > end if;
> >
> >
> >
> > v_contador := v_contador + 1;
> >
> >
> >
> > v_linha1 := r.d;
> >
> > v_linha2 := r.v;
> >
> >
> >
> > v_linha := v_linha1 || v_linha2;
> >
> >
> >
> > UTL_FILE.PUT_LINE(v_ficheiro_UTL_ftp, v_linha);
> >
> >
> >
> > END LOOP;
> >
> >
> >
> > v_linha := v_contador;
> >
> >
> >
> > UTL_FILE.PUT_LINE(v_ficheiro_UTL_ftp, v_linha);
> >
> >
> >
> > END IF;
> >
> >
> >
> >
> >
> > if v_ficheiro_criado then
> >
> > UTL_FILE.FCLOSE(v_ficheiro_UTL);
> >
> > end if;
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Carlos
> >
> >
> >
> >
> >
> >
> >
> > De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
> Em
> > nome de J. Laurindo Chiappa
> > Enviada: quarta-feira, 18 de Julho de 2012 15:16
> > Para: oracle_br@yahoogrupos.com.br
> > Assunto: [oracle_br] Re: Ficheiros TXT
> >
> >
> >
> >
> >
> > Colega, com ABSOLUTA certeza a UTL_FILE certamente *** não *** possui
> por si
> > só essa característica de enfiar por conta própria linhas em branco no
> > final, nem há um bug específico que eu conheça e implique nisso...
> Então, é
> > praticamente certo que é um erro na tua lógica de programação : cria um
> > exemplo o mais CURTO possível , com os DDLs e DMLs necessários inclusive,
> > que a gente te indica aonde pode estar o problema...
> >
> > []s
> >
> > Chiappa
> >
> > --- Em oracle_br@yahoogrupos.com.br  oracle_br%40yahoogrupos.com.br>
>  > , "Carlos Pinto"  escreveu
>
> > >
> > > Ola a todos estou a utilizar ORACLE 10G.
> > >
> > >
> > >
> > > A minha questão é o seguinte:
> > >
> > >
> > >
> > > Estou a utilizar o UTL_FILE para gerar ficheiros txt. Funciona todo bem
> > com
> > > a excepção do final que coloca sempre duas linhas em branco. Como posso
> > > eliminar estas linhas?
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > Com os melhores cumprimentos,
> > >
> > > Carlos Pinto
> > >
> > >
> > >
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> >
> >
> >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



RE: [oracle_br] Re: Ficheiros TXT

2012-07-18 Por tôpico Carlos Pinto
Obrigado Chiappa, vou validar.

 

Carlos

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
nome de J. Laurindo Chiappa
Enviada: quarta-feira, 18 de Julho de 2012 15:52
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Ficheiros TXT

 

  

Colega, é quase certo que esse PUT_LINE fora do LOOP não faz sentido :
normalmente o cursor é lido linha-a-linha dentro do cursor, então apenas
para cada linha lida é que vc precisa gravar no arquivo, então creio que
essa gravação feita pelo PUT_LINE de fora do cursor é que tá fazendo a
caca Outra coisa é esse negócio de se ter o FOPEN dentro do loop
(imagino que vc faz isso pra só abrir o arquivo se realmente tem dados, mas
talvez seja mais simples vc apenas remover o arquivo criado se não tinha
dados), de se quebrar cada coluna em variáveis diferentes (que vc chama de
v_linha 1 e 2), embora não seja por si só errado isso é o Veículo preferido
dos bugs, lógicas desnecessariamente complexas são um prato cheio pros bugs
...
A lógica simples e funcional penso que seria + ou - :


v_contador := 0;
v_ficheiro_UTL_ftp := UTL_FILE.FOPEN(v_directorio_ftp, v_directorio_remote
|| v_nome_ficheiro_ftp, 'W');
FOR r in c LOOP
v_contador := v_contador + 1;
UTL_FILE.PUT_LINE(v_ficheiro_UTL_ftp, r.d || r.v);
END LOOP;
UTL_FILE.FCLOSE(v_ficheiro_UTL);
if v_contador = 0 then
utl_file.FREMOVE(v_directorio_ftp, v_directorio_remote ||
v_nome_ficheiro_ftp);
end if;

okdoc ??

[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br 
, "Carlos Pinto"  escreveu
>
> Obrigado Chiappa.
> 
> 
> 
> Praticamente é isto:
> 
> 
> 
> 
> 
> FOR r in c LOOP
> 
> 
> 
> if not v_ficheiro_criado_ftp then
> 
> 
> 
> v_linha := null;
> 
> 
> 
> v_ficheiro_criado_ftp := TRUE;
> 
> v_nome_ficheiro_ftp := v_filename1_ftp;
> 
> v_ficheiro_UTL_ftp := UTL_FILE.FOPEN(v_directorio_ftp,
> v_directorio_remote || v_nome_ficheiro_ftp, 'W');
> 
> end if;
> 
> 
> 
> v_contador := v_contador + 1; 
> 
> 
> 
> v_linha1 := r.d; 
> 
> v_linha2 := r.v; 
> 
> 
> 
> v_linha := v_linha1 || v_linha2;
> 
> 
> 
> UTL_FILE.PUT_LINE(v_ficheiro_UTL_ftp, v_linha);
> 
> 
> 
> END LOOP;
> 
> 
> 
> v_linha := v_contador;
> 
> 
> 
> UTL_FILE.PUT_LINE(v_ficheiro_UTL_ftp, v_linha);
> 
> 
> 
> END IF;
> 
> 
> 
> 
> 
> if v_ficheiro_criado then
> 
> UTL_FILE.FCLOSE(v_ficheiro_UTL);
> 
> end if;
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Carlos
> 
> 
> 
> 
> 
> 
> 
> De: oracle_br@yahoogrupos.com.br 
[mailto:oracle_br@yahoogrupos.com.br 
] Em
> nome de J. Laurindo Chiappa
> Enviada: quarta-feira, 18 de Julho de 2012 15:16
> Para: oracle_br@yahoogrupos.com.br 

> Assunto: [oracle_br] Re: Ficheiros TXT
> 
> 
> 
> 
> 
> Colega, com ABSOLUTA certeza a UTL_FILE certamente *** não *** possui por
si
> só essa característica de enfiar por conta própria linhas em branco no
> final, nem há um bug específico que eu conheça e implique nisso... Então,
é
> praticamente certo que é um erro na tua lógica de programação : cria um
> exemplo o mais CURTO possível , com os DDLs e DMLs necessários inclusive,
> que a gente te indica aonde pode estar o problema...
> 
> []s
> 
> Chiappa
> 
> --- Em oracle_br@yahoogrupos.com.br


> , "Carlos Pinto"  escreveu
> >
> > Ola a todos estou a utilizar ORACLE 10G.
> > 
> > 
> > 
> > A minha questão é o seguinte:
> > 
> > 
> > 
> > Estou a utilizar o UTL_FILE para gerar ficheiros txt. Funciona todo bem
> com
> > a excepção do final que coloca sempre duas linhas em branco. Como posso
> > eliminar estas linhas?
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > Com os melhores cumprimentos, 
> > 
> > Carlos Pinto
> > 
> > 
> > 
> > 
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> 
> 
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>





[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Materialized View X Scheduler Job

2012-07-18 Por tôpico Alexandre Rocha Plácido
Já fiz. obrigado
[cid:CF2D4CAA-1EDE-487F-9BA6-7E1D4E599908]
[cid:AA3281D4-9DF4-449D-96A3-BF0DB384D64B]

From: Rodrigo Mufalani mailto:rodr...@mufalani.com.br>>
Reply-To: "oracle_br@yahoogrupos.com.br" 
mailto:oracle_br@yahoogrupos.com.br>>
Date: quarta-feira, 18 de julho de 2012 16:00
To: "oracle_br@yahoogrupos.com.br" 
mailto:oracle_br@yahoogrupos.com.br>>
Subject: Re: [oracle_br] Materialized View X Scheduler Job




Alexandre,

  Só ajusta o horário e a frequencia... que eu peguei uma minha aqui de
exemplo... Ok?


   O GUOB  será no dia 11/08/2012 faça a sua
inscrição em www.guob.com.br

Atenciosamente,

Rodrigo Mufalani
Oracle Ace
Member
http://www.mufalani.com.br

Rodrigo

Valeu. Funcionou.
[cid:A613D270-13A6-4E0E-8CBF-B7B47BE01E88]
[cid:29382225-BE9C-4776-92C9-A1EB6BC71C0E]

From: Rodrigo
Mufalani 
mailto:rodrigo%40mufalani.com.br>>>
Reply-To:
"oracle_br@yahoogrupos.com.br>"
mailto:oracle_br%40yahoogrupos.com.br>>>
Date: quarta-feira, 18 de julho
de 2012 15:23
To: 
"oracle_br@yahoogrupos.com.br>"
mailto:oracle_br%40yahoogrupos.com.br>>>
Subject: Re: [oracle_br]
Materialized View X Scheduler Job

Boa tarde,

Testa assim...

BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB
(
job_name
=> 'SYSTEM.NOME_DO_SEU_JOB'

,start_date =>
TO_TIMESTAMP_TZ('2012/01/21 20:35:11.00 -02:00','/mm/dd hh24:mi:ss.ff
tzh:tzm')
,repeat_interval => 'FREQ=WEEKLY'

,end_date => NULL

,job_class
=> 'DEFAULT_JOB_CLASS'

,job_type => 'PLSQL_BLOCK'

,job_action =>
'begin

dbms_refresh.refresh(''"DM_AGRIC"."AGR_PRODUCOES_MV"'');

end;'
,comments => ' Algum
comentário sobre a rotina...'
);

END;
/

O GUOB
será no dia 11/08/2012 faça sua
inscrição em www.guob.com.br

Atenciosamente,

Rodrigo Mufalani
Oracle Ace Member
http://www.mufalani.com.br

Temos algumas MVs que são atualizadas por
Jobs conforme o exemplo abaixo:

begin

sys.dbms_job.submit(job => :job,

what
=>
'dbms_refresh.refresh(''"DM_AGRIC"."AGR_PRODUCOES_MV"'');',

next_date =>
to_date('19-07-2012 03:00:00', 'dd-mm- hh24:mi:ss'),

interval
=> 'trunc(sysdate)+1.125');

commit;

end;

/

Temos migrado nossos
dbmsjobs para Scheduler_Jobs , porem
esses referentes a MVs não conseguimos fazer funcionar.

É possível
colocar a MV para ser atualizada via scheduller Jobs? Se sim, tem algum 
segredo? O que
estamos tentando
fazer é o que segue

begin

sys.dbms_scheduler.create_job(job_name =>
'DM_AGRIC.AGR_PRODUCOES_MV',

job_type => 'STORED_PROCEDURE',

job_action
=>
'dbms_refresh.refresh(''DM_AGRIC.AGR_PRODUCOES_MV'')',

start_date
=> to_date('18-07-2012 02:00:00',
'dd-mm- hh24:mi:ss'),

repeat_interval => 'Freq=Daily',

end_date =>
to_date(null),

job_class => 'DBMS_JOB$',

enabled => true,

auto_drop
=> false,

comments => '');

end;

/

Nosso banco é o 11G
las release.

Retorna o erro ORA-27452 , mas garanto que a MV em
questão existe no
banco.

[cid:9015F81F-1F1D-49EC-9994-0ACEF7845BA3]
[cid:F6DD4024-FF08-4B1F-9260-E61B8D4F9124]

[As partes desta mensagem que não continham texto
foram removidas]

[As partes desta
mensagem que não continham texto foram removidas]

[As partes desta
mensagem que não continham texto foram removidas]

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Materialized View X Scheduler Job

2012-07-18 Por tôpico Rodrigo Mufalani


Alexandre,

  Só ajusta o horário e a frequencia... que eu peguei uma minha aqui de
exemplo... Ok?

   
   O GUOB  será no dia 11/08/2012 faça a sua
inscrição em www.guob.com.br

Atenciosamente,

Rodrigo Mufalani
Oracle Ace
Member
http://www.mufalani.com.br




Rodrigo

Valeu. Funcionou.
[cid:A613D270-13A6-4E0E-8CBF-B7B47BE01E88]
[cid:29382225-BE9C-4776-92C9-A1EB6BC71C0E]

From: Rodrigo
Mufalani mailto:rodr...@mufalani.com.br>>
Reply-To:
"oracle_br@yahoogrupos.com.br"
mailto:oracle_br@yahoogrupos.com.br>>
Date: quarta-feira, 18 de julho
de 2012 15:23
To: "oracle_br@yahoogrupos.com.br"
mailto:oracle_br@yahoogrupos.com.br>>
Subject: Re: [oracle_br]
Materialized View X Scheduler Job




Boa tarde,

  Testa assim...

BEGIN
  SYS.DBMS_SCHEDULER.CREATE_JOB
(
   job_name
=> 'SYSTEM.NOME_DO_SEU_JOB'

 ,start_date  =>
TO_TIMESTAMP_TZ('2012/01/21 20:35:11.00 -02:00','/mm/dd hh24:mi:ss.ff
tzh:tzm')
  ,repeat_interval => 'FREQ=WEEKLY'

,end_date=> NULL

,job_class
  => 'DEFAULT_JOB_CLASS'

,job_type=> 'PLSQL_BLOCK'

,job_action  =>
'begin



dbms_refresh.refresh(''"DM_AGRIC"."AGR_PRODUCOES_MV"'');

end;'
  ,comments=> ' Algum
comentário sobre a rotina...'
);

END;
/

O GUOB
será no dia 11/08/2012 faça sua
inscrição em www.guob.com.br

Atenciosamente,

Rodrigo Mufalani
Oracle Ace Member
http://www.mufalani.com.br

Temos algumas MVs que são atualizadas por
Jobs conforme o exemplo abaixo:

begin

sys.dbms_job.submit(job => :job,

what
=>
'dbms_refresh.refresh(''"DM_AGRIC"."AGR_PRODUCOES_MV"'');',

next_date =>
to_date('19-07-2012 03:00:00', 'dd-mm- hh24:mi:ss'),

interval
=> 'trunc(sysdate)+1.125');

commit;

end;

/

Temos migrado nossos
dbmsjobs para Scheduler_Jobs , porem
esses referentes a MVs não conseguimos fazer funcionar.

É possível
colocar a MV para ser atualizada via scheduller Jobs? Se sim, tem algum 
segredo? O que
estamos tentando
fazer é o que segue

begin

sys.dbms_scheduler.create_job(job_name =>
'DM_AGRIC.AGR_PRODUCOES_MV',

job_type => 'STORED_PROCEDURE',

job_action
=>
'dbms_refresh.refresh(''DM_AGRIC.AGR_PRODUCOES_MV'')',

start_date
=> to_date('18-07-2012 02:00:00',
'dd-mm- hh24:mi:ss'),

repeat_interval => 'Freq=Daily',

end_date =>
to_date(null),

job_class => 'DBMS_JOB$',

enabled => true,

auto_drop
=> false,

comments => '');

end;

/

Nosso banco é o 11G
las release.

Retorna o erro ORA-27452 , mas garanto que a MV em
questão existe no
banco.

[cid:9015F81F-1F1D-49EC-9994-0ACEF7845BA3]
[cid:F6DD4024-FF08-4B1F-9260-E61B8D4F9124]

[As partes desta mensagem que não continham texto
foram removidas]

[As partes desta
mensagem que não continham texto foram removidas]





[As partes desta
mensagem que não continham texto foram removidas]







[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Materialized View X Scheduler Job

2012-07-18 Por tôpico Alexandre Rocha Plácido
Rodrigo

Valeu. Funcionou.
[cid:A613D270-13A6-4E0E-8CBF-B7B47BE01E88]
[cid:29382225-BE9C-4776-92C9-A1EB6BC71C0E]

From: Rodrigo Mufalani mailto:rodr...@mufalani.com.br>>
Reply-To: "oracle_br@yahoogrupos.com.br" 
mailto:oracle_br@yahoogrupos.com.br>>
Date: quarta-feira, 18 de julho de 2012 15:23
To: "oracle_br@yahoogrupos.com.br" 
mailto:oracle_br@yahoogrupos.com.br>>
Subject: Re: [oracle_br] Materialized View X Scheduler Job




Boa tarde,

  Testa assim...

BEGIN
  SYS.DBMS_SCHEDULER.CREATE_JOB
(
   job_name
=> 'SYSTEM.NOME_DO_SEU_JOB'
  ,start_date  =>
TO_TIMESTAMP_TZ('2012/01/21 20:35:11.00 -02:00','/mm/dd hh24:mi:ss.ff 
tzh:tzm')
  ,repeat_interval => 'FREQ=WEEKLY'

,end_date=> NULL

,job_class   => 'DEFAULT_JOB_CLASS'

,job_type=> 'PLSQL_BLOCK'

,job_action  => 'begin



dbms_refresh.refresh(''"DM_AGRIC"."AGR_PRODUCOES_MV"'');

end;'
  ,comments=> ' Algum
comentário sobre a rotina...'
);

END;
/

O GUOB
será no dia 11/08/2012 faça sua inscrição em www.guob.com.br

Atenciosamente,

Rodrigo Mufalani
Oracle Ace Member
http://www.mufalani.com.br

Temos algumas MVs que são atualizadas por Jobs conforme o exemplo abaixo:

begin

sys.dbms_job.submit(job => :job,

what =>
'dbms_refresh.refresh(''"DM_AGRIC"."AGR_PRODUCOES_MV"'');',

next_date => to_date('19-07-2012 03:00:00', 'dd-mm- hh24:mi:ss'),

interval
=> 'trunc(sysdate)+1.125');

commit;

end;

/

Temos migrado nossos
dbmsjobs para Scheduler_Jobs , porem esses referentes a MVs não conseguimos 
fazer funcionar.

É possível colocar a MV para ser atualizada via scheduller Jobs? Se sim, tem 
algum segredo? O que
estamos tentando
fazer é o que segue

begin

sys.dbms_scheduler.create_job(job_name => 'DM_AGRIC.AGR_PRODUCOES_MV',

job_type => 'STORED_PROCEDURE',

job_action
=> 'dbms_refresh.refresh(''DM_AGRIC.AGR_PRODUCOES_MV'')',

start_date
=> to_date('18-07-2012 02:00:00', 'dd-mm- hh24:mi:ss'),

repeat_interval => 'Freq=Daily',

end_date =>
to_date(null),

job_class => 'DBMS_JOB$',

enabled => true,

auto_drop
=> false,

comments => '');

end;

/

Nosso banco é o 11G las release.

Retorna o erro ORA-27452 , mas garanto que a MV em
questão existe no banco.

[cid:9015F81F-1F1D-49EC-9994-0ACEF7845BA3]
[cid:F6DD4024-FF08-4B1F-9260-E61B8D4F9124]

[As partes desta mensagem que não continham texto
foram removidas]

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Materialized View X Scheduler Job

2012-07-18 Por tôpico Rodrigo Mufalani



Boa tarde,

  Testa assim... 


BEGIN
  SYS.DBMS_SCHEDULER.CREATE_JOB
    (
   job_name   
=> 'SYSTEM.NOME_DO_SEU_JOB'
  ,start_date  =>
TO_TIMESTAMP_TZ('2012/01/21 20:35:11.00 -02:00','/mm/dd hh24:mi:ss.ff 
tzh:tzm')
  ,repeat_interval => 'FREQ=WEEKLY'
 
,end_date    => NULL
 
,job_class   => 'DEFAULT_JOB_CLASS'
 
,job_type    => 'PLSQL_BLOCK'
 
,job_action  => 'begin
  

 
dbms_refresh.refresh(''"DM_AGRIC"."AGR_PRODUCOES_MV"'');
 
end;'
  ,comments    => ' Algum
comentário sobre a rotina...'
    );

END;
/


O GUOB
será no dia 11/08/2012 faça sua inscrição em www.guob.com.br 

Atenciosamente,

Rodrigo Mufalani
Oracle Ace Member
http://www.mufalani.com.br






Temos algumas MVs que são atualizadas por Jobs conforme o exemplo abaixo:


begin

 
sys.dbms_job.submit(job => :job,

  what =>
'dbms_refresh.refresh(''"DM_AGRIC"."AGR_PRODUCOES_MV"'');',

 
next_date => to_date('19-07-2012 03:00:00', 'dd-mm- hh24:mi:ss'),

  interval
=> 'trunc(sysdate)+1.125');

  commit;

end;

/

Temos migrado nossos
dbmsjobs para Scheduler_Jobs  , porem esses referentes a MVs não conseguimos 
fazer funcionar.

É possível colocar a MV para ser atualizada via scheduller Jobs? Se sim, tem 
algum segredo? O que
estamos tentando
fazer é o que segue


begin

 
sys.dbms_scheduler.create_job(job_name=> 
'DM_AGRIC.AGR_PRODUCOES_MV',

  
 job_type=> 'STORED_PROCEDURE',

job_action 
=> 'dbms_refresh.refresh(''DM_AGRIC.AGR_PRODUCOES_MV'')',

start_date
 => to_date('18-07-2012 02:00:00', 'dd-mm- hh24:mi:ss'),

   
repeat_interval => 'Freq=Daily',

end_date=>
to_date(null),

job_class   => 'DBMS_JOB$',

  
 enabled => true,

auto_drop  
=> false,

comments=> '');

end;

/

Nosso banco é o 11G las release.

Retorna o erro ORA-27452 , mas garanto que a MV em
questão existe no banco.




[cid:9015F81F-1F1D-49EC-9994-0ACEF7845BA3]
[cid:F6DD4024-FF08-4B1F-9260-E61B8D4F9124]


[As partes desta mensagem que não continham texto
foram removidas]







[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Desenvolvimento com PL/SQL para Web

2012-07-18 Por tôpico Yahoo
Olá,

Existe um package chamado HTP que possui várias procedures que geram código
HTML, mas não tive oportunidade de utilizá-las na prática e também não sei
se há algum modo melhor de se fazer.


Atenciosamente,

Em 18 de julho de 2012 13:37, Marlon Pasquali - TI - Peccin S.A <
marlon.pasqu...@peccin.com.br> escreveu:

> **
>
>
> Olá amigos,
>
> Preciso de uma orientação.
>
> Estou iniciando o desenvolvimento com HTML e estou querendo desenvolver
> para
> uso interno aqui na empresa, alguma coisa para publicação de alguns dados
> relativos a produção que estão em nossa base de dados Oracle 10g em Linux
> Hed Hat.
>
> Como eu ainda não sei desenvolver em PHP ou Java, mas tenho conhecimento em
> PL/SQL pois já trabalha a algum tempo com isso, li alguma coisa a respeito
> de usar PL/SQL para Web. Mas não sei exatamente que recursos preciso para
> usar isso.
>
> O que exatamente preciso ter instalado para poder desenvolver ?. Onde posso
> conseguir alguma documentação para me ajudar neste inicio?.
>
> Obrigado,
>
> Marlon
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>
> |
>  através
> de 
> email|
>  Responder
> através da 
> web|
>  Adicionar
> um novo 
> tópico
> Mensagens neste 
> tópico(
> 1)
>  Atividade nos últimos dias:
>
>- Novos 
> usuários
>2
>
>  Visite seu 
> Grupo
>
> --
> >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
> inteira responsabilidade de seus remetentes.
> Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
>
> --
> >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
> Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
> VISITE: http://www.oraclebr.com.br/
> 
>
>   Quantidade ou qualidade? No Y!Encontros vc encontra de tudo um 
> pouco.
>  --
> Super Oferta HP 
> 430
>  --
> Y!Encontros. O amor não cai do céu... Comece sua procura agora 
> mesmo!
>   [image: Yahoo! 
> Grupos]
> Trocar para: Só 
> Texto,
> Resenha 
> Diária• 
> Sair
> do grupo • 
> Termos
> de uso 
>.
>
> --
> *Thiago Oliveira
> *
> *http://br.linkedin.com/in/tjsoliveira*
> *Consultor Oracle - Apply Solutions*
> *http://www.applysolutions.com.br*
> *(83) 8600-7901*
>
>
> *
> *
> * 
> *
>


[As partes desta mensagem que não continham texto foram removidas]




[oracle_br] Re: Ficheiros TXT

2012-07-18 Por tôpico J. Laurindo Chiappa
  Colega, é quase certo que esse PUT_LINE fora do LOOP não faz sentido : 
normalmente o cursor é lido linha-a-linha dentro do cursor, então apenas para 
cada linha lida é que vc precisa gravar no arquivo, então creio que essa 
gravação feita pelo PUT_LINE de fora do cursor é que tá fazendo a caca 
Outra coisa é esse negócio de se ter o FOPEN dentro do loop (imagino que vc faz 
isso pra só abrir o arquivo se realmente tem dados, mas talvez seja mais 
simples vc apenas remover o arquivo criado se não tinha dados), de se quebrar 
cada coluna em variáveis diferentes (que vc chama de v_linha 1 e 2), embora não 
seja por si só errado isso é o Veículo preferido dos bugs, lógicas 
desnecessariamente complexas são um prato cheio pros bugs ...
 A lógica simples e funcional penso que seria + ou -  :


v_contador := 0;
v_ficheiro_UTL_ftp := UTL_FILE.FOPEN(v_directorio_ftp, v_directorio_remote || 
v_nome_ficheiro_ftp, 'W');
FOR r in c LOOP
   v_contador := v_contador + 1;
   UTL_FILE.PUT_LINE(v_ficheiro_UTL_ftp, r.d || r.v);
END LOOP;
UTL_FILE.FCLOSE(v_ficheiro_UTL);
if v_contador = 0 then
utl_file.FREMOVE(v_directorio_ftp, v_directorio_remote || 
v_nome_ficheiro_ftp);
end if;



okdoc ??

  []s

   Chiappa


--- Em oracle_br@yahoogrupos.com.br, "Carlos Pinto"  escreveu
>
> Obrigado Chiappa.
> 
>  
> 
> Praticamente é isto:
> 
>  
> 
>  
> 
> FOR r in c LOOP
> 
>  
> 
> if not v_ficheiro_criado_ftp then
> 
>  
> 
> v_linha := null;
> 
> 
> 
> v_ficheiro_criado_ftp   := TRUE;
> 
> v_nome_ficheiro_ftp := v_filename1_ftp;
> 
> v_ficheiro_UTL_ftp  := UTL_FILE.FOPEN(v_directorio_ftp,
> v_directorio_remote || v_nome_ficheiro_ftp, 'W');
> 
> end if;
> 
>  
> 
> v_contador  := v_contador + 1; 
> 
>  
> 
> v_linha1:= r.d;
> 
> v_linha2:= r.v;
> 
> 
> 
> v_linha := v_linha1  || v_linha2;
> 
>  
> 
> UTL_FILE.PUT_LINE(v_ficheiro_UTL_ftp, v_linha);
> 
>  
> 
>END LOOP;
> 
>  
> 
> v_linha := v_contador;
> 
>  
> 
> UTL_FILE.PUT_LINE(v_ficheiro_UTL_ftp, v_linha);
> 
>  
> 
> END IF;
> 
>  
> 
>   
> 
>if v_ficheiro_criado then
> 
> UTL_FILE.FCLOSE(v_ficheiro_UTL);
> 
>end if;
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
> Carlos
> 
>  
> 
>  
> 
>  
> 
> De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
> nome de J. Laurindo Chiappa
> Enviada: quarta-feira, 18 de Julho de 2012 15:16
> Para: oracle_br@yahoogrupos.com.br
> Assunto: [oracle_br] Re: Ficheiros TXT
> 
>  
> 
>   
> 
> Colega, com ABSOLUTA certeza a UTL_FILE certamente *** não *** possui por si
> só essa característica de enfiar por conta própria linhas em branco no
> final, nem há um bug específico que eu conheça e implique nisso... Então, é
> praticamente certo que é um erro na tua lógica de programação : cria um
> exemplo o mais CURTO possível , com os DDLs e DMLs necessários inclusive,
> que a gente te indica aonde pode estar o problema...
> 
> []s
> 
> Chiappa
> 
> --- Em oracle_br@yahoogrupos.com.br 
> , "Carlos Pinto"  escreveu
> >
> > Ola a todos estou a utilizar ORACLE 10G.
> > 
> > 
> > 
> > A minha questão é o seguinte:
> > 
> > 
> > 
> > Estou a utilizar o UTL_FILE para gerar ficheiros txt. Funciona todo bem
> com
> > a excepção do final que coloca sempre duas linhas em branco. Como posso
> > eliminar estas linhas?
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > Com os melhores cumprimentos, 
> > 
> > Carlos Pinto
> > 
> > 
> > 
> > 
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> 
> 
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




RE: [oracle_br] Re: Ficheiros TXT

2012-07-18 Por tôpico Carlos Pinto
Obrigado Chiappa.

 

Praticamente é isto:

 

 

FOR r in c LOOP

 

if not v_ficheiro_criado_ftp then

 

v_linha := null;



v_ficheiro_criado_ftp   := TRUE;

v_nome_ficheiro_ftp := v_filename1_ftp;

v_ficheiro_UTL_ftp  := UTL_FILE.FOPEN(v_directorio_ftp,
v_directorio_remote || v_nome_ficheiro_ftp, 'W');

end if;

 

v_contador  := v_contador + 1; 

 

v_linha1:= r.d;

v_linha2:= r.v;



v_linha := v_linha1  || v_linha2;

 

UTL_FILE.PUT_LINE(v_ficheiro_UTL_ftp, v_linha);

 

   END LOOP;

 

v_linha := v_contador;

 

UTL_FILE.PUT_LINE(v_ficheiro_UTL_ftp, v_linha);

 

END IF;

 

  

   if v_ficheiro_criado then

UTL_FILE.FCLOSE(v_ficheiro_UTL);

   end if;

 

 

 

 

 

 

Carlos

 

 

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
nome de J. Laurindo Chiappa
Enviada: quarta-feira, 18 de Julho de 2012 15:16
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Ficheiros TXT

 

  

Colega, com ABSOLUTA certeza a UTL_FILE certamente *** não *** possui por si
só essa característica de enfiar por conta própria linhas em branco no
final, nem há um bug específico que eu conheça e implique nisso... Então, é
praticamente certo que é um erro na tua lógica de programação : cria um
exemplo o mais CURTO possível , com os DDLs e DMLs necessários inclusive,
que a gente te indica aonde pode estar o problema...

[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br 
, "Carlos Pinto"  escreveu
>
> Ola a todos estou a utilizar ORACLE 10G.
> 
> 
> 
> A minha questão é o seguinte:
> 
> 
> 
> Estou a utilizar o UTL_FILE para gerar ficheiros txt. Funciona todo bem
com
> a excepção do final que coloca sempre duas linhas em branco. Como posso
> eliminar estas linhas?
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Com os melhores cumprimentos, 
> 
> Carlos Pinto
> 
> 
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>





[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Re: problema gravação campo data

2012-07-18 Por tôpico Paulo Couto
Amigos, o meu problema relamente era causado por um trigger.
 
Obrigado a todos pelas dicas certeiras.
 
Abs,
 


 De: J. Laurindo Chiappa 
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Terça-feira, 17 de Julho de 2012 23:07
Assunto: [oracle_br] Re: problema gravação campo data
  
 
   
 
Ah, e claro : tenha CERTEZA que realmente não está gravado um valor tipo 
SYSDATE na tabela que vc está selecionado : conecta como o mesmo usuário em 
questão via sql*plus , pede um ALTER SESSION SET NLS_DATE_FORMAT='dd/mm/ 
hh24:mi:ss';  e depois executa um :

select IDMOBILE, SERVERTIME, MESSAGE, ISPROCESSED, ISMESSAGE,
COMMUNICATIONTYPE, VL_FUSO_HORARIO
from agm.ddn_gprs_entrada_bk
where servertime >= to_date('01/04/2012 00:00:00','DD/MM/ HH24:MI:SS') 
ND servertime <= to_date('15/04/2012 23:59:59','DD/MM/ HH24:MI:SS')

e veja o que Realmente está fravado lá ...

[]s

Chiappa
--- Em mailto:oracle_br%40yahoogrupos.com.br, "J. Laurindo Chiappa" 
 escreveu
>
>   Pelo que vc descreve, o que parece ** muito ** é que :
> 
>  a) vc tem uma TRIGGER na tabela sgpa2.ddp_contingencia_entrada que está 
> alterando o valor a gravar (trigger FOR EACH ROW ** podem ** fazer isso, é 
> Comum, isso é um dos Exemplos que sempre mostro pros meus alunos de PL/SQL)
> 
> e/ou
> 
>  b) vc tem alguma feature (datamasking, coluna virtual, VPD, algo nesse 
> sentido) alterando o valor trazido do banco pelo SELECT na coluna SERVERTIME 
> daagm.ddn_gprs_entrada_bk 
> 
> e/ou
> 
>  c) a sua tool de Programação/desenvolvimento está alterando o valor trazido 
> do banco pelo SELECT na coluna SERVERTIME da agm.ddn_gprs_entrada_bk 
> 
>  Parea vc descobrir qual é a Causa :  Verifique Cuidadosamente as triggers 
> que possam estar disparando, Confirme que as objetos Realmente são tabelas (e 
> não views que podem ter algum DECODE ou algo que troque valores dependendo de 
> uma condição), Confirme que sendo tabelas não são colunas virtuais o que vc 
> seleciona, E (para eliminar a possibilidade de tool/linguagem estar 
> interferindo) execute o INSERT não na sua tool de programação mas no 
> sql*plus Se vc quiser, pode inclusive pedir um trace do INSERT executado 
> no sql*plus, que aí vc verá Exatamente tudo que está sendo 
> disparado/executado...
> 
>  []s
> 
>Chiappa
> --- Em mailto:oracle_br%40yahoogrupos.com.br, Paulo Couto  
> escreveu
> >
> > Amigos, estou com um problema e acredito que vcs possam me ajudar.
> > 
> > O objetivo da query abaixo é inserir dados de uma tabela em outra tabela.
> > 
> > Os campos tem as mesmas caracteristicas.
> > 
> > Meu problema é que o campo SERVERTIME do tipo DATE ao ser gravado na 
> > segunda tabela fica com a data e hora atual do servidor, como se eu 
> > estivesse gravando um comando do tipo  select sysdate from dual;
> > 
> > Exemplo, se na tabela origem tenho 1000 registros com datas de 01 a 
> > 10/04/2012,  quando gravo na tabela destino ficam os 1000 registros só que 
> > com data e hora atual.
> > 
> > 
> > Estranho é que nas duas tabelas o campo SERVERTIME é do tipo DATE.
> > 
> > Obs: na primeira tabela os valores estão preenchidos com dia,mes,ano hora 
> > min e segundos.
> > Ex.   10/04/2012 22:50:10
> > 
> > 
> > Abs,
> > 
> > 
> > 
> > insert into sgpa2.ddp_contingencia_entrada ( IDMOBILE, SERVERTIME, MESSAGE, 
> > ISPROCESSED, ISMESSAGE, COMUNICATIONTYPE, VL_FUSO_HORARIO) 
> > select IDMOBILE, SERVERTIME, MESSAGE, ISPROCESSED, ISMESSAGE, 
> > COMMUNICATIONTYPE, VL_FUSO_HORARIO 
> > from agm.ddn_gprs_entrada_bk 
> > where servertime >= to_date('01/04/2012 00:00:00','DD/MM/ HH24:MI:SS')  
> > AND servertime <= to_date('15/04/2012 23:59:59','DD/MM/ HH24:MI:SS')
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>

   
 

[As partes desta mensagem que não continham texto foram removidas]