Re: [oracle_br] Re: D�vida - Select bem idiota !!!!

2008-05-13 Por tôpico Luis Eduardo Trovo
Chiappa,

Primeiramente muito obrigado pelo seu tempo em
responder a minha questão.

Inicialmente também pensei que seria simples, mas me
parece que realmente não conseguirei resolver este
caso somente usando um select comum sem utilizar
recusros externos!

Em relação ao que você considerou na sua solução,
assim como você, eu também consegui exibir o parâmetro
informado no where como apelido da coluna, porém este
fica no formato dia/mes/ano e no meu caso, preciso
que somente retorne mes/ano. É esta formatação do
parâmetro, no apelido da coluna, que estou apanhando
aqui em fazer.
Tentei também fazer um select deste select, tentando
formatar o valor do parâmetro, mas também sem grandes
resultados.

Um detalhe que não comentei é que, claro, o exemplo
que mandei é apenas para ilustrar o select que tenho,
pois ele é enorme!

Obrigado pela atenção.
Grato


--- jlchiappa [EMAIL PROTECTED] wrote:

 Luís, não acompanhei a thread toda mas pelo que
 entendi o que vc que é
 que uma parte do SELECT (o alias da coluna,no caso)
 seja dinâmico
 (vindo de um parâmetro, tá, mas DINÂMICO, quando o
 param mudar o alias
  muda também) : muito bem, em sendo isso a regra no
 bd oracle é CLARA,
 absolutamente SEMPRE, SEMPRE, SEMPRE que vc precisa
 que um ponto qquer
 da query seja dinâmico isso IMPLICA em transformar a
 query num **
 comando SQL dinâmico ** , rigorosamente ** NÃO TEM
 COMO ** vc ter a
 parte que for do comando SQL variando com SQL fixo,
 comum e
 normal Assim, enre outras coisas, vc vai ter
 MAIS COMPLEXIDADE
 no comando (já que NECESSARIAMENTE um SQL dinâmico
 envolve algum
 código extra), E também vai ter que PAGAR O PREÇO em
 performance se
 esse SQL for de uso frequente, pois NENHUM dos
 muitos métodos de SQL
 dinâmico é grátis  em termos de perofrmance, AO
 MENOS UM PARSE
 (normalmente HARD) é garantido
  Muito bem, se ainda assim é isso mesmo que vc quer,
 aí é checar no
 seu ambiente de programação quais recursos de SQL
 dinâmico que vc tem,
 e/ou investigar os nativos do banco (tal como REF
 CURSOR, EXECUTE
 IMMEDIATE, DBMS_SQL)... 
   Segue um exemplo com o recurso de SQL dinâmico
 nativo do sqlplus , e
 (ÓBVIO!!!) comparando colunas DATE com valores DATE
 (comparar DATEs
 com strings só pode dar BODE), E não esquecendo do
 componente TIME da
 coluna DATE, no meu caso todos são zero-hora então
 ok :
 
 == informo um param pro sqlplus...
 
 [EMAIL PROTECTED]:SQLaccept V_STR_DATA PROMPT Data:
 Data:17/06/1987
 
 == veja que ele lá está...
 
 [EMAIL PROTECTED]:SQLdefine V_STR_DATA
 
 DEFINE V_STR_DATA  = 17/06/1987 (CHAR)
 
 == uso o componente dinâmico do plus, com a sintaxe
 de  que é a dele :
 
 [EMAIL PROTECTED]:SQLSELECT SUM(SALARY) AS V_STR_DATA FROM
 EMPLOYEES
   2* WHERE HIRE_DATE = TO_DATE('V_STR_DATA',
 'DD/MM/');
 
 
 antigo   1: SELECT SUM(SALARY) AS V_STR_DATA FROM
 EMPLOYEES
 novo   1: SELECT SUM(SALARY) AS 17/06/1987 FROM
 EMPLOYEES
 antigo   2: WHERE HIRE_DATE = TO_DATE('V_STR_DATA',
 'DD/MM/')
 novo   2: WHERE HIRE_DATE = TO_DATE('17/06/1987',
 'DD/MM/')
 
 == olha o resultado, alias com o param cfrme vc
 queria :
 
 17/06/1987
 --
  24000
 
 [EMAIL PROTECTED]:SQL
 
 []s
 
  Chiappa
  --- Em oracle_br@yahoogrupos.com.br, Luis Eduardo
 Trovo [EMAIL PROTECTED]
 escreveu
 
  Diego,
  
  
  Até daria certo se o campo data na clausula where
  estivesse também neste formato mes/ano.
  E mesmo se eu converter este campo data da tabela,
  para este fomato mes/ano, não refletiria o
 resultado
  da soma desejado, pois estaria somando um mês todo
 e
  não apenas um dia.
  
  Obrigado.
  Luís.
  
  
  --- Diego Moura [EMAIL PROTECTED] wrote:
  
Tenta passar o parametro com formato tipo assim
   to_date(parametro,'MM/')
   
   2008/5/12 Luis Eduardo Trovo [EMAIL PROTECTED]:
   
  Gleyson,
   
Pode ser mesmo que eu tenha me expressado mal!
   
O nome da coluna (que é o resultado de uma
 soma)
   tem
que ser sempre o mês/ano de uma data passada
 no
where. Esta data que é passada no where,
 sempre
   varia,
pois é um parâmetro.
   
No exemplo que eu dei:
   
SELECT SUM(N.VALOR) VALOR_NF
FROM NOTAS N
WHERE N.DATA = '01/12/2007';
   
O resultado seria:
   
VALOR_NF

1200
   
Porém eu preciso que seja, ao invés de
 VALOR_NF,
seja a data passada no where formatada para
   mes/ano,
ou seja:
   
12/2007
---
1200
   
Tem alguma idéia?
   
Grato.
Luís.
   
   
--- Gleyson Melo [EMAIL PROTECTED]
   gleysonmelo%40gmail.com wrote:
   
 Luís,

 O seu problema não é exatamente esse. Você
 quer
   usar
 isso para resolver um
 problema maior. Se você disser qual o
 problema,
   pode
 ser que a gente dê uma
 solução bem melhor.

 2008/5/12 Luis Eduardo Trovo [EMAIL PROTECTED]
   l_trovo%40yahoo.com:

  Senhores(as), boa tarde!
 
  Considerem o seguinte select:
 
  SELECT SUM(N.VALOR) 

[oracle_br] Re: ORA-03106 em dblink entre Solaris e Windows (SOLUCIONADO)

2008-05-13 Por tôpico eladba
Bom dia!

Depois de muitas tentativas, testes e pesquisas, descobri que o 
problema trata-se de bug que tem como solução o Patch 5671074. Depois 
de aplicá-lo os objetos foram validados normalmente.

Agradeço a todos pelas colaborações.

Muito obrigada,

Elaine


--- Em oracle_br@yahoogrupos.com.br, jlchiappa [EMAIL PROTECTED] 
escreveu

 Colega, eu penso que o problema NÂO É o fato do banco remoto estar 
no
 Windows e o dblink estar no Solaris, pra mim o que houve é que 
alguém
 mexeu em config (por exemplo, global_names), e/ou permissões lá no
 banco remoto para o schema com o qual vc conecta no dblink :
 inclusive, um ponto-chave na minha análise é a msg :
 
 ORA-04052: error occurred when looking up remote  object
 
 ou seja, o banco NÃO consegue localizar o objeto que a procedure
 referencia lá no banco remoto : o fato de vc poder fazer SELECT com 
o
 objeto remoto MAS não poder usar ele numa procedure indica que 
talvez
 antes havia um GRANT direto desse objeto para o usuário do dblink, e
 hoje não há mais, algo do tipo... Sugestão : crie um NOVO dblink no
 banco-origem (solaris), conectando com um OUTRO usuário nesse outro
 banco Windows de teste , se assegure que o usuáriodo dblink recebeu
 GRANT direto no objeto que vc quer acessar e crie no Solaris uma
 procedure simples fazendo aceso ao objeto, veja lá...
 
 []s
 
  Chiappa
 --- Em oracle_br@yahoogrupos.com.br, eladba eladba@ escreveu
 
  Caro amigo,
  
  infelizmente não é esta a solução.
  
  Já tentamos fazer isso mas o erro é o mesmo, ou seja, tanto em 
  sessões do sqlplus no servidor solaris do banco de dados, ou no 
  cliente, ou até mesmo no servidor windows, a situação é a mesma. 
  
  Abaixo mostramos a mesma sessão sqlplus no servidor solaris 
fazendo 
  select na tabela que está dentro da procedure e o dblink, e logo 
em 
  seguida tentando compilar a procedure:
  
  SQL select count(*) from [EMAIL PROTECTED];
  
COUNT(*)
  --
1781
  
  SQL alter PROCEDURE schema.nome_procedure compile;
  
  Warning: Procedure altered with compilation errors.
  
  SQL sho errors
  
  81/1 PL/SQL: SQL Statement ignored
  96/1 PL/SQL: ORA-04052: error occurred when looking up remote 
  object
   [EMAIL PROTECTED]
   ORA-00604: error occurred at recursive SQL level 1
   ORA-03106: fatal two-task communication protocol error
   ORA-02063: preceding line from NOME_DBLINK
  
  
  Muito obrigada,
  
  Elaine
  
  --- Em oracle_br@yahoogrupos.com.br, Arystydes arystydes@ 
  escreveu
  
   Valide  a procedure no próprio banco, e não remotamente.
   
 - Original Message - 
 From: eladba 
 To: oracle_br@yahoogrupos.com.br ; 
[EMAIL PROTECTED] ; 
  [EMAIL PROTECTED] 
 Cc: DTQ03 - Mônica 
 Sent: Thursday, May 08, 2008 5:14 PM
 Subject: [oracle_br] ORA-03106 em dblink entre Solaris e 
Windows
   
   
 Boa tarde, pessoal.
   
 Temos dois bancos na versão 9.2.0.8, sendo que o banco de 
  produção está no servidor com Windows 2003 Server, e o banco de 
dados 
  de armazenamento da auditoria do produção está no Solaris 8.
   
 O dblink está no banco de dados do Solaris e tem um JOB no 
banco 
  de dados para ler os dados de algumas tabelas do banco de dados 
do 
  Windows, e atualizar as tabelas de auditoria e apagar as tabelas 
no 
  produção. Para esta tarefa existe uma PROCEDURE.
   
 PROBLEMA: Está tarefa estava funcionando bem, até que de uns 
dias 
  para cá o JOB começou a apresentar erro, percebemos então que a 
  PROCEDURE que faz a atualização estava invalida e ao validá-la 
  aparece a seguinte mensagem:
   
 PL/SQL: SQL Statement ignored
 PL/SQL: ORA-04052: error occurred when looking up remote 
object
 [EMAIL PROTECTED]
 ORA-00604: error occurred at recursive SQL level 1
 ORA-03106: fatal two-task communication protocol error
 ORA-02063: preceding line from DBLINK
   
 Mas quando é acessado o DBLINK para teste via SQLPLUS 
fazendo, 
  por exemplo, SELECT COUNT(*) FROM [EMAIL PROTECTED] há o 
retorno 
  da consulta, portanto a conexão está funcionando. O erro aparece 
na 
  validação da PROCEDURE.
   
 Alguém já passou por isso e pode nos dar alguma dica? 
   
 Detalhe, passamos a rotina exatamente como é para outro banco 
de 
  dados no Windows e voltou a funcionar. Ou seja, Windows X Windows 
  funciona, assim podemos dizer que o problema está entre Solaris X 
  Windows mesmo.
   
 Obrigada a todos,
   
 Elaine
   
 [As partes desta mensagem que não continham texto foram 
removidas]
   
   
   
  
   
   [As partes desta mensagem que não continham texto foram 
removidas]
  
 





RES: [oracle_br] Re: Dúvida - Select bem idiota !! !!

2008-05-13 Por tôpico Marcelo
Luis,
 
Fica difícil entender qual a finalidade exata deste seu Select. 
Você está usando numa aplicação Delphi/Java/.Net ou então direto no SQL
Plus?
 
 
Pois até agora vi todo mundo quebrar a cabeça tentando achar uma solução
porém a solução pode ser bem simples se soubéssemos onde vai ser aplicado
este select.
 
 
At.
 
Marcelo Alberto Lauschner 
Tecnologia e Sistemas
Auto Pratense Ltda 
* - Fone: (0XX54) 3242-3615
* - Fax: (0XX54) 3242-3648
* - E-mail:  BLOCKED::mailto:[EMAIL PROTECTED]
[EMAIL PROTECTED]
* - WWW: www.autopratense.com.br BLOCKED::http://www.autopratense.com.br/ 
  _  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Luis Eduardo Trovo
Enviada em: terça-feira, 13 de maio de 2008 08:30
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Re: Dúvida - Select bem idiota 
 
Chiappa,

Primeiramente muito obrigado pelo seu tempo em
responder a minha questão.

Inicialmente também pensei que seria simples, mas me
parece que realmente não conseguirei resolver este
caso somente usando um select comum sem utilizar
recusros externos!

Em relação ao que você considerou na sua solução,
assim como você, eu também consegui exibir o parâmetro
informado no where como apelido da coluna, porém este
fica no formato dia/mes/ano e no meu caso, preciso
que somente retorne mes/ano. É esta formatação do
parâmetro, no apelido da coluna, que estou apanhando
aqui em fazer.
Tentei também fazer um select deste select, tentando
formatar o valor do parâmetro, mas também sem grandes
resultados.

Um detalhe que não comentei é que, claro, o exemplo
que mandei é apenas para ilustrar o select que tenho,
pois ele é enorme!

Obrigado pela atenção.
Grato

--- jlchiappa [EMAIL PROTECTED] mailto:jlchiappa%40yahoo.com.br com.br
wrote:

 Luís, não acompanhei a thread toda mas pelo que
 entendi o que vc que é
 que uma parte do SELECT (o alias da coluna,no caso)
 seja dinâmico
 (vindo de um parâmetro, tá, mas DINÂMICO, quando o
 param mudar o alias
 muda também) : muito bem, em sendo isso a regra no
 bd oracle é CLARA,
 absolutamente SEMPRE, SEMPRE, SEMPRE que vc precisa
 que um ponto qquer
 da query seja dinâmico isso IMPLICA em transformar a
 query num **
 comando SQL dinâmico ** , rigorosamente ** NÃO TEM
 COMO ** vc ter a
 parte que for do comando SQL variando com SQL fixo,
 comum e
 normal Assim, enre outras coisas, vc vai ter
 MAIS COMPLEXIDADE
 no comando (já que NECESSARIAMENTE um SQL dinâmico
 envolve algum
 código extra), E também vai ter que PAGAR O PREÇO em
 performance se
 esse SQL for de uso frequente, pois NENHUM dos
 muitos métodos de SQL
 dinâmico é grátis em termos de perofrmance, AO
 MENOS UM PARSE
 (normalmente HARD) é garantido
 Muito bem, se ainda assim é isso mesmo que vc quer,
 aí é checar no
 seu ambiente de programação quais recursos de SQL
 dinâmico que vc tem,
 e/ou investigar os nativos do banco (tal como REF
 CURSOR, EXECUTE
 IMMEDIATE, DBMS_SQL)... 
 Segue um exemplo com o recurso de SQL dinâmico
 nativo do sqlplus , e
 (ÓBVIO!!!) comparando colunas DATE com valores DATE
 (comparar DATEs
 com strings só pode dar BODE), E não esquecendo do
 componente TIME da
 coluna DATE, no meu caso todos são zero-hora então
 ok :
 
 == informo um param pro sqlplus...
 
 [EMAIL PROTECTED]:SQLaccept V_STR_DATA PROMPT Data:
 Data:17/06/1987
 
 == veja que ele lá está...
 
 [EMAIL PROTECTED]:SQLdefine V_STR_DATA
 
 DEFINE V_STR_DATA = 17/06/1987 (CHAR)
 
 == uso o componente dinâmico do plus, com a sintaxe
 de  que é a dele :
 
 [EMAIL PROTECTED]:SQLSELECT SUM(SALARY) AS V_STR_DATA FROM
 EMPLOYEES
 2* WHERE HIRE_DATE = TO_DATE('V_STR_DATA',
 'DD/MM/');
 
 
 antigo 1: SELECT SUM(SALARY) AS V_STR_DATA FROM
 EMPLOYEES
 novo 1: SELECT SUM(SALARY) AS 17/06/1987 FROM
 EMPLOYEES
 antigo 2: WHERE HIRE_DATE = TO_DATE('V_STR_DATA',
 'DD/MM/')
 novo 2: WHERE HIRE_DATE = TO_DATE('17/06/1987',
 'DD/MM/')
 
 == olha o resultado, alias com o param cfrme vc
 queria :
 
 17/06/1987
 --
 24000
 
 [EMAIL PROTECTED]:SQL
 
 []s
 
 Chiappa
 --- Em [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.br
os.com.br, Luis Eduardo
 Trovo [EMAIL PROTECTED]
 escreveu
 
  Diego,
  
  
  Até daria certo se o campo data na clausula where
  estivesse também neste formato mes/ano.
  E mesmo se eu converter este campo data da tabela,
  para este fomato mes/ano, não refletiria o
 resultado
  da soma desejado, pois estaria somando um mês todo
 e
  não apenas um dia.
  
  Obrigado.
  Luís.
  
  
  --- Diego Moura [EMAIL PROTECTED] wrote:
  
   Tenta passar o parametro com formato tipo assim
   to_date(parametro,'MM/')
   
   2008/5/12 Luis Eduardo Trovo [EMAIL PROTECTED]:
   
Gleyson,
   
Pode ser mesmo que eu tenha me expressado mal!
   
O nome da coluna (que é o resultado de uma
 soma)
   tem
que ser sempre o mês/ano de uma data passada
 no
where. Esta data que é passada no where,
 sempre
   varia,
pois é um parâmetro.
   
No exemplo que eu dei:
   

[oracle_br] Re: [oracle br] Re: Dúvida - Select bem idiota !!!!

2008-05-13 Por tôpico Jean Carlo
kra.. isso não resolveria esse problema d trazer o mes/ano:
SQLWKS select to_char(sysdate, 'mm/')
2 from dual;
TO_CHAR
---
05/2008
1 linha selecionada.

--
att,
Jean Carlo Stein da Fonseca
Programador PL/SQL Forms/Reports 6i.
DBA Oracle Jr. em busca do OCA.
(48) 9604-6138


- Mensagem Original 
De: Luis Eduardo Trovo [EMAIL PROTECTED]
Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Re: Dúvida - Select bem idiota 
Data: 13/05/08 08:29


















 Chiappa,

 Primeiramente muito obrigado pelo seu tempo em
 responder a minha questão.

 Inicialmente também pensei que seria simples, mas me
 parece que realmente não conseguirei resolver este
 caso somente usando um select comum sem utilizar
 recusros externos!

 Em relaão ao que você considerou na sua soluão,
 assim como você, eu também consegui exibir o parâmetro
 informado no where como apelido da coluna, porém este
 fica no formato quot;dia/mes/anoquot; e no meu caso, preciso
 que somente retorne quot;mes/anoquot;. É esta formataão do
 parâmetro, no apelido da coluna, que estou apanhando
 aqui em fazer.
 Tentei também fazer um select deste select, tentando
 formatar o valor do parâmetro, mas também sem grandes
 resultados.

 Um detalhe que não comentei é que, claro, o exemplo
 que mandei é apenas para ilustrar o select que tenho,
 pois ele é enorme!

 Obrigado pela atenão.
 Grato

 --- jlchiappa lt;[EMAIL PROTECTED]gt; wrote:

 gt; Luís, não acompanhei a thread toda mas pelo que
 gt; entendi o que vc que é
 gt; que uma parte do SELECT (o alias da coluna,no caso)
 gt; seja dinâmico
 gt; (vindo de um parâmetro, tá, mas DINÂMICO, quando o
 gt; param mudar o alias
 gt;  muda também) : muito bem, em sendo isso a regra no
 gt; bd oracle é CLARA,
 gt; absolutamente SEMPRE, SEMPRE, SEMPRE que vc precisa
 gt; que um ponto qquer
 gt; da query seja dinâmico isso IMPLICA em transformar a
 gt; query num **
 gt; comando SQL dinâmico ** , rigorosamente ** NÃO TEM
 gt; COMO ** vc ter a
 gt; parte que for do comando SQL variando com SQL fixo,
 gt; quot;comumquot; e
 gt; quot;normalquot; Assim, enre outras coisas, vc vai ter
 gt; MAIS COMPLEXIDADE
 gt; no comando (já que NECESSARIAMENTE um SQL dinâmico
 gt; envolve algum
 gt; código extra), E também vai ter que PAGAR O PREÇO em
 gt; performance se
 gt; esse SQL for de uso frequente, pois NENHUM dos
 gt; muitos métodos de SQL
 gt; dinâmico é quot;grátisquot;  em termos de perofrmance, AO
 gt; MENOS UM PARSE
 gt; (normalmente HARD) é garantido
 gt;  Muito bem, se ainda assim é isso mesmo que vc quer,
 gt; aí é checar no
 gt; seu ambiente de programaão quais recursos de SQL
 gt; dinâmico que vc tem,
 gt; e/ou investigar os nativos do banco (tal como REF
 gt; CURSOR, EXECUTE
 gt; IMMEDIATE, DBMS_SQL)...
 gt;   Segue um exemplo com o recurso de SQL dinâmico
 gt; nativo do sqlplus , e
 gt; (ÓBVIO!!!) comparando colunas DATE com valores DATE
 gt; (comparar DATEs
 gt; com strings só pode dar BODE), E não esquecendo do
 gt; componente TIME da
 gt; coluna DATE, no meu caso todos são zero-hora então
 gt; ok :
 gt;
 gt; =gt; informo um param pro sqlplus...
 gt;
 gt; [EMAIL PROTECTED]:SQLgt;accept V_STR_DATA PROMPT quot;Data:quot;
 gt; Data:17/06/1987
 gt;
 gt; =gt; veja que ele lá está...
 gt;
 gt; [EMAIL PROTECTED]:SQLgt;define V_STR_DATA
 gt;
 gt; DEFINE V_STR_DATA  = quot;17/06/1987quot; (CHAR)
 gt;
 gt; =gt; uso o componente dinâmico do plus, com a sintaxe
 gt; de amp; que é a dele :
 gt;
 gt; [EMAIL PROTECTED]:SQLgt;SELECT SUM(SALARY) AS 
 quot;amp;V_STR_DATAquot; FROM
 gt; EMPLOYEES
 gt;   2* WHERE HIRE_DATE = TO_DATE('amp;V_STR_DATA',
 gt; 'DD/MM/');
 gt;
 gt;
 gt; antigo   1: SELECT SUM(SALARY) AS quot;amp;V_STR_DATAquot; FROM
 gt; EMPLOYEES
 gt; novo   1: SELECT SUM(SALARY) AS quot;17/06/1987quot; FROM
 gt; EMPLOYEES
 gt; antigo   2: WHERE HIRE_DATE = TO_DATE('amp;V_STR_DATA',
 gt; 'DD/MM/')
 gt; novo   2: WHERE HIRE_DATE = TO_DATE('17/06/1987',
 gt; 'DD/MM/')
 gt;
 gt; =gt; olha o resultado, alias com o param cfrme vc
 gt; queria :
 gt;
 gt; 17/06/1987
 gt; --
 gt;  24000
 gt;
 gt; [EMAIL PROTECTED]:SQLgt;
 gt;
 gt; []s
 gt;
 gt;  Chiappa
 gt;  --- Em oracle_br@yahoogrupos.com.br, Luis Eduardo
 gt; Trovo lt;[EMAIL PROTECTED]gt;
 gt; escreveu
 gt; gt;
 gt; gt; Diego,
 gt; gt;
 gt; gt;
 gt; gt; Até daria certo se o campo data na clausula where
 gt; gt; estivesse também neste formato quot;mes/anoquot;.
 gt; gt; E mesmo se eu converter este campo data da tabela,
 gt; gt; para este fomato quot;mes/anoquot;, não refletiria o
 gt; resultado
 gt; gt; da soma desejado, pois estaria somando um mês todo
 gt; e
 gt; gt; não apenas um dia.
 gt; gt;
 gt; gt; Obrigado.
 gt; gt; Luís.
 gt; gt;
 gt; gt;
 gt; gt; --- Diego Moura lt;[EMAIL PROTECTED]gt; wrote:
 gt; gt;
 gt; gt; gt;  Tenta passar o parametro com formato tipo assim
 gt; gt; gt; to_date(parametro,'MM/')
 gt; gt; gt;
 gt; gt; gt; 

Re: RES: [oracle_br] Re: D�vida - Select bem idiota !!!!

2008-05-13 Por tôpico Luis Eduardo Trovo
Bom dia Marcelo,

Obrigado pela resposta!

Sua pergunta é muito pertinente e é importante para
contextualizar o problema.

Este select em questão, que é apenas um exemplo para
não deixar o e-mail tão poluído, se tornará uma View.

Todas as vezes que eu tiver que acionar esta View,
passarei uma data como parâmetro (na clausula where).
E é com base neste valor da data que eu quero compor o
nome de uma coluna (dinamicamente), formatando esta
como mês/ano.

Grato.
Luís.

--- Marcelo [EMAIL PROTECTED] wrote:

 Luis,
  
 Fica difícil entender qual a finalidade exata deste
 seu Select. 
 Você está usando numa aplicação Delphi/Java/.Net ou
 então direto no SQL
 Plus?
  
  
 Pois até agora vi todo mundo quebrar a cabeça
 tentando achar uma solução
 porém a solução pode ser bem simples se soubéssemos
 onde vai ser aplicado
 este select.
  
  
 At.
  
 Marcelo Alberto Lauschner 
 Tecnologia e Sistemas
 Auto Pratense Ltda 
 * - Fone: (0XX54) 3242-3615
 * - Fax: (0XX54) 3242-3648
 * - E-mail: 
 BLOCKED::mailto:[EMAIL PROTECTED]
 [EMAIL PROTECTED]
 * - WWW: www.autopratense.com.br
 BLOCKED::http://www.autopratense.com.br/ 
   _  
 
 De: oracle_br@yahoogrupos.com.br
 [mailto:[EMAIL PROTECTED] Em
 nome de Luis Eduardo Trovo
 Enviada em: terça-feira, 13 de maio de 2008 08:30
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] Re: Dúvida - Select bem
 idiota 
  
 Chiappa,
 
 Primeiramente muito obrigado pelo seu tempo em
 responder a minha questão.
 
 Inicialmente também pensei que seria simples, mas me
 parece que realmente não conseguirei resolver este
 caso somente usando um select comum sem utilizar
 recusros externos!
 
 Em relação ao que você considerou na sua solução,
 assim como você, eu também consegui exibir o
 parâmetro
 informado no where como apelido da coluna, porém
 este
 fica no formato dia/mes/ano e no meu caso, preciso
 que somente retorne mes/ano. É esta formatação do
 parâmetro, no apelido da coluna, que estou apanhando
 aqui em fazer.
 Tentei também fazer um select deste select, tentando
 formatar o valor do parâmetro, mas também sem
 grandes
 resultados.
 
 Um detalhe que não comentei é que, claro, o exemplo
 que mandei é apenas para ilustrar o select que
 tenho,
 pois ele é enorme!
 
 Obrigado pela atenção.
 Grato
 
 --- jlchiappa [EMAIL PROTECTED]
 mailto:jlchiappa%40yahoo.com.br com.br
 wrote:
 
  Luís, não acompanhei a thread toda mas pelo que
  entendi o que vc que é
  que uma parte do SELECT (o alias da coluna,no
 caso)
  seja dinâmico
  (vindo de um parâmetro, tá, mas DINÂMICO, quando o
  param mudar o alias
  muda também) : muito bem, em sendo isso a regra no
  bd oracle é CLARA,
  absolutamente SEMPRE, SEMPRE, SEMPRE que vc
 precisa
  que um ponto qquer
  da query seja dinâmico isso IMPLICA em transformar
 a
  query num **
  comando SQL dinâmico ** , rigorosamente ** NÃO TEM
  COMO ** vc ter a
  parte que for do comando SQL variando com SQL
 fixo,
  comum e
  normal Assim, enre outras coisas, vc vai ter
  MAIS COMPLEXIDADE
  no comando (já que NECESSARIAMENTE um SQL dinâmico
  envolve algum
  código extra), E também vai ter que PAGAR O PREÇO
 em
  performance se
  esse SQL for de uso frequente, pois NENHUM dos
  muitos métodos de SQL
  dinâmico é grátis em termos de perofrmance, AO
  MENOS UM PARSE
  (normalmente HARD) é garantido
  Muito bem, se ainda assim é isso mesmo que vc
 quer,
  aí é checar no
  seu ambiente de programação quais recursos de SQL
  dinâmico que vc tem,
  e/ou investigar os nativos do banco (tal como REF
  CURSOR, EXECUTE
  IMMEDIATE, DBMS_SQL)... 
  Segue um exemplo com o recurso de SQL dinâmico
  nativo do sqlplus , e
  (ÓBVIO!!!) comparando colunas DATE com valores
 DATE
  (comparar DATEs
  com strings só pode dar BODE), E não esquecendo do
  componente TIME da
  coluna DATE, no meu caso todos são zero-hora então
  ok :
  
  == informo um param pro sqlplus...
  
  [EMAIL PROTECTED]:SQLaccept V_STR_DATA PROMPT Data:
  Data:17/06/1987
  
  == veja que ele lá está...
  
  [EMAIL PROTECTED]:SQLdefine V_STR_DATA
  
  DEFINE V_STR_DATA = 17/06/1987 (CHAR)
  
  == uso o componente dinâmico do plus, com a
 sintaxe
  de  que é a dele :
  
  [EMAIL PROTECTED]:SQLSELECT SUM(SALARY) AS V_STR_DATA
 FROM
  EMPLOYEES
  2* WHERE HIRE_DATE = TO_DATE('V_STR_DATA',
  'DD/MM/');
  
  
  antigo 1: SELECT SUM(SALARY) AS V_STR_DATA FROM
  EMPLOYEES
  novo 1: SELECT SUM(SALARY) AS 17/06/1987 FROM
  EMPLOYEES
  antigo 2: WHERE HIRE_DATE = TO_DATE('V_STR_DATA',
  'DD/MM/')
  novo 2: WHERE HIRE_DATE = TO_DATE('17/06/1987',
  'DD/MM/')
  
  == olha o resultado, alias com o param cfrme vc
  queria :
  
  17/06/1987
  --
  24000
  
  [EMAIL PROTECTED]:SQL
  
  []s
  
  Chiappa
  --- Em [EMAIL PROTECTED]
 mailto:oracle_br%40yahoogrupos.com.br
 os.com.br, Luis Eduardo
  Trovo [EMAIL PROTECTED]
  escreveu
  
   Diego,
   
   
   Até daria certo se o campo data na clausula
 where
   estivesse também neste formato mes/ano.
   E mesmo se eu converter 

Re: RES: [oracle_br] Re: Dúvida - Select bem idiota !!!!

2008-05-13 Por tôpico Gmail - Guilherme
Rapaiz é muita perfumariaehhehe

Cara bom acredito que foram dadas todas possiveis soluções a você a unica
maneira que na minha opnião, o que lhe resta é passar 3 parametros dia, mes
e ano separados

select sysdate mes/ano
from dual
 where sysdate = to_date(dia||'/'||mes||'/'||ano, 'dd/mm/')
  and sysdate = last_day(to_date(dia||'/'||mes||'/'||ano, 'dd/mm/'))


Acredito que só assim voce ira conseguir esta proeza e se tiver outra forma
ficarei grato em saber

2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED]:

   Bom dia Marcelo,

 Obrigado pela resposta!

 Sua pergunta é muito pertinente e é importante para
 contextualizar o problema.

 Este select em questão, que é apenas um exemplo para
 não deixar o e-mail tão poluído, se tornará uma View.

 Todas as vezes que eu tiver que acionar esta View,
 passarei uma data como parâmetro (na clausula where).
 E é com base neste valor da data que eu quero compor o
 nome de uma coluna (dinamicamente), formatando esta
 como mês/ano.

 Grato.
 Luís.

 --- Marcelo [EMAIL PROTECTED] marcelo%40autopratense.com.br
 wrote:

  Luis,
 
  Fica difícil entender qual a finalidade exata deste
  seu Select.
  Você está usando numa aplicação Delphi/Java/.Net ou
  então direto no SQL
  Plus?
 
 
  Pois até agora vi todo mundo quebrar a cabeça
  tentando achar uma solução
  porém a solução pode ser bem simples se soubéssemos
  onde vai ser aplicado
  este select.
 
 
  At.
 
  Marcelo Alberto Lauschner
  Tecnologia e Sistemas
  Auto Pratense Ltda
  * - Fone: (0XX54) 3242-3615
  * - Fax: (0XX54) 3242-3648
  * - E-mail:
  BLOCKED::mailto:[EMAIL PROTECTED]marcelo%40autopratense.com.br
 
  [EMAIL PROTECTED] marcelo%40autopratense.com.br
  * - WWW: www.autopratense.com.br
  BLOCKED::http://www.autopratense.com.br/
  _
 
  De: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  [mailto:oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br]
 Em
  nome de Luis Eduardo Trovo
  Enviada em: terça-feira, 13 de maio de 2008 08:30

  Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  Assunto: Re: [oracle_br] Re: Dúvida - Select bem
  idiota 
 
  Chiappa,
 
  Primeiramente muito obrigado pelo seu tempo em
  responder a minha questão.
 
  Inicialmente também pensei que seria simples, mas me
  parece que realmente não conseguirei resolver este
  caso somente usando um select comum sem utilizar
  recusros externos!
 
  Em relação ao que você considerou na sua solução,
  assim como você, eu também consegui exibir o
  parâmetro
  informado no where como apelido da coluna, porém
  este
  fica no formato dia/mes/ano e no meu caso, preciso
  que somente retorne mes/ano. É esta formatação do
  parâmetro, no apelido da coluna, que estou apanhando
  aqui em fazer.
  Tentei também fazer um select deste select, tentando
  formatar o valor do parâmetro, mas também sem
  grandes
  resultados.
 
  Um detalhe que não comentei é que, claro, o exemplo
  que mandei é apenas para ilustrar o select que
  tenho,
  pois ele é enorme!
 
  Obrigado pela atenção.
  Grato
 
  --- jlchiappa [EMAIL PROTECTED]
  mailto:jlchiappa%40yahoo.com.br jlchiappa%2540yahoo.com.br com.br
  wrote:
 
   Luís, não acompanhei a thread toda mas pelo que
   entendi o que vc que é
   que uma parte do SELECT (o alias da coluna,no
  caso)
   seja dinâmico
   (vindo de um parâmetro, tá, mas DINÂMICO, quando o
   param mudar o alias
   muda também) : muito bem, em sendo isso a regra no
   bd oracle é CLARA,
   absolutamente SEMPRE, SEMPRE, SEMPRE que vc
  precisa
   que um ponto qquer
   da query seja dinâmico isso IMPLICA em transformar
  a
   query num **
   comando SQL dinâmico ** , rigorosamente ** NÃO TEM
   COMO ** vc ter a
   parte que for do comando SQL variando com SQL
  fixo,
   comum e
   normal Assim, enre outras coisas, vc vai ter
   MAIS COMPLEXIDADE
   no comando (já que NECESSARIAMENTE um SQL dinâmico
   envolve algum
   código extra), E também vai ter que PAGAR O PREÇO
  em
   performance se
   esse SQL for de uso frequente, pois NENHUM dos
   muitos métodos de SQL
   dinâmico é grátis em termos de perofrmance, AO
   MENOS UM PARSE
   (normalmente HARD) é garantido
   Muito bem, se ainda assim é isso mesmo que vc
  quer,
   aí é checar no
   seu ambiente de programação quais recursos de SQL
   dinâmico que vc tem,
   e/ou investigar os nativos do banco (tal como REF
   CURSOR, EXECUTE
   IMMEDIATE, DBMS_SQL)...
   Segue um exemplo com o recurso de SQL dinâmico
   nativo do sqlplus , e
   (ÓBVIO!!!) comparando colunas DATE com valores
  DATE
   (comparar DATEs
   com strings só pode dar BODE), E não esquecendo do
   componente TIME da
   coluna DATE, no meu caso todos são zero-hora então
   ok :
  
   == informo um param pro sqlplus...
  
   [EMAIL PROTECTED]:SQLaccept V_STR_DATA PROMPT Data:
   Data:17/06/1987
  
   == veja que ele lá está...
  
   [EMAIL PROTECTED]:SQLdefine V_STR_DATA
  
   DEFINE V_STR_DATA = 17/06/1987 (CHAR)
  
   == uso o componente dinâmico do 

[oracle_br] Re: Dúvida - Select bem idiota !!!!

2008-05-13 Por tôpico Leonardo Rezende
Luís,

Ainda assim está difícil de visualizar o seu problema inicial... 
Diga o porque você precisa disso. Que ferramenta você está usando.

Por exemplo, se você estiver usando delphi é bem fácil resolver isso 
com uma macro.




Luis Eduardo Trovo escreveu:
 
 
 Bom dia Marcelo,
 
 Obrigado pela resposta!
 
 Sua pergunta é muito pertinente e é importante para
 contextualizar o problema.
 
 Este select em questão, que é apenas um exemplo para
 não deixar o e-mail tão poluído, se tornará uma View.
 
 Todas as vezes que eu tiver que acionar esta View,
 passarei uma data como parâmetro (na clausula where).
 E é com base neste valor da data que eu quero compor o
 nome de uma coluna (dinamicamente), formatando esta
 como mês/ano.
 
 Grato.
 Luís.
 
 --- Marcelo [EMAIL PROTECTED] 
 mailto:marcelo%40autopratense.com.br wrote:
 
   Luis,
  
   Fica difícil entender qual a finalidade exata deste
   seu Select.
   Você está usando numa aplicação Delphi/Java/.Net ou
   então direto no SQL
   Plus?
  
  
   Pois até agora vi todo mundo quebrar a cabeça
   tentando achar uma solução
   porém a solução pode ser bem simples se soubéssemos
   onde vai ser aplicado
   este select.
  
  
   At.
  
   Marcelo Alberto Lauschner
   Tecnologia e Sistemas
   Auto Pratense Ltda
   * - Fone: (0XX54) 3242-3615
   * - Fax: (0XX54) 3242-3648
   * - E-mail:
   BLOCKED::mailto:[EMAIL PROTECTED] 
 mailto:marcelo%40autopratense.com.br
   [EMAIL PROTECTED] mailto:marcelo%40autopratense.com.br
   * - WWW: www.autopratense.com.br
   BLOCKED::http://www.autopratense.com.br/ 
 http://www.autopratense.com.br/
   _
  
   De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
   [mailto:oracle_br@yahoogrupos.com.br 
 mailto:oracle_br%40yahoogrupos.com.br] Em
   nome de Luis Eduardo Trovo
   Enviada em: terça-feira, 13 de maio de 2008 08:30
   Para: oracle_br@yahoogrupos.com.br 
 mailto:oracle_br%40yahoogrupos.com.br
   Assunto: Re: [oracle_br] Re: Dúvida - Select bem
   idiota 
  
   Chiappa,
  
   Primeiramente muito obrigado pelo seu tempo em
   responder a minha questão.
  
   Inicialmente também pensei que seria simples, mas me
   parece que realmente não conseguirei resolver este
   caso somente usando um select comum sem utilizar
   recusros externos!
  
   Em relação ao que você considerou na sua solução,
   assim como você, eu também consegui exibir o
   parâmetro
   informado no where como apelido da coluna, porém
   este
   fica no formato dia/mes/ano e no meu caso, preciso
   que somente retorne mes/ano. É esta formatação do
   parâmetro, no apelido da coluna, que estou apanhando
   aqui em fazer.
   Tentei também fazer um select deste select, tentando
   formatar o valor do parâmetro, mas também sem
   grandes
   resultados.
  
   Um detalhe que não comentei é que, claro, o exemplo
   que mandei é apenas para ilustrar o select que
   tenho,
   pois ele é enorme!
  
   Obrigado pela atenção.
   Grato
  
   --- jlchiappa [EMAIL PROTECTED]
   mailto:jlchiappa%40yahoo.com.br com.br
   wrote:
  
Luís, não acompanhei a thread toda mas pelo que
entendi o que vc que é
que uma parte do SELECT (o alias da coluna,no
   caso)
seja dinâmico
(vindo de um parâmetro, tá, mas DINÂMICO, quando o
param mudar o alias
muda também) : muito bem, em sendo isso a regra no
bd oracle é CLARA,
absolutamente SEMPRE, SEMPRE, SEMPRE que vc
   precisa
que um ponto qquer
da query seja dinâmico isso IMPLICA em transformar
   a
query num **
comando SQL dinâmico ** , rigorosamente ** NÃO TEM
COMO ** vc ter a
parte que for do comando SQL variando com SQL
   fixo,
comum e
normal Assim, enre outras coisas, vc vai ter
MAIS COMPLEXIDADE
no comando (já que NECESSARIAMENTE um SQL dinâmico
envolve algum
código extra), E também vai ter que PAGAR O PREÇO
   em
performance se
esse SQL for de uso frequente, pois NENHUM dos
muitos métodos de SQL
dinâmico é grátis em termos de perofrmance, AO
MENOS UM PARSE
(normalmente HARD) é garantido
Muito bem, se ainda assim é isso mesmo que vc
   quer,
aí é checar no
seu ambiente de programação quais recursos de SQL
dinâmico que vc tem,
e/ou investigar os nativos do banco (tal como REF
CURSOR, EXECUTE
IMMEDIATE, DBMS_SQL)...
Segue um exemplo com o recurso de SQL dinâmico
nativo do sqlplus , e
(ÓBVIO!!!) comparando colunas DATE com valores
   DATE
(comparar DATEs
com strings só pode dar BODE), E não esquecendo do
componente TIME da
coluna DATE, no meu caso todos são zero-hora então
ok :
   
== informo um param pro sqlplus...
   
[EMAIL PROTECTED]:SQLaccept V_STR_DATA PROMPT Data:
Data:17/06/1987
   
== veja que ele lá está...
   
[EMAIL PROTECTED]:SQLdefine V_STR_DATA
   
DEFINE V_STR_DATA = 17/06/1987 (CHAR)
   
== uso o componente dinâmico do plus, com a
   sintaxe
de  que é a dele :
   
[EMAIL 

Re: RES: [oracle_br] Re: D�vida - Select bem idiota !!!!

2008-05-13 Por tôpico Luis Eduardo Trovo
Rs .. cara, é perfumaria demais para minha opinião
também, mas, o usuário quer assim! Fazer o que!?

Sua resposta é a que melhor resolveu realmente! 

Ainda assim, não vou conseguir utilizá-la, pois o meu
campo de data, na tabela, não está quebrado em dia,
mês e ano.

Se ainda este select estivesse dentro de uma
procedure, function, enfim, em algum aplicativo, eu
conseguiria manipulá-lo, mas este select é a
composição de uma View.

E já se foi um dia batendo a cabeça nesta porcaria de
select. Rs.

Abraços.
Luís.



--- Gmail - Guilherme [EMAIL PROTECTED] wrote:

 Rapaiz é muita perfumariaehhehe
 
 Cara bom acredito que foram dadas todas possiveis
 soluções a você a unica
 maneira que na minha opnião, o que lhe resta é
 passar 3 parametros dia, mes
 e ano separados
 
 select sysdate mes/ano
 from dual
  where sysdate =
 to_date(dia||'/'||mes||'/'||ano, 'dd/mm/')
   and sysdate =
 last_day(to_date(dia||'/'||mes||'/'||ano,
 'dd/mm/'))
 
 
 Acredito que só assim voce ira conseguir esta proeza
 e se tiver outra forma
 ficarei grato em saber
 
 2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED]:
 
Bom dia Marcelo,
 
  Obrigado pela resposta!
 
  Sua pergunta é muito pertinente e é importante
 para
  contextualizar o problema.
 
  Este select em questão, que é apenas um exemplo
 para
  não deixar o e-mail tão poluído, se tornará uma
 View.
 
  Todas as vezes que eu tiver que acionar esta View,
  passarei uma data como parâmetro (na clausula
 where).
  E é com base neste valor da data que eu quero
 compor o
  nome de uma coluna (dinamicamente), formatando
 esta
  como mês/ano.
 
  Grato.
  Luís.
 
  --- Marcelo [EMAIL PROTECTED]
 marcelo%40autopratense.com.br
  wrote:
 
   Luis,
  
   Fica difícil entender qual a finalidade exata
 deste
   seu Select.
   Você está usando numa aplicação Delphi/Java/.Net
 ou
   então direto no SQL
   Plus?
  
  
   Pois até agora vi todo mundo quebrar a cabeça
   tentando achar uma solução
   porém a solução pode ser bem simples se
 soubéssemos
   onde vai ser aplicado
   este select.
  
  
   At.
  
   Marcelo Alberto Lauschner
   Tecnologia e Sistemas
   Auto Pratense Ltda
   * - Fone: (0XX54) 3242-3615
   * - Fax: (0XX54) 3242-3648
   * - E-mail:
  

BLOCKED::mailto:[EMAIL PROTECTED]marcelo%40autopratense.com.br
  
   [EMAIL PROTECTED]
 marcelo%40autopratense.com.br
   * - WWW: www.autopratense.com.br
   BLOCKED::http://www.autopratense.com.br/
   _
  
   De: oracle_br@yahoogrupos.com.br
 oracle_br%40yahoogrupos.com.br
   [mailto:oracle_br@yahoogrupos.com.br
 oracle_br%40yahoogrupos.com.br]
  Em
   nome de Luis Eduardo Trovo
   Enviada em: terça-feira, 13 de maio de 2008
 08:30
 
   Para: oracle_br@yahoogrupos.com.br
 oracle_br%40yahoogrupos.com.br
   Assunto: Re: [oracle_br] Re: Dúvida - Select bem
   idiota 
  
   Chiappa,
  
   Primeiramente muito obrigado pelo seu tempo em
   responder a minha questão.
  
   Inicialmente também pensei que seria simples,
 mas me
   parece que realmente não conseguirei resolver
 este
   caso somente usando um select comum sem utilizar
   recusros externos!
  
   Em relação ao que você considerou na sua
 solução,
   assim como você, eu também consegui exibir o
   parâmetro
   informado no where como apelido da coluna, porém
   este
   fica no formato dia/mes/ano e no meu caso,
 preciso
   que somente retorne mes/ano. É esta formatação
 do
   parâmetro, no apelido da coluna, que estou
 apanhando
   aqui em fazer.
   Tentei também fazer um select deste select,
 tentando
   formatar o valor do parâmetro, mas também sem
   grandes
   resultados.
  
   Um detalhe que não comentei é que, claro, o
 exemplo
   que mandei é apenas para ilustrar o select que
   tenho,
   pois ele é enorme!
  
   Obrigado pela atenção.
   Grato
  
   --- jlchiappa [EMAIL PROTECTED]
   mailto:jlchiappa%40yahoo.com.br
 jlchiappa%2540yahoo.com.br com.br
   wrote:
  
Luís, não acompanhei a thread toda mas pelo
 que
entendi o que vc que é
que uma parte do SELECT (o alias da coluna,no
   caso)
seja dinâmico
(vindo de um parâmetro, tá, mas DINÂMICO,
 quando o
param mudar o alias
muda também) : muito bem, em sendo isso a
 regra no
bd oracle é CLARA,
absolutamente SEMPRE, SEMPRE, SEMPRE que vc
   precisa
que um ponto qquer
da query seja dinâmico isso IMPLICA em
 transformar
   a
query num **
comando SQL dinâmico ** , rigorosamente ** NÃO
 TEM
COMO ** vc ter a
parte que for do comando SQL variando com SQL
   fixo,
comum e
normal Assim, enre outras coisas, vc vai
 ter
MAIS COMPLEXIDADE
no comando (já que NECESSARIAMENTE um SQL
 dinâmico
envolve algum
código extra), E também vai ter que PAGAR O
 PREÇO
   em
performance se
esse SQL for de uso frequente, pois NENHUM dos
muitos métodos de SQL
dinâmico é grátis em termos de perofrmance,
 AO
MENOS UM PARSE
(normalmente HARD) é garantido
Muito bem, se ainda assim é isso mesmo que vc
   quer,
aí 

[oracle_br] RHEL5 64bit x Oracle10gR1 64bit: é possível?

2008-05-13 Por tôpico jljlsilva
Senhores, bom dia.
Gostaria de saber se alguém aqui do grupo já instalou Oracle10gR1 em 
RHEL5 64bit.
Não encontrei informação de homologação no metalink...
Obrigado.



Re: [oracle_br] RHEL5 64bit x Oracle10gR1 64bit: é possível?

2008-05-13 Por tôpico Ivan Ricardo Schuster
O Oracle 10g(R1) não eh homologado para o RHEL5

2008/5/13 jljlsilva [EMAIL PROTECTED]:
 Senhores, bom dia.
 Gostaria de saber se alguém aqui do grupo já instalou Oracle10gR1 em
 RHEL5 64bit.
 Não encontrei informação de homologação no metalink...
 Obrigado.


 

 --
 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/
 --
 Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM SEU 
 PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
 
  Links do Yahoo! Grupos





[oracle_br] Re: RHEL5 64bit x Oracle10gR1 64bit: é possível?

2008-05-13 Por tôpico jljlsilva
Sim, foi isso que eu entendi também, ao consultar a matriz de 
certificação no metalink.
Mas, preciso saber se alguém tem essa configuração instalada, se já 
houve algum tipo de problema ou se está estável.

--- Em oracle_br@yahoogrupos.com.br, Ivan Ricardo Schuster 
[EMAIL PROTECTED] escreveu

 O Oracle 10g(R1) não eh homologado para o RHEL5
 
 2008/5/13 jljlsilva [EMAIL PROTECTED]:
  Senhores, bom dia.
  Gostaria de saber se alguém aqui do grupo já instalou Oracle10gR1 
em
  RHEL5 64bit.
  Não encontrei informação de homologação no metalink...
  Obrigado.
 
 
  
 
  --

  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/
  --

  Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR 
TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
  --
-- Links do 
Yahoo! Grupos
 
 
 





RE: [oracle_br] RHEL5 64bit x Oracle10gR1 64bit: é pos sível?

2008-05-13 Por tôpico orfeu lima
no RHEL5 nao, mas no suse10 sim.Mas é possível instalar sim.


To: [EMAIL PROTECTED]: [EMAIL PROTECTED]: Tue, 13 May 2008 13:22:05 
+Subject: [oracle_br] RHEL5 64bit x Oracle10gR1 64bit: é possível?




Senhores, bom dia.Gostaria de saber se alguém aqui do grupo já instalou 
Oracle10gR1 em RHEL5 64bit.Não encontrei informação de homologação no 
metalink...Obrigado. 






_
Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de relacionamentos 
com até 6,000 fotos!
http://www.amigosdomessenger.com.br

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



RE: [oracle_br] RHEL5 64bit x Oracle10gR1 64bit: é pos sível?

2008-05-13 Por tôpico orfeu lima
desculpe, o r1 nao, mas o r2 sim.


To: [EMAIL PROTECTED]: [EMAIL PROTECTED]: Tue, 13 May 2008 13:43:15 
+Subject: RE: [oracle_br] RHEL5 64bit x Oracle10gR1 64bit: é possível?




no RHEL5 nao, mas no suse10 sim.Mas é possível instalar sim.To: [EMAIL 
PROTECTED]: [EMAIL PROTECTED]: Tue, 13 May 2008 13:22:05 +Subject: 
[oracle_br] RHEL5 64bit x Oracle10gR1 64bit: é possível?Senhores, bom 
dia.Gostaria de saber se alguém aqui do grupo já instalou Oracle10gR1 em RHEL5 
64bit.Não encontrei informação de homologação no metalink...Obrigado. 
__Cansado de espaço 
para só 50 fotos? Conheça o Spaces, o site de relacionamentos com até 6,000 
fotos!http://www.amigosdomessenger.com.br[As partes desta mensagem que não 
continham texto foram removidas] 






_
Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o 
Messenger! É GRÁTIS!
http://www.msn.com.br/emoticonpack

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



Re: RES: RES: [oracle_br] Re: Dúvida - Select bem idiota !!!!

2008-05-13 Por tôpico Andre Santos
Luis

Mas vocês vão tentar fazer uma view parametrizada? (na cláusula WHERE?)
Até onde sei, isso não é possível...

Bom... creio que isso foi um desafio de POG (
http://desciclo.pedia.ws/wiki/POG)
;^)

Então segue uma sugestão que pode ser colocada em um script (já que
pretendem executar através do SQL Plus).

[ ]'s

André

SQL -- Preparação e verificação --
SQL

SQL DESC teste
 Nome  Nulo?Tipo
 - 

 DT DATE
 VALOR  NUMBER(9,2)

SQL SELECT * FROM teste;

DT   VALOR
--- --
12/05/2008 00:00:00   1000
12/05/2008 00:00:00500
13/05/2008 00:00:00   2000
13/05/2008 00:00:00300

SQL CREATE OR REPLACE VIEW vw_teste
  2  AS SELECT dt, SUM(valor) soma_dia
  3  FROM teste
  4  GROUP BY dt;

View criada.

SQL SELECT * FROM vw_teste;

DTSOMA_DIA
--- --
12/05/2008 00:00:00   1500
13/05/2008 00:00:00   2300

SQL -- Execução --
SQL

SQL ACCEPT p_dia CHAR PROMPT 'Digite o dia da data (de 01 a 31): '
Digite o dia da data (de 01 a 31): 12
SQL
SQL ACCEPT p_mes CHAR PROMPT 'Digite o mês da data (de 01 a 12): '
Digite o mês da data (de 01 a 12): 05
SQL
SQL ACCEPT p_ano CHAR PROMPT 'Digite o ano (com 4 dígitos): '
Digite o ano (com 4 dígitos): 2008
SQL
SQL SELECT soma_dia p_mes/p_ano
  2  FROM vw_teste
  3  WHERE dt = TO_DATE('p_dia/p_mes/p_ano','dd/mm/');
antigo   1: SELECT soma_dia p_mes/p_ano
novo   1: SELECT soma_dia 05/2008
antigo   3: WHERE dt = TO_DATE('p_dia/p_mes/p_ano','dd/mm/')
novo   3: WHERE dt = TO_DATE('12/05/2008','dd/mm/')

   05/2008
--
  1500

SQL
SQL -- Finalização ---
SQL UNDEFINE p_dia
SQL UNDEFINE p_mes
SQL UNDEFINE p_ano

__
Em 13/05/08, Luis Eduardo Trovo [EMAIL PROTECTED] escreveu:

   Marcelo,

 A View vai ser chamada por um select no Sql Plus.

 O select da View tem um campo chamado data, onde vou
 informar o dia/mes/ano.
 Após executar o select na view, o retorno de
 determinada coluna tem que ter o apelido desta data,
 porém no formato mes/ano.

 Grato.
 Luís

 --- Marcelo [EMAIL PROTECTED] marcelo%40autopratense.com.br
 wrote:

  Luis,
 
  Ainda assim, você não respondeu de onde parte a
  execução da instrução SQL
  que cria a view, se é de uma aplicação
  Java/Delphi/.Net ou
  SqlPlus/Procedure/trigger.
 
  Desculpa ser insistente com esta pergunta, mas como
  você mencionou que você
  irá sempre atualizar a mesma view, sendo a partir de
  uma aplicação basta
  passar o comando SQL já formatado:
 
  CREATE OR REPLACE VIEW view_teste AS
  SELECT SYSDATE 05/2008
  FROM DUAL
 
  Ou então criar uma procedure.
 
  create or replace procedure create_view(mes_ano
  char) is
  begin
  execute immediate('CREATE OR REPLACE VIEW
  view_teste AS
  SELECT SYSDATE ' || mes_ano ||
  ' FROM DUAL');
  end ;
 
 
 
  Atenciosamente,
 
 
  Marcelo Alberto Lauschner
  Tecnologia e Sistemas
  Auto Pratense Ltda
  * - Fone: (0XX54) 3242-3615
  * - Fax: (0XX54) 3242-3648
  * - E-mail:
  BLOCKED::mailto:[EMAIL PROTECTED]marcelo%40autopratense.com.br
 
  [EMAIL PROTECTED] marcelo%40autopratense.com.br
  * - WWW: www.autopratense.com.br
  BLOCKED::http://www.autopratense.com.br/
  _
 
  De: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  [mailto:oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br]
 Em
  nome de Luis Eduardo Trovo
  Enviada em: terça-feira, 13 de maio de 2008 09:02
  Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  Assunto: Re: RES: [oracle_br] Re: Dúvida - Select
  bem idiota 
 
  Bom dia Marcelo,
 
  Obrigado pela resposta!
 
  Sua pergunta é muito pertinente e é importante para
  contextualizar o problema.
 
  Este select em questão, que é apenas um exemplo para
  não deixar o e-mail tão poluído, se tornará uma
  View.
 
  Todas as vezes que eu tiver que acionar esta View,
  passarei uma data como parâmetro (na clausula
  where).
  E é com base neste valor da data que eu quero compor
  o
  nome de uma coluna (dinamicamente), formatando esta
  como mês/ano.
 
  Grato.
  Luís.
 
  --- Marcelo [EMAIL PROTECTED]
  mailto:marcelo%40autopratense.com.br marcelo%2540autopratense.com.br
  e.com.br wrote:
 
   Luis,
  
   Fica difícil entender qual a finalidade exata
  deste
   seu Select.
   Você está usando numa aplicação Delphi/Java/.Net
  ou
   então direto no SQL
   Plus?
  
  
   Pois até agora vi todo mundo quebrar a cabeça
   tentando achar uma solução
   porém a solução pode ser bem simples se
  soubéssemos
   onde vai ser aplicado
   este select.
  
  
   At.
  
   Marcelo Alberto Lauschner
   Tecnologia e Sistemas
   Auto Pratense Ltda
   * - Fone: (0XX54) 3242-3615
   * - Fax: 

Re: RES: RES: [oracle_br] Re: Dúvida - Select bem idiota !!!!

2008-05-13 Por tôpico Gleyson Melo
Fala Eduardo,

Se é pra rodar no SQLPlus, então não é para o usuário final. Porque a
preocupação com um nome dinâmico do campo?

Se é pra uma equipe de operação, que só fica monitorando, porque criar uma
view se você pode criar um script com uma entrada muito mais simples, como o
André mencionou? Assim, o operador não precisa saber SQL.

Porque tem que ser no sqlplus, se você poderia fazer em Delphi, Java, .NET,
PHP, ... e gerar uma saída muito mais bonita e moderna?

Na verdade, talvez não exista uma solução para esse problema porque esse
problema não é relevante para o resto do universo de TI. O que você quer, no
fim das contas, provavelmente pode ser resolvido de outra maneira. Você não
quer explicar o contexto de forma mais detalhada?

2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED]:

   Marcelo,

 Primeiramente, obrigado pela atenção!

 Criei aqui um processo para tentar exemplificar o
 exemplo.

  Crio uma view com a data e um valor

 SQL
 SQL CREATE VIEW LIXO AS
 2 SELECT F.F_DT_TRANS DT_TRANS, F.F_VL_PARCELA
 VL_PARCELA
 3 FROM F_BUSSOLA F
 4 WHERE F.F_CD_REDE = 1
 5 AND F.F_PRODUTO = 224;

 View created

 SQL
 SQL


  Acesso a view Lixo, passando uma data:


 SQL
 SQL SELECT SUM(L.VL_PARCELA)
 2 FROM LIXO L
 3 WHERE L.DT_TRANS = '01/12/2007';

 SUM(L.VL_PARCELA)
 -
 50621,63

 SQL
 SQL

 O resultado do select, tem como apelido para a coluna
 o SUM(L.VL_PARCELA), porém, eu preciso que este
 apelido seja uma formatação da data que eu filtrei o
 resultado (01/12/2007), ou seja, preciso que o
 resultado seja uma formatação de '01/12/2007' para
 12/2007.

 Em outras palavras, o resultado que eu preciso é:


 12/2007
 -
 50621,63


 O exemplo que você montou funciona, porém eu não
 tenho, na tabela em questão, um campo para dia, mês e
 ano separadamente. Ou seja, preciso passar a data
 completa no where (ou parâmetro - como me expressei
 antes).

 Obrigado.
 Luís.


 --- Andre Santos [EMAIL PROTECTED]andre.psantos.ti%40gmail.com
 wrote:

  Luis
 
  Mas vocês vão tentar fazer uma view parametrizada?
  (na cláusula WHERE?)
  Até onde sei, isso não é possível...
 
  Bom... creio que isso foi um desafio de POG (
  http://desciclo.pedia.ws/wiki/POG)
  ;^)
 
  Então segue uma sugestão que pode ser colocada em um
  script (já que
  pretendem executar através do SQL Plus).
 
  [ ]'s
 
  André
 
  SQL -- Preparação e verificação
  --
  SQL
 
  SQL DESC teste
  Nome Nulo?
  Tipo
  - 
  
  DT
  DATE
  VALOR
  NUMBER(9,2)
 
  SQL SELECT * FROM teste;
 
  DT VALOR
  --- --
  12/05/2008 00:00:00 1000
  12/05/2008 00:00:00 500
  13/05/2008 00:00:00 2000
  13/05/2008 00:00:00 300
 
  SQL CREATE OR REPLACE VIEW vw_teste
  2 AS SELECT dt, SUM(valor) soma_dia
  3 FROM teste
  4 GROUP BY dt;
 
  View criada.
 
  SQL SELECT * FROM vw_teste;
 
  DT SOMA_DIA
  --- --
  12/05/2008 00:00:00 1500
  13/05/2008 00:00:00 2300
 
  SQL -- Execução
  --
  SQL
 
  SQL ACCEPT p_dia CHAR PROMPT 'Digite o dia da
  data (de 01 a 31): '
  Digite o dia da data (de 01 a 31): 12
  SQL
  SQL ACCEPT p_mes CHAR PROMPT 'Digite o mês da
  data (de 01 a 12): '
  Digite o mês da data (de 01 a 12): 05
  SQL
  SQL ACCEPT p_ano CHAR PROMPT 'Digite o ano (com 4
  dígitos): '
  Digite o ano (com 4 dígitos): 2008
  SQL
  SQL SELECT soma_dia p_mes/p_ano
  2 FROM vw_teste
  3 WHERE dt =
  TO_DATE('p_dia/p_mes/p_ano','dd/mm/');
  antigo 1: SELECT soma_dia p_mes/p_ano
  novo 1: SELECT soma_dia 05/2008
  antigo 3: WHERE dt =
  TO_DATE('p_dia/p_mes/p_ano','dd/mm/')
  novo 3: WHERE dt =
  TO_DATE('12/05/2008','dd/mm/')
 
  05/2008
  --
  1500
 
  SQL
  SQL -- Finalização
  ---
  SQL UNDEFINE p_dia
  SQL UNDEFINE p_mes
  SQL UNDEFINE p_ano
 
  __
  Em 13/05/08, Luis Eduardo Trovo [EMAIL PROTECTED] l_trovo%40yahoo.com
 
  escreveu:
  
   Marcelo,
  
   A View vai ser chamada por um select no Sql Plus.
  
   O select da View tem um campo chamado data, onde
  vou
   informar o dia/mes/ano.
   Após executar o select na view, o retorno de
   determinada coluna tem que ter o apelido desta
  data,
   porém no formato mes/ano.
  
   Grato.
   Luís
  
   --- Marcelo [EMAIL PROTECTED]marcelo%40autopratense.com.br
  marcelo%40autopratense.com.br
   wrote:
  
Luis,
   
Ainda assim, você não respondeu de onde parte a
execução da instrução SQL
que cria a view, se é de uma aplicação
Java/Delphi/.Net ou
SqlPlus/Procedure/trigger.
   
Desculpa ser insistente com esta pergunta, mas
  como
você mencionou que você
irá sempre atualizar a mesma view, sendo a
  partir de
uma aplicação basta
passar o comando SQL já formatado:
   
CREATE OR REPLACE VIEW view_teste AS
SELECT SYSDATE 05/2008
FROM DUAL
   
Ou então criar 

Re: RES: RES: [oracle_br] Re: Dúvida - Select bem idiota !!!!

2008-05-13 Por tôpico Luis Eduardo Trovo
Gleyson,

Veja, o problema aqui é técnico, não estou levando em
conta o que a TI poderia fazer por mim.

Meu usuário, neste caso é meu diretor, que é doente e
não abre a mão do velho e bom SQL PLUS.

Na verdade isso caiu no meu colo, porque o diretor não
conseguiu resolver, pois ele tem uma boa noção de
oracle, só que desta vez ele não conseguiu uma
solução! Caiu no meu colo também, porque passou por
várias pessoas e também não conseguiram resolver. 
E eu, que sou de BI, e não tenho nada a ver com o pato
.. rs .. estou batendo a cabeça para resolver!

Veja, o problema, como te disse, é técnico .. nada de
conceitual, de estrutura interna da empresa ou de
forma de desenvolvimento.

Rs .. só preciso que o apelido de uma coluna seja
formatado em mes/ano todas as vezes que uma data, no
formato dia/mes/ano, for usado para filtrar uma
view.

Estou já quase jogando a toalha viu .. rs.

Abraços
Luís




--- Gleyson Melo [EMAIL PROTECTED] wrote:

 Fala Eduardo,
 
 Se é pra rodar no SQLPlus, então não é para o
 usuário final. Porque a
 preocupação com um nome dinâmico do campo?
 
 Se é pra uma equipe de operação, que só fica
 monitorando, porque criar uma
 view se você pode criar um script com uma entrada
 muito mais simples, como o
 André mencionou? Assim, o operador não precisa saber
 SQL.
 
 Porque tem que ser no sqlplus, se você poderia fazer
 em Delphi, Java, .NET,
 PHP, ... e gerar uma saída muito mais bonita e
 moderna?
 
 Na verdade, talvez não exista uma solução para esse
 problema porque esse
 problema não é relevante para o resto do universo de
 TI. O que você quer, no
 fim das contas, provavelmente pode ser resolvido de
 outra maneira. Você não
 quer explicar o contexto de forma mais detalhada?
 
 2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED]:
 
Marcelo,
 
  Primeiramente, obrigado pela atenção!
 
  Criei aqui um processo para tentar exemplificar o
  exemplo.
 
   Crio uma view com a data e um valor
 
  SQL
  SQL CREATE VIEW LIXO AS
  2 SELECT F.F_DT_TRANS DT_TRANS, F.F_VL_PARCELA
  VL_PARCELA
  3 FROM F_BUSSOLA F
  4 WHERE F.F_CD_REDE = 1
  5 AND F.F_PRODUTO = 224;
 
  View created
 
  SQL
  SQL
 
 
   Acesso a view Lixo, passando uma data:
 
 
  SQL
  SQL SELECT SUM(L.VL_PARCELA)
  2 FROM LIXO L
  3 WHERE L.DT_TRANS = '01/12/2007';
 
  SUM(L.VL_PARCELA)
  -
  50621,63
 
  SQL
  SQL
 
  O resultado do select, tem como apelido para a
 coluna
  o SUM(L.VL_PARCELA), porém, eu preciso que este
  apelido seja uma formatação da data que eu filtrei
 o
  resultado (01/12/2007), ou seja, preciso que o
  resultado seja uma formatação de '01/12/2007' para
  12/2007.
 
  Em outras palavras, o resultado que eu preciso é:
 
 
  12/2007
  -
  50621,63
 
 
  O exemplo que você montou funciona, porém eu não
  tenho, na tabela em questão, um campo para dia,
 mês e
  ano separadamente. Ou seja, preciso passar a data
  completa no where (ou parâmetro - como me
 expressei
  antes).
 
  Obrigado.
  Luís.
 
 
  --- Andre Santos

[EMAIL PROTECTED]andre.psantos.ti%40gmail.com
  wrote:
 
   Luis
  
   Mas vocês vão tentar fazer uma view
 parametrizada?
   (na cláusula WHERE?)
   Até onde sei, isso não é possível...
  
   Bom... creio que isso foi um desafio de POG (
   http://desciclo.pedia.ws/wiki/POG)
   ;^)
  
   Então segue uma sugestão que pode ser colocada
 em um
   script (já que
   pretendem executar através do SQL Plus).
  
   [ ]'s
  
   André
  
   SQL -- Preparação e verificação
   --
   SQL
  
   SQL DESC teste
   Nome Nulo?
   Tipo
   -
 
   
   DT
   DATE
   VALOR
   NUMBER(9,2)
  
   SQL SELECT * FROM teste;
  
   DT VALOR
   --- --
   12/05/2008 00:00:00 1000
   12/05/2008 00:00:00 500
   13/05/2008 00:00:00 2000
   13/05/2008 00:00:00 300
  
   SQL CREATE OR REPLACE VIEW vw_teste
   2 AS SELECT dt, SUM(valor) soma_dia
   3 FROM teste
   4 GROUP BY dt;
  
   View criada.
  
   SQL SELECT * FROM vw_teste;
  
   DT SOMA_DIA
   --- --
   12/05/2008 00:00:00 1500
   13/05/2008 00:00:00 2300
  
   SQL -- Execução
   --
   SQL
  
   SQL ACCEPT p_dia CHAR PROMPT 'Digite o dia da
   data (de 01 a 31): '
   Digite o dia da data (de 01 a 31): 12
   SQL
   SQL ACCEPT p_mes CHAR PROMPT 'Digite o mês da
   data (de 01 a 12): '
   Digite o mês da data (de 01 a 12): 05
   SQL
   SQL ACCEPT p_ano CHAR PROMPT 'Digite o ano
 (com 4
   dígitos): '
   Digite o ano (com 4 dígitos): 2008
   SQL
   SQL SELECT soma_dia p_mes/p_ano
   2 FROM vw_teste
   3 WHERE dt =
   TO_DATE('p_dia/p_mes/p_ano','dd/mm/');
   antigo 1: SELECT soma_dia p_mes/p_ano
   novo 1: SELECT soma_dia 05/2008
   antigo 3: WHERE dt =
   TO_DATE('p_dia/p_mes/p_ano','dd/mm/')
   novo 3: WHERE dt =
   TO_DATE('12/05/2008','dd/mm/')
  
   05/2008
   --
   1500
  
   SQL
   SQL -- Finalização
   

Re: RES: RES: [oracle_br] Re: D�vida - Select bem idiota !!!!

2008-05-13 Por tôpico Luis Eduardo Trovo
Marcelo,

Primeiramente, obrigado pela atenção!
 
Criei aqui um processo para tentar exemplificar o
exemplo.
 
 Crio uma view com a data e um valor
 
SQL 
SQL CREATE VIEW LIXO AS
  2  SELECT F.F_DT_TRANS DT_TRANS, F.F_VL_PARCELA
VL_PARCELA
  3FROM F_BUSSOLA F
  4   WHERE F.F_CD_REDE = 1
  5 AND F.F_PRODUTO = 224;
 
View created
 
SQL 
SQL
 
 
 Acesso a view Lixo, passando uma data:
 
 
SQL 
SQL SELECT SUM(L.VL_PARCELA)
  2FROM LIXO L
  3   WHERE L.DT_TRANS = '01/12/2007';
 
SUM(L.VL_PARCELA)
-
 50621,63
 
SQL 
SQL 

 
 
O resultado do select, tem como apelido para a coluna
o SUM(L.VL_PARCELA), porém, eu preciso que este
apelido seja uma formatação da data que eu filtrei o
resultado (01/12/2007), ou seja, preciso que o
resultado seja uma formatação de '01/12/2007' para
12/2007.
 
Em outras palavras, o resultado que eu preciso é:
 
 
12/2007
-
 50621,63
 
 
O exemplo que você montou funciona, porém eu não
tenho, na tabela em questão, um campo para dia, mês e
ano separadamente. Ou seja, preciso passar a data
completa no where (ou parâmetro - como me expressei
antes).

Obrigado.
Luís.


--- Andre Santos [EMAIL PROTECTED] wrote:

 Luis
 
 Mas vocês vão tentar fazer uma view parametrizada?
 (na cláusula WHERE?)
 Até onde sei, isso não é possível...
 
 Bom... creio que isso foi um desafio de POG (
 http://desciclo.pedia.ws/wiki/POG)
 ;^)
 
 Então segue uma sugestão que pode ser colocada em um
 script (já que
 pretendem executar através do SQL Plus).
 
 [ ]'s
 
 André
 
 SQL -- Preparação e verificação
 --
 SQL
 
 SQL DESC teste
  Nome  Nulo?   
 Tipo
  - 
 
  DT
 DATE
  VALOR 
 NUMBER(9,2)
 
 SQL SELECT * FROM teste;
 
 DT   VALOR
 --- --
 12/05/2008 00:00:00   1000
 12/05/2008 00:00:00500
 13/05/2008 00:00:00   2000
 13/05/2008 00:00:00300
 
 SQL CREATE OR REPLACE VIEW vw_teste
   2  AS SELECT dt, SUM(valor) soma_dia
   3  FROM teste
   4  GROUP BY dt;
 
 View criada.
 
 SQL SELECT * FROM vw_teste;
 
 DTSOMA_DIA
 --- --
 12/05/2008 00:00:00   1500
 13/05/2008 00:00:00   2300
 
 SQL -- Execução
 --
 SQL
 
 SQL ACCEPT p_dia CHAR PROMPT 'Digite o dia da
 data (de 01 a 31): '
 Digite o dia da data (de 01 a 31): 12
 SQL
 SQL ACCEPT p_mes CHAR PROMPT 'Digite o mês da
 data (de 01 a 12): '
 Digite o mês da data (de 01 a 12): 05
 SQL
 SQL ACCEPT p_ano CHAR PROMPT 'Digite o ano (com 4
 dígitos): '
 Digite o ano (com 4 dígitos): 2008
 SQL
 SQL SELECT soma_dia p_mes/p_ano
   2  FROM vw_teste
   3  WHERE dt =
 TO_DATE('p_dia/p_mes/p_ano','dd/mm/');
 antigo   1: SELECT soma_dia p_mes/p_ano
 novo   1: SELECT soma_dia 05/2008
 antigo   3: WHERE dt =
 TO_DATE('p_dia/p_mes/p_ano','dd/mm/')
 novo   3: WHERE dt =
 TO_DATE('12/05/2008','dd/mm/')
 
05/2008
 --
   1500
 
 SQL
 SQL -- Finalização
 ---
 SQL UNDEFINE p_dia
 SQL UNDEFINE p_mes
 SQL UNDEFINE p_ano
 
 __
 Em 13/05/08, Luis Eduardo Trovo [EMAIL PROTECTED]
 escreveu:
 
Marcelo,
 
  A View vai ser chamada por um select no Sql Plus.
 
  O select da View tem um campo chamado data, onde
 vou
  informar o dia/mes/ano.
  Após executar o select na view, o retorno de
  determinada coluna tem que ter o apelido desta
 data,
  porém no formato mes/ano.
 
  Grato.
  Luís
 
  --- Marcelo [EMAIL PROTECTED]
 marcelo%40autopratense.com.br
  wrote:
 
   Luis,
  
   Ainda assim, você não respondeu de onde parte a
   execução da instrução SQL
   que cria a view, se é de uma aplicação
   Java/Delphi/.Net ou
   SqlPlus/Procedure/trigger.
  
   Desculpa ser insistente com esta pergunta, mas
 como
   você mencionou que você
   irá sempre atualizar a mesma view, sendo a
 partir de
   uma aplicação basta
   passar o comando SQL já formatado:
  
   CREATE OR REPLACE VIEW view_teste AS
   SELECT SYSDATE 05/2008
   FROM DUAL
  
   Ou então criar uma procedure.
  
   create or replace procedure create_view(mes_ano
   char) is
   begin
   execute immediate('CREATE OR REPLACE VIEW
   view_teste AS
   SELECT SYSDATE ' || mes_ano ||
   ' FROM DUAL');
   end ;
  
  
  
   Atenciosamente,
  
  
   Marcelo Alberto Lauschner
   Tecnologia e Sistemas
   Auto Pratense Ltda
   * - Fone: (0XX54) 3242-3615
   * - Fax: (0XX54) 3242-3648
   * - E-mail:
  

BLOCKED::mailto:[EMAIL PROTECTED]marcelo%40autopratense.com.br
  
   [EMAIL PROTECTED]
 marcelo%40autopratense.com.br
   * - WWW: www.autopratense.com.br
   BLOCKED::http://www.autopratense.com.br/
   _
  
   De: oracle_br@yahoogrupos.com.br
 oracle_br%40yahoogrupos.com.br
   [mailto:oracle_br@yahoogrupos.com.br
 

[oracle_br] Re: Não consigo conectar ao oracle com sql developer

2008-05-13 Por tôpico Marcos Fontalva
Reinstala o Oracle Client


--- Em oracle_br@yahoogrupos.com.br, Pedro de Souza [EMAIL PROTECTED] 
escreveu

 Pessoal, quando tento conectar o sql developer ao oracle ele me 
retorna a seguinte mensagem.
 Status: Failure -Falha no teste: Execução de E/S: The network 
Adapter could not establish the connection.
 Alguem poderia dar uma ajuda, pois estou me conectando no banco 
localmente.
 Agradeço a ajuda.
 
 Pedro.
 
 Oracle 10g 10.2.0.1.0
 SQL Developer 1.1.17
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: [oracle_br] Tamanho da Base

2008-05-13 Por tôpico MARCIO MUNIZ
Boa tarde Gilvã, pode user esse script tbm, independente da versão!!

select tot.tablespace_name,
   tot_bytes/1024 as tot_bytes,
   (tot_bytes - nvl(livres,0))/1024/1024/1024 as usados,
   livres/1024 as livres,
   to_char(100*nvl(livres,0)/tot_bytes,'990.0') as pct
from (select tablespace_name,
 sum(bytes) tot_bytes
  from dba_data_files
  group by tablespace_name) tot,
 (select tablespace_name,
 count(*) qtde,
 sum(bytes) livres,
 min(bytes) menor_free,
 max(bytes) maior_free
  from dba_free_space
  group by tablespace_name) free
where tot.tablespace_name = free.tablespace_name (+)
order by pct;

Abraços


Em 12/05/08, Gilvã Gmail [EMAIL PROTECTED] escreveu:

   Caros Bom Dia,

 Gostaria de saber alguns comandos para por exemplo saber, Qual o tamanho
 atual da base de dados e etc...

 Grato,

 Gilvã Lopes

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

 



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



RES: [oracle_br] Mudando vários indexes de tablesp ace

2008-05-13 Por tôpico André Luis Mariano
Boa tarde,

No select abaixo só vai listar quem está na tablespace errada:


select 'ALTER INDEX ' || D.OWNER || '.' || D.INDEX_NAME || ' REBUILD
TABLESPACE vTABLESPACE_INDICES;' COMANDO 
  from dba_indexes d
 where not (d.tablespace_name is null)
   and d.owner = 'vSCHEMA'
   and d.tablespace_name  'vTABLESPACE_DESTINO'
 order by D.INDEX_NAME;

[]'s

André Mariano

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Rafael
Enviada em: segunda-feira, 12 de maio de 2008 17:57
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Mudando vários indexes de tablespace

Boa tarde,

Erroneamente muitos indices foram criadas na tablespace de dados ao invés da
tablespace de indices.

Efetuando um select na view DBA_INDEXES consigo ver quais estão erradas...

Eu precisava saber qual a melhor forma para mover os indexes de uma
tablespace para outra.

Sei que o comando para mover é: ALTER INDEX idx_cliente_id REBUILD
TABLESPACE tsindex;

Uma forma que pensei seria fazer um procedimento para esta operação onde eu
faria um loop no select da DBA_INDEXES e executando um comando de alter
index que poderia ser concatenando 'ALTER INDEX ' || DBA_INDEXES.INDEX_NAME
|| ' REBUILD TABLESPACE TSINDEX' e em seguida disparar um EXECUTE IMMEDIATE.

Alguém poderia me dar outra sugestão?


--
Rafael Bahr
Analista de Sistemas




--
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/

--
Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM SEU 
PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/

 Links do Yahoo! Grupos




ENC: [oracle_br] Mudando vários indexes de tablesp ace

2008-05-13 Por tôpico André Luis Mariano
Ops!!

select 'ALTER INDEX ' || D.OWNER || '.' || D.INDEX_NAME || ' REBUILD
TABLESPACE vTABLESPACE_DESTINO;' COMANDO
  from dba_indexes d
 where not (d.tablespace_name is null)
   and d.owner = 'vSCHEMA'
   and d.tablespace_name  'vTABLESPACE_DESTINO'
 order by D.INDEX_NAME; 

-Mensagem original-
De: André Luis Mariano [mailto:[EMAIL PROTECTED] 
Enviada em: terça-feira, 13 de maio de 2008 13:16
Para: 'oracle_br@yahoogrupos.com.br'
Assunto: RES: [oracle_br] Mudando vários indexes de tablespace

Boa tarde,

No select abaixo só vai listar quem está na tablespace errada:


select 'ALTER INDEX ' || D.OWNER || '.' || D.INDEX_NAME || ' REBUILD
TABLESPACE vTABLESPACE_INDICES;' COMANDO
  from dba_indexes d
 where not (d.tablespace_name is null)
   and d.owner = 'vSCHEMA'
   and d.tablespace_name  'vTABLESPACE_DESTINO'
 order by D.INDEX_NAME;

[]'s

André Mariano

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Rafael Enviada em: segunda-feira, 12 de maio de 2008 17:57
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Mudando vários indexes de tablespace

Boa tarde,

Erroneamente muitos indices foram criadas na tablespace de dados ao invés da
tablespace de indices.

Efetuando um select na view DBA_INDEXES consigo ver quais estão erradas...

Eu precisava saber qual a melhor forma para mover os indexes de uma
tablespace para outra.

Sei que o comando para mover é: ALTER INDEX idx_cliente_id REBUILD
TABLESPACE tsindex;

Uma forma que pensei seria fazer um procedimento para esta operação onde eu
faria um loop no select da DBA_INDEXES e executando um comando de alter
index que poderia ser concatenando 'ALTER INDEX ' || DBA_INDEXES.INDEX_NAME
|| ' REBUILD TABLESPACE TSINDEX' e em seguida disparar um EXECUTE IMMEDIATE.

Alguém poderia me dar outra sugestão?


--
Rafael Bahr
Analista de Sistemas




--
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/

--
Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM SEU 
PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/

 Links do Yahoo! Grupos




Re: RES: RES: [oracle_br] Re: Dúvida - Select bem idiota !!!!

2008-05-13 Por tôpico Andre Santos
Luis

A solução que mandei não resolve?
Mas, na realidade, concordo com o Gleyson.

Isso me fez lembrar de uma vez em que um gerente financeiro queria umas
alterações num sistema e eu era desenvolvedor/vítima dele.  ;^)
Pedia umas coisas meio sem sentido... eu tentava fazer, aí ele via, depois,
que não fazia sentido mesmo (mas não admitia) e mudava os requisitos
constantemente... isso foi uma novela!

Diante da demora (e do nada que se apresentava) o diretor financeiro me
chamou para uma conversinha.
Assumi minha responsabilidade, mas também expliquei que não faziam sentido
as coisas que estavam sendo pedidas e que, por isso, estava difícil de
definir o sistema.

Conclusão (sábias palavras do velho diretor mestre Yoda): André, entendo
que o gerente financeiro está equivocado. Mas você, como analista, tinha a
responsabilidade de mostrar isso a ele..

Ou seja, eu estava tentando atender o cliente a qualquer custo, mas (após a
orientação do diretor) percebi que, às vezes, não é possível (ou viável)
atender e o melhor é explicar isso... (é praticamente uma obrigação nossa,
como técnicos).
:^)

[ ]

André


Em 13/05/08, Gleyson Melo [EMAIL PROTECTED] escreveu:

   Cara,

 Se eu fosse você, diria o mesmo que eu te disse no outro email. O que ele
 quer não faz muito sentido do ponto de vista de informática e
 provavelmente
 não tem uma solução.

 Uma vez, um usuário queria de todo jeito que eu colocasse em uma página
 web
 um link que abrisse uma aplicação do Lotus Notes. O pessoal do Notes disse
 que não era possível.

 O cara queria de qualquer maneira porque disseram pra ele que tudo é
 possível na informática, o que não é uma verdade viável.

 Pergunta pra ele o verdadeiro problema que ele quer resolver. Talvez ele
 precise mudar o código-fonte do sqlplus, ou fazer o próprio sqlplus dele.
 Talvez você ganhe mais créditos com ele dando uma solução melhor.

 Ah, também lembro de um gerente não-técnico que fazia mil perguntas e
 reclamava pra mim dos arquivos temporários gerados pelo MS Office... e eu
 era responsável apenas pelo desenvolvimento do software da empresa,
 hehehe.

 Cuidado com essas figuras exóticas.

 2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED] l_trovo%40yahoo.com:

  Gleyson,
 
  Veja, o problema aqui é técnico, não estou levando em
  conta o que a TI poderia fazer por mim.
 
  Meu usuário, neste caso é meu diretor, que é doente e
  não abre a mão do velho e bom SQL PLUS.
 
  Na verdade isso caiu no meu colo, porque o diretor não
  conseguiu resolver, pois ele tem uma boa noção de
  oracle, só que desta vez ele não conseguiu uma
  solução! Caiu no meu colo também, porque passou por
  várias pessoas e também não conseguiram resolver.
  E eu, que sou de BI, e não tenho nada a ver com o pato
  .. rs .. estou batendo a cabeça para resolver!
 
  Veja, o problema, como te disse, é técnico .. nada de
  conceitual, de estrutura interna da empresa ou de
  forma de desenvolvimento.
 
  Rs .. só preciso que o apelido de uma coluna seja
  formatado em mes/ano todas as vezes que uma data, no
  formato dia/mes/ano, for usado para filtrar uma
  view.
 
  Estou já quase jogando a toalha viu .. rs.
 
  Abraços
 
  Luís
 
  --- Gleyson Melo [EMAIL PROTECTED] gleysonmelo%40gmail.comgleysonmelo%
 40gmail.com wrote:
 
   Fala Eduardo,
  
   Se é pra rodar no SQLPlus, então não é para o
   usuário final. Porque a
   preocupação com um nome dinâmico do campo?
  
   Se é pra uma equipe de operação, que só fica
   monitorando, porque criar uma
   view se você pode criar um script com uma entrada
   muito mais simples, como o
   André mencionou? Assim, o operador não precisa saber
   SQL.
  
   Porque tem que ser no sqlplus, se você poderia fazer
   em Delphi, Java, .NET,
   PHP, ... e gerar uma saída muito mais bonita e
   moderna?
  
   Na verdade, talvez não exista uma solução para esse
   problema porque esse
   problema não é relevante para o resto do universo de
   TI. O que você quer, no
   fim das contas, provavelmente pode ser resolvido de
   outra maneira. Você não
   quer explicar o contexto de forma mais detalhada?
  
   2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED] 
   l_trovo%40yahoo.coml_trovo%
 40yahoo.com:
  
Marcelo,
   
Primeiramente, obrigado pela atenção!
   
Criei aqui um processo para tentar exemplificar o
exemplo.
   
 Crio uma view com a data e um valor
   
SQL
SQL CREATE VIEW LIXO AS
2 SELECT F.F_DT_TRANS DT_TRANS, F.F_VL_PARCELA
VL_PARCELA
3 FROM F_BUSSOLA F
4 WHERE F.F_CD_REDE = 1
5 AND F.F_PRODUTO = 224;
   
View created
   
SQL
SQL
   
   
 Acesso a view Lixo, passando uma data:
   
   
SQL
SQL SELECT SUM(L.VL_PARCELA)
2 FROM LIXO L
3 WHERE L.DT_TRANS = '01/12/2007';
   
SUM(L.VL_PARCELA)
-
50621,63
   
SQL
SQL
   
O resultado do select, tem como apelido para a
   coluna
o SUM(L.VL_PARCELA), porém, eu preciso que este
apelido seja uma formatação da data 

Re: RES: RES: [oracle_br] Re: Dúvida - Select bem idiota !!!!

2008-05-13 Por tôpico Gmail - Guilherme
eheheh Cara eu sei como é isso..
cara espero que o codigo abaixo te ajude

set serveroutput on;
DECLARE
TYPE DatCurTyp IS REF CURSOR;
dat_cv   DatCurTyp;
lix_rec  LIXO%ROWTYPE;
sql_stmt VARCHAR2(2000);
v_datdate := to_date('01/05/2008','dd/mm/');
BEGIN
sql_stmt := 'SELECT 500 valor,sysdate FROM dual WHERE sysdate = :d';
OPEN dat_cv FOR sql_stmt
USING v_dat;
LOOP
FETCH dat_cv
INTO lix_rec;
EXIT WHEN dat_cv%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(to_char(v_dat,'mm/')||chr(10)||
lix_rec.valor );

END LOOP;
CLOSE dat_cv;
END;
/


2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED]:

   Gleyson,

 Veja, o problema aqui é técnico, não estou levando em
 conta o que a TI poderia fazer por mim.

 Meu usuário, neste caso é meu diretor, que é doente e
 não abre a mão do velho e bom SQL PLUS.

 Na verdade isso caiu no meu colo, porque o diretor não
 conseguiu resolver, pois ele tem uma boa noção de
 oracle, só que desta vez ele não conseguiu uma
 solução! Caiu no meu colo também, porque passou por
 várias pessoas e também não conseguiram resolver.
 E eu, que sou de BI, e não tenho nada a ver com o pato
 .. rs .. estou batendo a cabeça para resolver!

 Veja, o problema, como te disse, é técnico .. nada de
 conceitual, de estrutura interna da empresa ou de
 forma de desenvolvimento.

 Rs .. só preciso que o apelido de uma coluna seja
 formatado em mes/ano todas as vezes que uma data, no
 formato dia/mes/ano, for usado para filtrar uma
 view.

 Estou já quase jogando a toalha viu .. rs.

 Abraços
 Luís


 --- Gleyson Melo [EMAIL PROTECTED] gleysonmelo%40gmail.com wrote:

  Fala Eduardo,
 
  Se é pra rodar no SQLPlus, então não é para o
  usuário final. Porque a
  preocupação com um nome dinâmico do campo?
 
  Se é pra uma equipe de operação, que só fica
  monitorando, porque criar uma
  view se você pode criar um script com uma entrada
  muito mais simples, como o
  André mencionou? Assim, o operador não precisa saber
  SQL.
 
  Porque tem que ser no sqlplus, se você poderia fazer
  em Delphi, Java, .NET,
  PHP, ... e gerar uma saída muito mais bonita e
  moderna?
 
  Na verdade, talvez não exista uma solução para esse
  problema porque esse
  problema não é relevante para o resto do universo de
  TI. O que você quer, no
  fim das contas, provavelmente pode ser resolvido de
  outra maneira. Você não
  quer explicar o contexto de forma mais detalhada?
 
  2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED] l_trovo%40yahoo.com:
 
   Marcelo,
  
   Primeiramente, obrigado pela atenção!
  
   Criei aqui um processo para tentar exemplificar o
   exemplo.
  
    Crio uma view com a data e um valor
  
   SQL
   SQL CREATE VIEW LIXO AS
   2 SELECT F.F_DT_TRANS DT_TRANS, F.F_VL_PARCELA
   VL_PARCELA
   3 FROM F_BUSSOLA F
   4 WHERE F.F_CD_REDE = 1
   5 AND F.F_PRODUTO = 224;
  
   View created
  
   SQL
   SQL
  
  
    Acesso a view Lixo, passando uma data:
  
  
   SQL
   SQL SELECT SUM(L.VL_PARCELA)
   2 FROM LIXO L
   3 WHERE L.DT_TRANS = '01/12/2007';
  
   SUM(L.VL_PARCELA)
   -
   50621,63
  
   SQL
   SQL
  
   O resultado do select, tem como apelido para a
  coluna
   o SUM(L.VL_PARCELA), porém, eu preciso que este
   apelido seja uma formatação da data que eu filtrei
  o
   resultado (01/12/2007), ou seja, preciso que o
   resultado seja uma formatação de '01/12/2007' para
   12/2007.
  
   Em outras palavras, o resultado que eu preciso é:
  
  
   12/2007
   -
   50621,63
  
  
   O exemplo que você montou funciona, porém eu não
   tenho, na tabela em questão, um campo para dia,
  mês e
   ano separadamente. Ou seja, preciso passar a data
   completa no where (ou parâmetro - como me
  expressei
   antes).
  
   Obrigado.
   Luís.
  
  
   --- Andre Santos
 
 [EMAIL PROTECTED] andre.psantos.ti%40gmail.com
 andre.psantos.ti%40gmail.com
   wrote:
  
Luis
   
Mas vocês vão tentar fazer uma view
  parametrizada?
(na cláusula WHERE?)
Até onde sei, isso não é possível...
   
Bom... creio que isso foi um desafio de POG (
http://desciclo.pedia.ws/wiki/POG)
;^)
   
Então segue uma sugestão que pode ser colocada
  em um
script (já que
pretendem executar através do SQL Plus).
   
[ ]'s
   
André
   
SQL -- Preparação e verificação
--
SQL
   
SQL DESC teste
Nome Nulo?
Tipo
-
  

DT
DATE
VALOR
NUMBER(9,2)
   
SQL SELECT * FROM teste;
   
DT VALOR
--- --
12/05/2008 00:00:00 1000
12/05/2008 00:00:00 500
13/05/2008 00:00:00 2000
13/05/2008 00:00:00 300
   
SQL CREATE OR REPLACE VIEW vw_teste
2 AS SELECT dt, SUM(valor) soma_dia
3 FROM teste
4 GROUP BY dt;
   
View criada.
   
SQL SELECT * FROM vw_teste;
   
DT SOMA_DIA
--- 

Re: RES: RES: [oracle_br] Re: D�vida - Select bem idiota !!!!

2008-05-13 Por tôpico Luis Eduardo Trovo
André/Gleyson,

Concordo com cada palavras que disseram e agradeço
todo o tempo que estão dando aos meus e-mails!

Insisto em dizer que o problema é técnico! Meu diretor
não é daqueles usuários exóticos como disse o
Gleyson, ou um diretor financeiro (que não tem muita
base em TI) como disse o André. Meu usuário é diretor
de TI! É um cara muito, mas muito bom no que faz e
manja bastante de conceitos e técnicas, tanto que ele
é o diretor aqui da empresa nesta área.
O que ele necessita é apenas que o apelido de uma
coluna seja flexível. 

Tivemos ai os colegas, inclusive o André sugerindo uma
solução, que passou muito perto do que preciso se em
nossa tabela em questão tivesse a data dividada em
dia, mês e ano, porém ainda não é isso, pois eu
preciso passar a data completa e utilizar apenas um
pedaço desta como apelido para uma coluna.

Bom, creio que não é possível uma solução para este
problema do jeito que está disposto. Terei a humildade
de falar com meu diretor e lhe mostrar que o que ele
quer acaba sendo impossível diante do contexto.

Senhores, muito obrigado pela força!

Abraços.
Luís.







--- Andre Santos [EMAIL PROTECTED] wrote:

 Luis
 
 A solução que mandei não resolve?
 Mas, na realidade, concordo com o Gleyson.
 
 Isso me fez lembrar de uma vez em que um gerente
 financeiro queria umas
 alterações num sistema e eu era desenvolvedor/vítima
 dele.  ;^)
 Pedia umas coisas meio sem sentido... eu tentava
 fazer, aí ele via, depois,
 que não fazia sentido mesmo (mas não admitia) e
 mudava os requisitos
 constantemente... isso foi uma novela!
 
 Diante da demora (e do nada que se apresentava) o
 diretor financeiro me
 chamou para uma conversinha.
 Assumi minha responsabilidade, mas também expliquei
 que não faziam sentido
 as coisas que estavam sendo pedidas e que, por isso,
 estava difícil de
 definir o sistema.
 
 Conclusão (sábias palavras do velho diretor mestre
 Yoda): André, entendo
 que o gerente financeiro está equivocado. Mas você,
 como analista, tinha a
 responsabilidade de mostrar isso a ele..
 
 Ou seja, eu estava tentando atender o cliente a
 qualquer custo, mas (após a
 orientação do diretor) percebi que, às vezes, não é
 possível (ou viável)
 atender e o melhor é explicar isso... (é
 praticamente uma obrigação nossa,
 como técnicos).
 :^)
 
 [ ]
 
 André
 
 
 Em 13/05/08, Gleyson Melo [EMAIL PROTECTED]
 escreveu:
 
Cara,
 
  Se eu fosse você, diria o mesmo que eu te disse no
 outro email. O que ele
  quer não faz muito sentido do ponto de vista de
 informática e
  provavelmente
  não tem uma solução.
 
  Uma vez, um usuário queria de todo jeito que eu
 colocasse em uma página
  web
  um link que abrisse uma aplicação do Lotus Notes.
 O pessoal do Notes disse
  que não era possível.
 
  O cara queria de qualquer maneira porque disseram
 pra ele que tudo é
  possível na informática, o que não é uma verdade
 viável.
 
  Pergunta pra ele o verdadeiro problema que ele
 quer resolver. Talvez ele
  precise mudar o código-fonte do sqlplus, ou fazer
 o próprio sqlplus dele.
  Talvez você ganhe mais créditos com ele dando uma
 solução melhor.
 
  Ah, também lembro de um gerente não-técnico que
 fazia mil perguntas e
  reclamava pra mim dos arquivos temporários gerados
 pelo MS Office... e eu
  era responsável apenas pelo desenvolvimento do
 software da empresa,
  hehehe.
 
  Cuidado com essas figuras exóticas.
 
  2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED]
 l_trovo%40yahoo.com:
 
   Gleyson,
  
   Veja, o problema aqui é técnico, não estou
 levando em
   conta o que a TI poderia fazer por mim.
  
   Meu usuário, neste caso é meu diretor, que é
 doente e
   não abre a mão do velho e bom SQL PLUS.
  
   Na verdade isso caiu no meu colo, porque o
 diretor não
   conseguiu resolver, pois ele tem uma boa noção
 de
   oracle, só que desta vez ele não conseguiu uma
   solução! Caiu no meu colo também, porque passou
 por
   várias pessoas e também não conseguiram
 resolver.
   E eu, que sou de BI, e não tenho nada a ver com
 o pato
   .. rs .. estou batendo a cabeça para resolver!
  
   Veja, o problema, como te disse, é técnico ..
 nada de
   conceitual, de estrutura interna da empresa ou
 de
   forma de desenvolvimento.
  
   Rs .. só preciso que o apelido de uma coluna
 seja
   formatado em mes/ano todas as vezes que uma
 data, no
   formato dia/mes/ano, for usado para filtrar
 uma
   view.
  
   Estou já quase jogando a toalha viu .. rs.
  
   Abraços
  
   Luís
  
   --- Gleyson Melo [EMAIL PROTECTED]
 gleysonmelo%40gmail.comgleysonmelo%
  40gmail.com wrote:
  
Fala Eduardo,
   
Se é pra rodar no SQLPlus, então não é para o
usuário final. Porque a
preocupação com um nome dinâmico do campo?
   
Se é pra uma equipe de operação, que só fica
monitorando, porque criar uma
view se você pode criar um script com uma
 entrada
muito mais simples, como o
André mencionou? Assim, o operador não precisa
 saber
SQL.
   
Porque tem que ser no sqlplus, se você 

Re: RES: RES: [oracle_br] Re: Dúvida - Sele ct bem idiota !!!!

2008-05-13 Por tôpico Leonardo Rezende
Bingo... Acho que essa mata a charada ;)
Formata a sua saída bonitinha como se fosse a saída de um select ;)
POG total, mas acho que pode resolver.
Lembra de depois fazer um set serveroutput off;

Gostei Guilherme!

Gmail - Guilherme escreveu:
 
 
 eheheh Cara eu sei como é isso..
 cara espero que o codigo abaixo te ajude
 
 set serveroutput on;
 DECLARE
 TYPE DatCurTyp IS REF CURSOR;
 dat_cv DatCurTyp;
 lix_rec LIXO%ROWTYPE;
 sql_stmt VARCHAR2(2000);
 v_dat date := to_date('01/05/2008','dd/mm/');
 BEGIN
 sql_stmt := 'SELECT 500 valor,sysdate FROM dual WHERE sysdate = :d';
 OPEN dat_cv FOR sql_stmt
 USING v_dat;
 LOOP
 FETCH dat_cv
 INTO lix_rec;
 EXIT WHEN dat_cv%NOTFOUND;
 DBMS_OUTPUT.PUT_LINE(to_char(v_dat,'mm/')||chr(10)||
 lix_rec.valor );
 
 END LOOP;
 CLOSE dat_cv;
 END;
 /
 
 2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED] 
 mailto:l_trovo%40yahoo.com:
 
   Gleyson,
  
   Veja, o problema aqui é técnico, não estou levando em
   conta o que a TI poderia fazer por mim.
  
   Meu usuário, neste caso é meu diretor, que é doente e
   não abre a mão do velho e bom SQL PLUS.
  
   Na verdade isso caiu no meu colo, porque o diretor não
   conseguiu resolver, pois ele tem uma boa noção de
   oracle, só que desta vez ele não conseguiu uma
   solução! Caiu no meu colo também, porque passou por
   várias pessoas e também não conseguiram resolver.
   E eu, que sou de BI, e não tenho nada a ver com o pato
   .. rs .. estou batendo a cabeça para resolver!
  
   Veja, o problema, como te disse, é técnico .. nada de
   conceitual, de estrutura interna da empresa ou de
   forma de desenvolvimento.
  
   Rs .. só preciso que o apelido de uma coluna seja
   formatado em mes/ano todas as vezes que uma data, no
   formato dia/mes/ano, for usado para filtrar uma
   view.
  
   Estou já quase jogando a toalha viu .. rs.
  
   Abraços
   Luís
  
  
   --- Gleyson Melo [EMAIL PROTECTED] 
 mailto:gleysonmelo%40gmail.com gleysonmelo%40gmail.com wrote:
  
Fala Eduardo,
   
Se é pra rodar no SQLPlus, então não é para o
usuário final. Porque a
preocupação com um nome dinâmico do campo?
   
Se é pra uma equipe de operação, que só fica
monitorando, porque criar uma
view se você pode criar um script com uma entrada
muito mais simples, como o
André mencionou? Assim, o operador não precisa saber
SQL.
   
Porque tem que ser no sqlplus, se você poderia fazer
em Delphi, Java, .NET,
PHP, ... e gerar uma saída muito mais bonita e
moderna?
   
Na verdade, talvez não exista uma solução para esse
problema porque esse
problema não é relevante para o resto do universo de
TI. O que você quer, no
fim das contas, provavelmente pode ser resolvido de
outra maneira. Você não
quer explicar o contexto de forma mais detalhada?
   
2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED] 
 mailto:l_trovo%40yahoo.com l_trovo%40yahoo.com:
   
 Marcelo,

 Primeiramente, obrigado pela atenção!

 Criei aqui um processo para tentar exemplificar o
 exemplo.

  Crio uma view com a data e um valor

 SQL
 SQL CREATE VIEW LIXO AS
 2 SELECT F.F_DT_TRANS DT_TRANS, F.F_VL_PARCELA
 VL_PARCELA
 3 FROM F_BUSSOLA F
 4 WHERE F.F_CD_REDE = 1
 5 AND F.F_PRODUTO = 224;

 View created

 SQL
 SQL


  Acesso a view Lixo, passando uma data:


 SQL
 SQL SELECT SUM(L.VL_PARCELA)
 2 FROM LIXO L
 3 WHERE L.DT_TRANS = '01/12/2007';

 SUM(L.VL_PARCELA)
 -
 50621,63

 SQL
 SQL

 O resultado do select, tem como apelido para a
coluna
 o SUM(L.VL_PARCELA), porém, eu preciso que este
 apelido seja uma formatação da data que eu filtrei
o
 resultado (01/12/2007), ou seja, preciso que o
 resultado seja uma formatação de '01/12/2007' para
 12/2007.

 Em outras palavras, o resultado que eu preciso é:


 12/2007
 -
 50621,63


 O exemplo que você montou funciona, porém eu não
 tenho, na tabela em questão, um campo para dia,
mês e
 ano separadamente. Ou seja, preciso passar a data
 completa no where (ou parâmetro - como me
expressei
 antes).

 Obrigado.
 Luís.


 --- Andre Santos
   
   [EMAIL PROTECTED] mailto:andre.psantos.ti%40gmail.com 
 andre.psantos.ti%40gmail.com
   andre.psantos.ti%40gmail.com
 wrote:

  Luis
 
  Mas vocês vão tentar fazer uma view
parametrizada?
  (na cláusula WHERE?)
  Até onde sei, isso não é possível...
 
  Bom... creio que isso foi um desafio de POG (
  http://desciclo.pedia.ws/wiki/POG 
 http://desciclo.pedia.ws/wiki/POG)
  ;^)
 
  Então segue uma sugestão que pode ser colocada
em um
  script (já que
  pretendem executar através do SQL Plus).
 
  [ ]'s
 
  André
 
  SQL -- 

Re: RES: RES: [oracle_br] Re: Dúvida - Select bem idiota !!!!

2008-05-13 Por tôpico Andre Santos
Luis

E se fizer uma procedure?
Segue abaixo uma sugestão (a parte de execução pode ser colocada em um
script).

[ ]'s

André
_

SQL -- Preparação e verificação ---
SQL
SQL SELECT * FROM teste;

DT   VALOR
--- --
12/05/2008 00:00:00   1000
12/05/2008 00:00:00500
13/05/2008 00:00:00   2000
13/05/2008 00:00:00300

SQL CREATE OR REPLACE VIEW vw_teste
  2  AS SELECT dt, SUM(valor) soma_dia
  3  FROM teste
  4  GROUP BY dt;

View criada.

SQL SELECT * FROM vw_teste;

DTSOMA_DIA
--- --
12/05/2008 00:00:00   1500
13/05/2008 00:00:00   2300

SQL

SQL -- Procedure -
SQL
SQL CREATE OR REPLACE PROCEDURE sp_teste
  2  (
  3 pi_data_ref IN DATE,
  4 po_cursor   OUT SYS_REFCURSOR
  5  )
  6  IS
  7  BEGIN
  8 OPEN po_cursor
  9 FOR 'SELECT SUM(soma_dia) '
 10 || '' || TO_CHAR(pi_data_ref, 'MM/') || ''
 11 || ' FROM vw_teste'
 12 || ' WHERE dt = :data'
 13 USING pi_data_ref;
 14  END;
 15  /

Procedimento criado.

SQL -- Execução --
SQL
SQL VAR resultado REFCURSOR
SQL
SQL EXEC sp_teste(TO_DATE('12/05/2008','DD/MM/'), :resultado)

Procedimento PL/SQL concluído com sucesso.

SQL PRINT resultado

   05/2008
--
  1500

SQL
_

Em 13/05/08, Luis Eduardo Trovo [EMAIL PROTECTED] escreveu:

   André/Gleyson,

 Concordo com cada palavras que disseram e agradeço
 todo o tempo que estão dando aos meus e-mails!

 Insisto em dizer que o problema é técnico! Meu diretor
 não é daqueles usuários exóticos como disse o
 Gleyson, ou um diretor financeiro (que não tem muita
 base em TI) como disse o André. Meu usuário é diretor
 de TI! É um cara muito, mas muito bom no que faz e
 manja bastante de conceitos e técnicas, tanto que ele
 é o diretor aqui da empresa nesta área.
 O que ele necessita é apenas que o apelido de uma
 coluna seja flexível.

 Tivemos ai os colegas, inclusive o André sugerindo uma
 solução, que passou muito perto do que preciso se em
 nossa tabela em questão tivesse a data dividada em
 dia, mês e ano, porém ainda não é isso, pois eu
 preciso passar a data completa e utilizar apenas um
 pedaço desta como apelido para uma coluna.

 Bom, creio que não é possível uma solução para este
 problema do jeito que está disposto. Terei a humildade
 de falar com meu diretor e lhe mostrar que o que ele
 quer acaba sendo impossível diante do contexto.

 Senhores, muito obrigado pela força!

 Abraços.
 Luís.

 --- Andre Santos [EMAIL PROTECTED]andre.psantos.ti%40gmail.com
 wrote:

  Luis
 
  A solução que mandei não resolve?
  Mas, na realidade, concordo com o Gleyson.
 
  Isso me fez lembrar de uma vez em que um gerente
  financeiro queria umas
  alterações num sistema e eu era desenvolvedor/vítima
  dele. ;^)
  Pedia umas coisas meio sem sentido... eu tentava
  fazer, aí ele via, depois,
  que não fazia sentido mesmo (mas não admitia) e
  mudava os requisitos
  constantemente... isso foi uma novela!
 
  Diante da demora (e do nada que se apresentava) o
  diretor financeiro me
  chamou para uma conversinha.
  Assumi minha responsabilidade, mas também expliquei
  que não faziam sentido
  as coisas que estavam sendo pedidas e que, por isso,
  estava difícil de
  definir o sistema.
 
  Conclusão (sábias palavras do velho diretor mestre
  Yoda): André, entendo
  que o gerente financeiro está equivocado. Mas você,
  como analista, tinha a
  responsabilidade de mostrar isso a ele..
 
  Ou seja, eu estava tentando atender o cliente a
  qualquer custo, mas (após a
  orientação do diretor) percebi que, às vezes, não é
  possível (ou viável)
  atender e o melhor é explicar isso... (é
  praticamente uma obrigação nossa,
  como técnicos).
  :^)
 
  [ ]
 
  André
 
 
  Em 13/05/08, Gleyson Melo [EMAIL PROTECTED]gleysonmelo%40gmail.com
 
  escreveu:
  
   Cara,
  
   Se eu fosse você, diria o mesmo que eu te disse no
  outro email. O que ele
   quer não faz muito sentido do ponto de vista de
  informática e
   provavelmente
   não tem uma solução.
  
   Uma vez, um usuário queria de todo jeito que eu
  colocasse em uma página
   web
   um link que abrisse uma aplicação do Lotus Notes.
  O pessoal do Notes disse
   que não era possível.
  
   O cara queria de qualquer maneira porque disseram
  pra ele que tudo é
   possível na informática, o que não é uma verdade
  viável.
  
   Pergunta pra ele o verdadeiro problema que ele
  quer resolver. Talvez ele
   precise mudar o código-fonte do sqlplus, ou fazer
  o próprio sqlplus dele.
   Talvez você ganhe mais créditos com ele dando uma
  solução melhor.
  
   Ah, também lembro de um gerente não-técnico que
  fazia mil perguntas e
   reclamava pra mim dos arquivos temporários gerados
  pelo MS Office... e eu
   era responsável apenas pelo desenvolvimento do
  software da empresa,
   hehehe.
  
   Cuidado com essas 

Re: RES: RES: [oracle_br] Re: D�vida - Select bem idiota !!!!

2008-05-13 Por tôpico Luis Eduardo Trovo
Mais uma vez obrigado Guilherme!

Era exatamente alguma técnica assim que eu precisava.

E obrigado a todos que colaboraram!

Grato.
Luís


--- Gmail - Guilherme [EMAIL PROTECTED] wrote:

 eheheh Cara eu sei como é isso..
 cara espero que o codigo abaixo te ajude
 
 set serveroutput on;
 DECLARE
 TYPE DatCurTyp IS REF CURSOR;
 dat_cv   DatCurTyp;
 lix_rec  LIXO%ROWTYPE;
 sql_stmt VARCHAR2(2000);
 v_datdate :=
 to_date('01/05/2008','dd/mm/');
 BEGIN
 sql_stmt := 'SELECT 500 valor,sysdate FROM dual
 WHERE sysdate = :d';
 OPEN dat_cv FOR sql_stmt
 USING v_dat;
 LOOP
 FETCH dat_cv
 INTO lix_rec;
 EXIT WHEN dat_cv%NOTFOUND;


DBMS_OUTPUT.PUT_LINE(to_char(v_dat,'mm/')||chr(10)||
 lix_rec.valor );
 
 END LOOP;
 CLOSE dat_cv;
 END;
 /
 
 
 2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED]:
 
Gleyson,
 
  Veja, o problema aqui é técnico, não estou levando
 em
  conta o que a TI poderia fazer por mim.
 
  Meu usuário, neste caso é meu diretor, que é
 doente e
  não abre a mão do velho e bom SQL PLUS.
 
  Na verdade isso caiu no meu colo, porque o diretor
 não
  conseguiu resolver, pois ele tem uma boa noção de
  oracle, só que desta vez ele não conseguiu uma
  solução! Caiu no meu colo também, porque passou
 por
  várias pessoas e também não conseguiram resolver.
  E eu, que sou de BI, e não tenho nada a ver com o
 pato
  .. rs .. estou batendo a cabeça para resolver!
 
  Veja, o problema, como te disse, é técnico .. nada
 de
  conceitual, de estrutura interna da empresa ou de
  forma de desenvolvimento.
 
  Rs .. só preciso que o apelido de uma coluna seja
  formatado em mes/ano todas as vezes que uma
 data, no
  formato dia/mes/ano, for usado para filtrar uma
  view.
 
  Estou já quase jogando a toalha viu .. rs.
 
  Abraços
  Luís
 
 
  --- Gleyson Melo [EMAIL PROTECTED]
 gleysonmelo%40gmail.com wrote:
 
   Fala Eduardo,
  
   Se é pra rodar no SQLPlus, então não é para o
   usuário final. Porque a
   preocupação com um nome dinâmico do campo?
  
   Se é pra uma equipe de operação, que só fica
   monitorando, porque criar uma
   view se você pode criar um script com uma
 entrada
   muito mais simples, como o
   André mencionou? Assim, o operador não precisa
 saber
   SQL.
  
   Porque tem que ser no sqlplus, se você poderia
 fazer
   em Delphi, Java, .NET,
   PHP, ... e gerar uma saída muito mais bonita e
   moderna?
  
   Na verdade, talvez não exista uma solução para
 esse
   problema porque esse
   problema não é relevante para o resto do
 universo de
   TI. O que você quer, no
   fim das contas, provavelmente pode ser resolvido
 de
   outra maneira. Você não
   quer explicar o contexto de forma mais
 detalhada?
  
   2008/5/13 Luis Eduardo Trovo [EMAIL PROTECTED]
 l_trovo%40yahoo.com:
  
Marcelo,
   
Primeiramente, obrigado pela atenção!
   
Criei aqui um processo para tentar
 exemplificar o
exemplo.
   
 Crio uma view com a data e um valor
   
SQL
SQL CREATE VIEW LIXO AS
2 SELECT F.F_DT_TRANS DT_TRANS, F.F_VL_PARCELA
VL_PARCELA
3 FROM F_BUSSOLA F
4 WHERE F.F_CD_REDE = 1
5 AND F.F_PRODUTO = 224;
   
View created
   
SQL
SQL
   
   
 Acesso a view Lixo, passando uma data:
   
   
SQL
SQL SELECT SUM(L.VL_PARCELA)
2 FROM LIXO L
3 WHERE L.DT_TRANS = '01/12/2007';
   
SUM(L.VL_PARCELA)
-
50621,63
   
SQL
SQL
   
O resultado do select, tem como apelido para a
   coluna
o SUM(L.VL_PARCELA), porém, eu preciso que
 este
apelido seja uma formatação da data que eu
 filtrei
   o
resultado (01/12/2007), ou seja, preciso que o
resultado seja uma formatação de '01/12/2007'
 para
12/2007.
   
Em outras palavras, o resultado que eu preciso
 é:
   
   
12/2007
-
50621,63
   
   
O exemplo que você montou funciona, porém eu
 não
tenho, na tabela em questão, um campo para
 dia,
   mês e
ano separadamente. Ou seja, preciso passar a
 data
completa no where (ou parâmetro - como me
   expressei
antes).
   
Obrigado.
Luís.
   
   
--- Andre Santos
  
  [EMAIL PROTECTED]
 andre.psantos.ti%40gmail.com
  andre.psantos.ti%40gmail.com
wrote:
   
 Luis

 Mas vocês vão tentar fazer uma view
   parametrizada?
 (na cláusula WHERE?)
 Até onde sei, isso não é possível...

 Bom... creio que isso foi um desafio de
 POG (
 http://desciclo.pedia.ws/wiki/POG)
 
=== message truncated ===



  


[oracle_br] Duvida Histórico de Jobs

2008-05-13 Por tôpico Tadeu Paz
Fala Pessoal ,

 

Antes de minha pergunta , parabéns pelo grupo , já participo a algum tempo e
varias respostas de perguntas já me ajudaram muito.

 

É o seguinte , preciso saber o histórico de um job que já foi executado, ou
seja , ele já saiu do DBA_JOBS e/ou da DBA_JOBS_RUNNING , então o que eu
preciso é saber onde eu consigo pegar o TOTAL_TIME , DATA_INICIO e DATA_FIM
deste JOB já executado.

 

Meu Oracle é  9i  patch 9.2.0.8 e servidor Linux  ELRH4 .

 

Abraço.

 

 

 

 


No virus found in this outgoing message.
Checked by AVG. 
Version: 7.5.524 / Virus Database: 269.23.16/1430 - Release Date: 13/5/2008
07:31
 


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



RES: [oracle_br] Mudando vários indexes de tablesp ace

2008-05-13 Por tôpico Tadeu Paz
Fala ai amigo , tenho um PL/SQL que pode te ajudar , pois alem de índices
ele arruma por DADOS  e LOBS no caso de  tabelas que utilizam isso. Veja se
te ajuda.

 

declare
   TBS_DESTINO VARCHAR2(30):= 'TBS_SGD';
   TBS_LOB VARCHAR2(30):= 'TBS_LOB';
   TBS_INDEX VARCHAR2(30)  := 'TBS_IDX';
   Nome_schema varchar2(30):= 'SCHEMA';
   
   /* Move tabela com colunas LOB para a tablespace especificada */
   CURSOR TABLOB IS 
   select /*+ first_rows */ 
   'ALTER TABLE '||dtc.OWNER||'.'||dtc.TABLE_NAME||' MOVE TABLESPACE
'||tbs_destino||
   ' LOB ('||COLUMN_NAME||') STORE AS
LOB_'||DU.USER_ID||'_'||DO.OBJECT_ID||'_'||dtc.COLUMN_NAME||
   ' (TABLESPACE '||tbs_lob||')' comando
   from dba_tab_columns dtc, dba_users du, dba_objects do
   where dtc.owner = nome_schema 
 and dtc.data_type IN ('CLOB','BLOB')
 and du.username = dtc.owner
 and do.object_name = dtc.table_name
 and do.owner = dtc.owner;

   /* Move tabela sem colunas LOB para a tablespace especificada */
CURSOR SOTAB IS 
select /*+ first_rows */ distinct
   'ALTER TABLE '||dtc.OWNER||'.'||dtc.TABLE_NAME||' MOVE TABLESPACE
'||tbs_destino comando
from dba_tab_columns dtc
where dtc.owner = nome_schema
 and dtc.data_type not IN ('CLOB','BLOB')
 and exists(select 1 from dba_tables where table_name =
dtc.table_name and owner = nome_schema); 

   /* Move os �ndices a tablespace especificada */
CURSOR SOIND IS 
select 'alter index '||OWNER||'.'||index_name||' rebuild tablespace
'||tbs_index comando
from dba_indexes
where owner = Nome_schema and index_type not in ('LOB');


begin
 for r in tablob loop
 begin
 execute immediate r.comando;
 exception when others then
   dbms_output.put_line(r.comando);
 end;
 end loop;
 
 for r in sotab loop
 begin
 execute immediate r.comando;
 exception when others then
   dbms_output.put_line(r.comando);
 end;
 end loop;
 
 for r in soind loop
 begin
 execute immediate r.comando;
 exception when others then
   dbms_output.put_line(r.comando);
 end;
 end loop;

 begin
   execute immediate 'ALTER USER '||Nome_schema||'  DEFAULT TABLESPACE
'||tbs_destino;
 exception when others then
   dbms_output.put_line('Atribuição da TBS para o usuário falhou');
 end;
end;




 

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de André Luis Mariano
Enviada em: terça-feira, 13 de maio de 2008 13:21
Para: oracle_br@yahoogrupos.com.br
Assunto: ENC: [oracle_br] Mudando vários indexes de tablespace

 

Ops!!

select 'ALTER INDEX ' || D.OWNER || '.' || D.INDEX_NAME || ' REBUILD
TABLESPACE vTABLESPACE_DESTINO;' COMANDO
from dba_indexes d
where not (d.tablespace_name is null)
and d.owner = 'vSCHEMA'
and d.tablespace_name  'vTABLESPACE_DESTINO'
order by D.INDEX_NAME; 

-Mensagem original-
De: André Luis Mariano [mailto:HYPERLINK
mailto:mariano.listas%40yahoo.com.br[EMAIL PROTECTED] 
Enviada em: terça-feira, 13 de maio de 2008 13:16
Para: HYPERLINK
mailto:%27oracle_br%40yahoogrupos.com.br;'oracle_br@yahoogrupos.com.br'
Assunto: RES: [oracle_br] Mudando vários indexes de tablespace

Boa tarde,

No select abaixo só vai listar quem está na tablespace errada:

select 'ALTER INDEX ' || D.OWNER || '.' || D.INDEX_NAME || ' REBUILD
TABLESPACE vTABLESPACE_INDICES;' COMANDO
from dba_indexes d
where not (d.tablespace_name is null)
and d.owner = 'vSCHEMA'
and d.tablespace_name  'vTABLESPACE_DESTINO'
order by D.INDEX_NAME;

[]'s

André Mariano

-Mensagem original-
De: HYPERLINK
mailto:oracle_br%40yahoogrupos.com.broracle_br@yahoogrupos.com.br
[mailto:HYPERLINK
mailto:oracle_br%40yahoogrupos.com.br[EMAIL PROTECTED] Em
nome de Rafael Enviada em: segunda-feira, 12 de maio de 2008 17:57
Para: HYPERLINK
mailto:oracle_br%40yahoogrupos.com.broracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Mudando vários indexes de tablespace

Boa tarde,

Erroneamente muitos indices foram criadas na tablespace de dados ao invés da
tablespace de indices.

Efetuando um select na view DBA_INDEXES consigo ver quais estão erradas...

Eu precisava saber qual a melhor forma para mover os indexes de uma
tablespace para outra.

Sei que o comando para mover é: ALTER INDEX idx_cliente_id REBUILD
TABLESPACE tsindex;

Uma forma que pensei seria fazer um procedimento para esta operação onde eu
faria um loop no select da DBA_INDEXES e executando um comando de alter
index que poderia ser concatenando 'ALTER INDEX ' || DBA_INDEXES.INDEX_NAME
|| ' REBUILD TABLESPACE TSINDEX' e em seguida disparar um EXECUTE IMMEDIATE.

Alguém poderia me dar outra sugestão?

--
Rafael Bahr
Analista de Sistemas




Re: [oracle_br] Re: Inserção remota trava

2008-05-13 Por tôpico Diogo Lopez - Datapar
Obrigado Chiappa

Vou estudar o estado da sessão remota.
Pelo que eu vi rapidamente no meu banco, parece que minha solução está ai.

Grato novamente
Abraço,
Diogo

  - Original Message - 
  From: jlchiappa 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Monday, May 12, 2008 8:49 PM
  Subject: [oracle_br] Re: Inserção remota trava


  yeah, quando vc não pode usar a feature nativa quase que fatalmente
  isso implica em lotes de código, maior complexidade
  Offtopicamente, eu nem quero pensar em que tipo de performance vc
  obterá, já que, para não perder valores, certamente vc deve estar
  usando trigger FOR EACH ROW, aí se vc fize um DML de x mil linhas,
  olha lá a trigger sendo executada X mil vezes !!! Por mais que vc
  capriche, um p-code INTERPRETADO (como é um trigger PL/SQL), sendo
  executado milhares e milhares de vezes não dá NEM pra começar a
  comparar com a performance que se obteria com um código NATIVO, já
  compilado DENTRO do kernel do banco Ou ainda melhor, usando
  STREAMS enviando só o log das alterações... Ou ainda, usando CDC
  asíncrono, que também só envia os logs... E aquele negócio, essas
  opções todas exigem Enterprise, que realmente custa mais caro, mas
  será que ** SE ** vc mostrar pro seu cliente o ganho de performance
  (além da segurança de menos partes móveis, e menos programação), vc
  não teria um argumento a apresentar  
  Bom, fim do off-topic, respondendo : como já disse hoje mesmo em
  outra resposta, um db link nada mais é do que uma CONEXÃO, uma
  sessão de banco, assim sendo ela aparece na V$SESSION, yes ? É lá
  que vc vai olhar, e (inclusive) nas versões mais recentes de banco lá
  vc tem também a informação de WAIT, pra saber se a sessão está inativa
  ou não Exemplo :


  == crio um db link :

  [EMAIL PROTECTED]:SQLcreate database link xe_o10gr2 connect to scott
  identified by tiger using 'o10gr2';

  VÝnculo de banco de dados criado.

  == no instante que eu usar o dblink, a conexão é estabelecida, E (o
  que muita gente sempre esquece) essas conexão (como qquer outra
  conexão) ficará aberta até que a pessoa que a pediu feche-a (com ALTER
  SESSION CLOSE DATABASE LINK, esse é o comando), OU desconecte do
  banco, logicamente quando a conexão-pai pe fechada, as filhas
  (dblinks) o são também. Vamos abrir uma : 
  [EMAIL PROTECTED]:SQLselect * from [EMAIL PROTECTED];

  EMPNO ENAME SAL 

  - --  
  7369 SMITH 800 
  7499 ALLEN 1600 
  7521 WARD 1250 
  7566 JONES 2975 
  7654 MARTIN 1250 
  7698 BLAKE 2850 
  7782 CLARK 2450 
  7788 SCOTT 3000 
  7839 KING 5000 
  7844 TURNER 1500 
  7876 ADAMS 1100 
  7900 JAMES 950 
  7902 FORD 3000 
  7934 MILLER 1300 

  14 linhas selecionadas.

  [EMAIL PROTECTED]:SQL

  == se eu olhar no banco-destino, tá lá a conexão do dblink, BEM como
  outras locais :

  [EMAIL PROTECTED]:SQLselect username, osuser, machine, program, type,
  service_name, logon_time, seq#, last_call_et, event, status from
  v$session where username is not null;

  USERNAME OSUSER MACHINE PROGRAM 
  LOGON_TIME SEQ# LAST_CALL_ET EVENT 
   --- - -
  --   
  SYS USER-B468644A75\chiappa GRUPO\USER-B468644A75 sqlplusw.exe 
  12/05/2008 70 0 SQL*Net message to client 
  SCOTT AUTORIDADE NT\SYSTEM USER-B468644A75 ORACLE.EXE 
  12/05/2008 27 4200 SQL*Net message from client 
  HR USER-B468644A75\chiappa GRUPO\USER-B468644A75 sqlplusw.exe 
  12/05/2008 34 681 SQL*Net message from client 

  == espero alguns segundos e repito a consulta :
  [EMAIL PROTECTED]:SQL/

  USERNAME OSUSER MACHINE PROGRAM 
  LOGON_TIME SEQ# LAST_CALL_ET EVENT 
   --- - -
  --   
  SYS USER-B468644A75\chiappa GRUPO\USER-B468644A75 sqlplusw.exe 
  12/05/2008 76 0 SQL*Net message to client 
  SCOTT AUTORIDADE NT\SYSTEM USER-B468644A75 ORACLE.EXE 
  12/05/2008 27 4218 SQL*Net message from client 
  HR USER-B468644A75\chiappa GRUPO\USER-B468644A75 sqlplusw.exe 
  12/05/2008 34 699 SQL*Net message from client 

  == veja que o SEQ# é o mesmo, MAS o evento não mudou e o last_call_et
  aumentou, então com certeza essa sessão do SCOTT ** ainda ** continua
  esperando pelo mesmo evento, está portando PARADA, sim ? Agora vou
  comitar a transação implícita que o dblink me cria , e fechar a
  conexão do dblink lá no banco-origem :

  [EMAIL PROTECTED]:SQLcommit;

  Commit concluÝdo.

  [EMAIL PROTECTED]:SQLalter session close database link xe_o10gr2;

  SessÒo alterada.

  == agora sim, se a gente checar lá no destino, a conexão remota
  sumiu... O mesmo acontece quando a sessão do bd origem que usou o db
  link se desconecta, a sessão remota no bd destino sai. ESSA é a sua
  resposta então : se no banco-origem a conexão do dblink foi fechada,
  qquer entrada remota no bd destino implica em erro/sessão pendurada, e
  se no banco-origem