Re: [oracle_br] Utilização do Comando Merge

2008-08-28 Por tôpico Marcio Portes
??
Não entendi qual a sua necessidade.

2008/8/28 francisco porfirio [EMAIL PROTECTED]

   Marcio, xou de bola esse site

 Pessoa queria mais uma ajuda

 Tipo ele ta comparando apenas pela pk tendo igual ele sempre altera os
 registros. Quero que ele altere apenas quando estes registros forem
 diferentes. Coloquei as clausulas no on, mas não ta funcionando. Com isso
 esta mais ou menos assim.

 BEGIN
 MERGE INTO inf_coberturas M
 USING t.inf_coberturas T
 ON (m.cob_codigo_cobertura = t.cob_codigo_cobertura
 AND (m.cob_descricao = t.cob_descricao
 OR m.cob_mapa_cobertura = t.cob_mapa_cobertura
 OR m.cob_cod_intercambio_ptu = t.cob_cod_intercambio_ptu
 OR m.cob_mapa_alterado = t.cob_mapa_alterado))
 WHEN MATCHED THEN UPDATE SET m.cob_descricao = t.cob_descricao,
 m.cob_mapa_cobertura = t.cob_mapa_cobertura
 WHEN NOT MATCHED THEN INSERT
 VALUES(CASE etl.merge_counter(etl.c_inserting) WHEN 0
 THEN t.cob_codigo_cobertura END,
 t.cob_descricao,t.cob_mapa_cobertura,
 t.cob_cod_intercambio_ptu,
 t.cob_mapa_alterado);

 DBMS_OUTPUT.PUT_LINE(TO_CHAR(SQL%ROWCOUNT) || ' - Linhas
 merged.');
 dbms_output.put_line(TO_CHAR(etl.get_merge_insert_count) ||' - Linhas
 Inseridas');
 dbms_output.put_line(TO_CHAR(etl.get_merge_update_count( SQL%ROWCOUNT ))
 ||' - Linhas Alteradas');
 END;


 --
 Atenciosamente
 Francisco Porfirio Ribeiro Neto

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

  




-- 
Marcio Portes
http://mportes.blogspot.com


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



Re: [oracle_br] Utilização do Comando Merge

2008-08-27 Por tôpico Marcio Portes
http://www.quest-pipelines.com/newsletter-v4/0903_D.htm

2008/8/27 francisco porfirio [EMAIL PROTECTED]

   Pessoal...

 Sei que muitos já devem conhecer este comando, mas para aqueles que não
 conhecem, vai uma boa dica para fazer algumas migrações mais simples. Com
 esse comando vc consegue tanto contemplar novos registros de uma tabela
 como
 atualizar os que foram alterados.

 A sintaxe é mais ou menos com esta:

 MERGE INTO tb_destino d
 USING tb_origem o
 ON (d.codigo = o.codigo)
 WHEN MATCHED THEN d.descricao = o.descricao
 WHEN not MATCHED THEN
 INSERT (d.codigo,d.descricao)
 VALUES (d.codigo, d.descricao);

 Para aqueles que já utilizaram, vocês sabem me informar se tem alguma forma
 de o merge me retornar quantas linhas foram atualizadas e quantas foram
 inseridas?

 Agradeço desde já...

 --
 Atenciosamente
 Francisco Porfirio Ribeiro Neto

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

  




-- 
Marcio Portes
http://mportes.blogspot.com


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



Re: [oracle_br] função para retornar os dias a partir de uma data

2008-08-20 Por tôpico Marcio Portes
Estou um pouco enferrujado, na medida em que não tenho participado tanto,
mas acho que essa query ajuda. No decorrer do exemplo, insiro mais linhas
para entrar no intervalo de 30 dias, depois, no resultado, voce pode agrupar
por mes ou formatar da maneira que lhe for conveniente. Fiz a query em uma
tabela só para simplificar a idéia, obviamente é preciso ajustar os joins
para garantir que a data de atendimento seja referida na tabela de serviço.
(espero que ajude).

ops$marcio:DB11G select * from guia;

   CDGUIA CDUSUARIO ATEND
- - ---
1 1 01/01/2008 00:00:00
1 1 01/02/2008 00:00:00
1 1 01/03/2008 00:00:00
1 1 01/04/2008 00:00:00
1 1 01/05/2008 00:00:00
1 1 01/06/2008 00:00:00
1 1 01/07/2008 00:00:00
1 1 01/08/2008 00:00:00
1 2 01/01/2008 00:00:00
1 2 01/02/2008 00:00:00
1 2 01/03/2008 00:00:00
1 2 01/04/2008 00:00:00
1 2 01/05/2008 00:00:00
1 2 01/06/2008 00:00:00
1 2 01/07/2008 00:00:00
1 2 01/08/2008 00:00:00
1 1 03/01/2008 00:00:00
1 1 13/01/2008 00:00:00
1 1 01/02/2008 00:00:00

19 rows selected.

ops$marcio:DB11G insert into guia values ( 1, 1, '15/05/2008 00:00:00');

1 row created.

ops$marcio:DB11G commit;

Commit complete.

ops$marcio:DB11G select *
  2from (
  3  select cdguia,
  4 cdusuario,
  5 atend,
  6 count(*) over (partition by cdguia, cdusuario
  7order by atend range between 15 preceding
  8 and 15 following ) cnt
  9from guia
 10 )
 11   where cnt  1
 12  /

   CDGUIA CDUSUARIO ATEND CNT
- - --- -
1 1 01/01/2008 00:00:00 3
1 1 03/01/2008 00:00:00 3
1 1 13/01/2008 00:00:00 3
1 1 01/02/2008 00:00:00 2
1 1 01/02/2008 00:00:00 2
1 1 01/05/2008 00:00:00 2
1 1 15/05/2008 00:00:00 2

7 rows selected.

ops$marcio:DB11G
ops$marcio:DB11G insert into guia values ( 1, 2, '15/05/2008 00:00:00');

1 row created.

ops$marcio:DB11G commit;

Commit complete.

ops$marcio:DB11G select *
  2from (
  3  select cdguia,
  4 cdusuario,
  5 atend,
  6 count(*) over (partition by cdguia, cdusuario
  7order by atend range between 15 preceding
  8 and 15 following ) cnt
  9from guia
 10 )
 11   where cnt  1
 12  /

   CDGUIA CDUSUARIO ATEND CNT
- - --- -
1 1 01/01/2008 00:00:00 3
1 1 03/01/2008 00:00:00 3
1 1 13/01/2008 00:00:00 3
1 1 01/02/2008 00:00:00 2
1 1 01/02/2008 00:00:00 2
1 1 01/05/2008 00:00:00 2
1 1 15/05/2008 00:00:00 2
1 2 01/05/2008 00:00:00 2
1 2 15/05/2008 00:00:00 2

9 rows selected.



2008/8/20 ewerton_grillo [EMAIL PROTECTED]

   Tenho uma tabela de guia onde tem os campos
 cdguia, cdusuario, cdprestador, cdespecialidade e dataatendimento
 e uma tabela servico onde tem o cdguia e cdservico

 preciso verificar se durante o período de 01/01/2008 a 30/07/2008 se o
 usuário realizou mais de uma consulta inferior a 30 dias, sempre
 verificando da última consulta para a anterior não importando o
 período e sim os 30 dias, para o mesmo prestador e especialidade.

 como posso fazer isso?

  




-- 
Marcio Portes
http://mportes.blogspot.com


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



Re: [oracle_br] Re: Alterar campo varchar2 para number na VIEW

2008-07-16 Por tôpico Marcio Portes
%2540yahoogrupos.com.br
 oracle_br%40yahoogrupos.com.br
 [mailto:
   oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br mailto:
 oracle_br%40yahoogrupos.com.br oracle_br%2540yahoogrupos.com.br
 oracle_br%40yahoogrupos.com.br] Em
 nome de
   Marcio Portes
   Enviada em: terça-feira, 15 de julho de 2008 00:58
   Para: oracle_br@yahoogrupos.com.br 
   oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%2540yahoogrupos.com.br
 oracle_br%40yahoogrupos.com.br
   Assunto: Re: [oracle_br] Alterar campo varchar2 para number na VIEW
  
   Walquencir,
  
   Tenta ai:
  
   CREATE OR REPLACE FORCE VIEW
   SAC.CLIENTE (CNPJ, NOME, ENDERECO) AS
   SELECT to_number(replace(translate(L_CLI.CGC,'/-.',' '),' ','')) cnpj
   , L_CLI.NOME NOME
   , L_CLI.END ENDERECO,
   FROM L.CLIENTE L_CLI
   , L.REPRESENTANTE L_REP
   , L.SUPERVISOR L_SUP
   WHERE L_CLI.CODREP = L_REP.CODIGO
   AND L_REP.SUPERVISOR = L_SUP.CODIGO
   /
  
   2008/7/14 Walquencir Pedroti
 [EMAIL PROTECTED]walquencir.pedroti%40dovac.com.brmailto:
   walquencir.pedroti%40dovac.com.br
 walquencir.pedroti%2540dovac.com.br
   :
  
Boa tarde a todos.
   
Minha tabela o campo CNPJ é VARCHAR2.
Quando monto minha view da forma abaixo. E a tabela view não
 reconhece
   como
Number o campo CNPJ,
e portanto toda a consulta feita neste campo retorna como null,
 já um
select all retorna o CNPJ.
   
CREATE OR REPLACE FORCE VIEW SAC.CLIENTE (CNPJ, NOME,
 ENDERECO)
AS
SELECT TO_NUMBER(CNPJ), NOME, ENDERECO FROM (
SELECT * FROM (
SELECT
CONCAT ('1',L_CLI.CGC) CHAVE,
REPLACE(REPLACE(REPLACE(L_CLI.CGC,'.',null),'/',null),'-',null)
 CNPJ,
L_CLI.NOME NOME,
L_CLI.END ENDERECO,
FROM
L.CLIENTE L_CLI,
L.REPRESENTANTE L_REP,
L.SUPERVISOR L_SUP
WHERE
L_CLI.CODREP = L_REP.CODIGO
AND
L_REP.SUPERVISOR = L_SUP.CODIGO
)
);
   
Criei outra VIEW com declare
set serverout on;
DECLARE
var_CNPJ number ;
BEGIN
SELECT CNPJ INTO var_CNPJ FROM (
SELECT
   
 REPLACE(REPLACE(REPLACE(L_CLI0A0.CGC,'.',null),'/',null),'-',null) cnpj,
L_CLI.NOME NOME,
L_CLI.END ENDERECO,
FROM
L.CLIENTE L_CLI,
L.REPRESENTANTE L_REP,
L.SUPERVISOR L_SUP
WHERE
L_CLI.CODREP = L_REP.CODIGO
AND
L_REP.SUPERVISOR = L_SUP.CODIGO
and rownum  6
);
END;
/
Mas esta aparece a mensagem ORA-01422: exact fetch returns more than
requested number of rows.
Verificando a mensagem no metalink, existe um bug para minha
 versão que é
10.1.0.2.0.
E lá existe uma outra forma de fazer que é:
DECLARE
TYPE NumList IS TABLE OF NUMBER;
TYPE NameList IS TABLE OF VARCHAR2(15);
empnos NumList;
enames NameList;
sals NumList;
BEGIN
EXECUTE IMMEDIATE 'SELECT empno, ename FROM emp'
BULK COLLECT INTO empnos, enames;
DBMS_OUTPUT.PUT_LINE('Empployess collected = '||empnos.count);
END;
/
   

Alguém consegue VER uma solução para a criação de uma VIEW?
Obrigado a todos
W.Pedroti
   
   
   
[As partes desta mensagem que não continham texto foram removidas]
   
   
   
  
   --
   Marcio Portes
   http://mportes.blogspot.com
  
   [As partes desta mensagem que não continham texto foram removidas]
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

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

  




-- 
Marcio Portes
http://mportes.blogspot.com


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



Re: [oracle_br] Alterar campo varchar2 para number na VIEW

2008-07-14 Por tôpico Marcio Portes
Walquencir,

Tenta ai:

CREATE OR REPLACE FORCE VIEW
SAC.CLIENTE (CNPJ, NOME, ENDERECO) AS
SELECT to_number(replace(translate(L_CLI.CGC,'/-.','   '),' ','')) cnpj
 , L_CLI.NOME NOME
 , L_CLI.END ENDERECO,
  FROM L.CLIENTE L_CLI
 , L.REPRESENTANTE L_REP
 , L.SUPERVISOR L_SUP
 WHERE L_CLI.CODREP = L_REP.CODIGO
   AND L_REP.SUPERVISOR = L_SUP.CODIGO
/

2008/7/14 Walquencir Pedroti [EMAIL PROTECTED]:

   Boa tarde a todos.

 Minha tabela o campo CNPJ é VARCHAR2.
 Quando monto minha view da forma abaixo. E a tabela view não reconhece como
 Number o campo CNPJ,
 e portanto toda a consulta feita neste campo retorna como null, já um
 select all retorna o CNPJ.

 CREATE OR REPLACE FORCE VIEW SAC.CLIENTE (CNPJ, NOME, ENDERECO)
 AS
 SELECT TO_NUMBER(CNPJ), NOME, ENDERECO FROM (
 SELECT * FROM (
 SELECT
 CONCAT ('1',L_CLI.CGC) CHAVE,
 REPLACE(REPLACE(REPLACE(L_CLI.CGC,'.',null),'/',null),'-',null) CNPJ,
 L_CLI.NOME NOME,
 L_CLI.END ENDERECO,
 FROM
 L.CLIENTE L_CLI,
 L.REPRESENTANTE L_REP,
 L.SUPERVISOR L_SUP
 WHERE
 L_CLI.CODREP = L_REP.CODIGO
 AND
 L_REP.SUPERVISOR = L_SUP.CODIGO
 )
 );

 Criei outra VIEW com declare
 set serverout on;
 DECLARE
 var_CNPJ number ;
 BEGIN
 SELECT CNPJ INTO var_CNPJ FROM (
 SELECT
 REPLACE(REPLACE(REPLACE(L_CLI0A0.CGC,'.',null),'/',null),'-',null) cnpj,
 L_CLI.NOME NOME,
 L_CLI.END ENDERECO,
 FROM
 L.CLIENTE L_CLI,
 L.REPRESENTANTE L_REP,
 L.SUPERVISOR L_SUP
 WHERE
 L_CLI.CODREP = L_REP.CODIGO
 AND
 L_REP.SUPERVISOR = L_SUP.CODIGO
 and rownum  6
 );
 END;
 /
 Mas esta aparece a mensagem ORA-01422: exact fetch returns more than
 requested number of rows.
 Verificando a mensagem no metalink, existe um bug para minha versão que é
 10.1.0.2.0.
 E lá existe uma outra forma de fazer que é:
 DECLARE
 TYPE NumList IS TABLE OF NUMBER;
 TYPE NameList IS TABLE OF VARCHAR2(15);
 empnos NumList;
 enames NameList;
 sals NumList;
 BEGIN
 EXECUTE IMMEDIATE 'SELECT empno, ename FROM emp'
 BULK COLLECT INTO empnos, enames;
 DBMS_OUTPUT.PUT_LINE('Empployess collected = '||empnos.count);
 END;
 /

 
 Alguém consegue VER uma solução para a criação de uma VIEW?
 Obrigado a todos
 W.Pedroti



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

  




-- 
Marcio Portes
http://mportes.blogspot.com


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



Re: [oracle_br] Ajuda SQL

2008-06-24 Por tôpico Marcio Portes
Pode usar a função não documentada wm_concat. Mas é perigoso, pq a Oracle
pode mudar a qualquer nova versão, eu testei na 10.2.0.3 e 11.1.0.6 e
funciona, mas...

SQL select * from t;

X Y
- -
 5405 1
 5102 2
 5405 2
 5405 3

4 rows selected.

SQL col concat format a50
SQL select y, translate(wm_concat(x), ',', '/') concat from t group by y;

Y CONCAT
- --
1 5405
2 5102/5405
3 5405

3 rows selected.



2008/6/23 Renato Tecedor [EMAIL PROTECTED]:


 Pessoal estou com uma dificuldade para criar uma consulta no meu
 banco aonde eu gostaria que retornasse o valor da coluna concatenado
 na mesma linha quando o numero da sequencia fosse igual. por exemplo

 hoje ele esta assim:

 SQL select dnfv_cd_cfop,dnfv_nr_seq_seq
 2 from det_nota_fiscal_vendas
 3 where dnfv_cd_empresa = 1
 4 and dnfv_id_nota_fiscal = 'N'
 5 and dnfv_nr_seq_nota = 116026
 6 group by dnfv_cd_cfop,dnfv_nr_seq_seq
 7 order by dnfv_nr_seq_seq;

 DNFV DNFV_NR_SEQ_SEQ
  ---
 5405 1
 5102 2
 5405 2
 5405 3

 e gostaira que me retornasse assim:

 DNFV DNFV_NR_SEQ_SEQ
  ---
 5405 1
 5102/5405 2
 5405 3

 Obrigado,
 Renato

  




-- 
Marcio Portes
http://mportes.blogspot.com


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



Re: [oracle_br] Oracle 11g x86_64

2008-06-21 Por tôpico Marcio Portes
Na versão 11g, o APEX vem junto com a instalação do banco, o diretório é
$ORACLE_HOME/apex, as instruções para instalação estão em
http://download.oracle.com/docs/cd/B28359_01/install.111/b32002/post_inst_task.htm#BABEBICC

abraços,

2008/6/20 Carlos Alfredo M. de Menezes [EMAIL PROTECTED]
:

   Colega,
 Nunca usei esse produto, antes era conhecido como HTML DB e estava
 também disponível no Companion CD das versão 10g, mas sei que já é
 instalado por default na versão 11g.


 Att,

 Carlos Alfredo M. de Menezes
 Analista de Suporte Sr.
 S/A Usina Coruripe Açúcar e Álcool
 +55(82)3217-2121

 Jose - Oracle escreveu:
 
  Carlos , seria esse o link para download ?
 
 
 http://www.oracle.com/technology/products/database/application_express/download.html
  
 http://www.oracle.com/technology/products/database/application_express/download.html
 
 
  []
  barba
 
  - Original Message -
  From: Carlos Alfredo M. de Menezes
  To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%2540yahoogrupos.com.br
  Sent: Friday, June 20, 2008 2:14 PM
  Subject: Re: [oracle_br] Oracle 11g x86_64
 
  Colega,
  o iSQLPlus não existe mais na versão 11g, use o SQL Developer ou Oracle
  Application Express, quem também está com data marcada para morrer é o
  sqlplusw, o SQL Plus da plataforma Windows.
  Fontes:
 
 http://laurentschneider.com/wordpress/2006/03/isqlplus-and-sqlplusw-desupport.html
  
 http://laurentschneider.com/wordpress/2006/03/isqlplus-and-sqlplusw-desupport.html
 
 
 http://download.oracle.com/docs/cd/B28359_01/install.111/b32002/whatsnew.htm#BGGBABGJ
  
 http://download.oracle.com/docs/cd/B28359_01/install.111/b32002/whatsnew.htm#BGGBABGJ
 
 
  Att,
 
  Carlos Alfredo M. de Menezes
  Analista de Suporte Sr.
  S/A Usina Coruripe Açúcar e Álcool
  +55(82)3217-2121
 
  Jose - Oracle escreveu:
  
   Pessoal, e o seguite tenho um RedHat EL 5, Oracle 11g, td instalado
   teoricamente sem erros, porem nao consigo startar o isqlplusctl,
   pergunto na versao 11g, nao tem esse cara ?, qual um outro eu poderia
   estar usando ?
  
   []
   barba
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Erro em plsql

2008-02-07 Por tôpico Marcio Portes
ops$marcio:LX10G select index_name, tablespace_name from user_indexes;

INDEX_NAME TABLESPACE_NAME
-- --
TI USERS
TI2USERS

2 rows selected.

ops$marcio:LX10G
ops$marcio:LX10G begin
  2  for x in ( select index_name from user_indexes )
  3  loop
  4  execute immediate 'alter index '|| x.index_name ||'
rebuild tablespace sysaux';
  5  end loop;
  6  end;
  7  /

PL/SQL procedure successfully completed.

ops$marcio:LX10G
ops$marcio:LX10G select index_name, tablespace_name from user_indexes;

INDEX_NAME TABLESPACE_NAME
-- --
TI SYSAUX
TI2SYSAUX

2 rows selected.



2008/2/7 jorgelrt1 [EMAIL PROTECTED]:

   Olá amigos
 Venho mais uma vez pedir mais uma vez a ajuda de vcs. Não estou
 entendendo o que está errado nesta PL.

 DECLARE
 CURSOR IDX IS
 SELECT INDEX_NAME FROM USER_INDEXES;
 BEGIN
 FOR C_IDX IN IDX LOOP
 EXECUTE IMMEDIATE 'ALTER INDEX '||C_IDX.INDEX_NAME||' REBUILD
 TABLESPACE TS_IDX_DISCO ;';
 END LOOP;
 END;

 DECLARE
 *
 ERRO na linha 1:
 ORA-00911: caractere invßlido
 ORA-06512: em line 6

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] SQL em Trigger

2008-01-26 Por tôpico Marcio Portes
Qual a versão do banco?

2008/1/26 André Schaeffer - Berbau Balas Finas [EMAIL PROTECTED]:

   Amigos.
 Tenho como capturar numa trigger o codigo SQL que gerou uma alteracao?

 O que tenho atualmente (abaixo) nao captura o SQL...

 CREATE OR REPLACE TRIGGER AGS_AUDIT_TRIGGER
 BEFORE UPDATE of ALIQ_IPI ON cml_movitens
 FOR EACH ROW
 BEGIN

 INSERT INTO AGS_AUDIT VALUES(
 user, sysdate, :new.COD_ITEM, :OLD.ID_TRANSACAO, :OLD.ALIQ_IPI, :
 NEW.ALIQ_IPI);
 END;
 /

 André Gustavo Schaeffer
 Berbau Balas Finas
 Email: [EMAIL PROTECTED] andre%40berbau.com.br
 MSN: [EMAIL PROTECTED] agsmisc%40hotmail.com
 Fone: (54) 3321 3677 Ramal 24
 http://www.berbau.com.br

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Listener não sobe

2008-01-02 Por tôpico Marcio Portes
Não tem outro listener rodando não?
Os adaptadores de rede estão no ar?
veja se há alguma dica no arquivo:
/u01/app/oracle/diag/tnslsnr/infiniserver/listener/alert/log.xml

On Jan 2, 2008 7:34 PM, Milton Bastos Henriquis Jr. [EMAIL PROTECTED]
wrote:

   Olá pessoal...

 Pela primeira vez instalei a nova versão do Oracle, a 11g,
 aqui numa máquina com o CentOS 5.

 A instalação do software foi tudo OK, finalizada.
 Depois, fui rodar o dbca pra criar uma instância, e ele
 acusou que não havia um listener rodando. Pois bem,
 rodei o netca pra criar o listener.
 Listener criado, porém, não está funcionando, vejam
 o que rola:

 LSNRCTL start
 Starting /u01/app/oracle/product/11.1.0/db_1/bin/tnslsnr: please wait...

 TNSLSNR for Linux: Version 11.1.0.6.0 - Production
 System parameter file is
 /u01/app/oracle/product/11.1.0/db_1/network/admin/listener.ora
 Log messages written to
 /u01/app/oracle/diag/tnslsnr/infiniserver/listener/alert/log.xml
 Listening on:
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=infiniserver)(PORT=1521)))
 Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

 Connecting to
 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=infiniserver)(PORT=1521)))
 TNS-12547: TNS:lost contact
 TNS-12560: TNS:protocol adapter error
 TNS-00517: Lost contact
 Linux Error: 104: Connection reset by peer
 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
 TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
 TNS-00511: No listener
 Linux Error: 111: Connection refused
 LSNRCTL

 Alguém pode me ajudar???

 Milton

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] DBMS_LOB

2007-12-28 Por tôpico Marcio Portes
Na linha

v_bfile bfile := BFILENAME( 'my_dir' , v_file_name);

Troque por

v_bfile bfile := BFILENAME( 'MY_DIR' , v_file_name);



On Dec 28, 2007 11:40 AM, Márcio Ricardo [EMAIL PROTECTED] wrote:

 Untitled DocumentBoas.

 Estou fazendo um teste para inserir um campo clob em uma tabela, e estou
 recebendo erro:

 ERRO na linha 1:
 ORA-22285: diret¾rio ou arquivo inexistente para operaþÒo FILEOPEN
 ORA-06512: em SYS.DBMS_LOB, line 523
 ORA-06512: em NFE.CARREGA_LOB, line 16
 ORA-06512: em line 1

 Criei o diretório da seguinte maneira: CREATE OR REPLACE DIRECTORY my_dir
 as 'C:\testelob';


 concedi permissão de leitura e gravação como PUBLIC, só por garantia
 porque o usuário que está executando a procedureé o mesmo que criou o
 diretório.

 GRANT READ, WRITE ON DIRECTORY my_dir TO PUBLIC;


 Abaixo está a procedure.

 CREATE OR REPLACE procedure carrega_lob
 ( v_file_name IN VARCHAR2
 ) IS
 BEGIN
 DECLARE
 v_bfile bfile := BFILENAME( 'my_dir' , v_file_name);
 v_lob clob;
 BEGIN

 INSERT INTO teste_lob
 (id, arq )
 VALUES
 ( 1, empty_clob() );

 dbms_lob.createtemporary(v_lob,TRUE);
 DBMS_LOB.FILEOPEN( v_bfile);
 DBMS_LOB.LOADFROMFILE ( v_lob, v_bfile, DBMS_LOB.GETLENGTH(v_bfile));
 DBMS_LOB.FILECLOSE(v_bfile);

 COMMIT;
 END;
 END;
 /


 Alguém sabe o que pode ser.

 T+.
 Márcio Ricardo Alves da Silva
 Programador Pleno
 * [EMAIL PROTECTED]

 Config Informática Ltda
  Av. Eng. Luis Carlos Berrini, 801 - 7º andar
  04571-010 - Brooklin Novo - São Paulo - SP
 ( Fone (11) 5501-8300
 ( Fax (11) 5501-8302
 8 www.config.com.br


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



 Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais acesse:
 http://www.oraclebr.com.br/codigo/ListaCodigo.php

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

 --
 O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
 http://www.oraclebr.com.br/

 
 Links do Yahoo! Grupos





-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Oracle 10g conflito de Interne

2007-12-22 Por tôpico Marcio Portes
Qual o erro do alert cuja mensagem indica que o banco caiu.
Outra coisa, ao invés de HOST = localhost, use HOST = x, onde x=seu
verdadeiro DNS

On Dec 23, 2007 1:14 AM, cabal_o [EMAIL PROTECTED] wrote:

   Olá amigos !
 Estou tendo um problema na empresa, migrei do 9i para o 10g. Quando
 instalei o BD eu estava conectado na web, daí eu não conseguia mais
 conectar no banco sem estar conectado na web. Desinstalei e instalei
 novamente sem estar conectado na web e aí funcionou perfeitamente,
 mas quando conecto na web o banco cai. jah configurei o TNS e o
 listener, ms ñ adiante, o banco sempre cai qdo conecto na web.

 meu tns:
 orcl =
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
 (CONNECT_DATA =
 (SERVER = SHARED)
 (SERVICE_NAME = orcl)
 )
 )

 meu listener:

 LISTENER =
 (DESCRIPTION_LIST =
 (DESCRIPTION =
 (ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
 )
 (ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
 )
 )
 )

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Standby Database - Fail Over oracle

2007-12-20 Por tôpico Marcio Portes
Veja uma receitinha de bolo em Portugues
http://mportes.blogspot.com/2007/06/montar-dataguard-no-10g-com-broker.html
http://mportes.blogspot.com/2007/06/broker-dataguard-e-real-time-apply-10g.html

O primeiro link, monta o Dataguard e o segundo faz o Real Time Apply.

On Dec 20, 2007 5:04 PM, Osvaldo Antonio Santos [EMAIL PROTECTED]
wrote:

   Boa tarde,

 alguem poderia me informar porque está retornando este erro, estou
 preparando um standby da seguinte forma
 172.16.81.157 Primary
 172.16.81.130 standby

 oracle 10g sendo que eu criei uma base de dados no primary com o nome PRD
 e
 no standby tambem com o nome PRD

 meu initPRD.ini do primary ficou assim :

 prd.__db_cache_size=75497472
 prd.__java_pool_size=4194304
 prd.__large_pool_size=4194304
 prd.__shared_pool_size=75497472
 prd.__streams_pool_size=0
 *.audit_file_dest='C:\oracle\PRD/admin/PRD/adump'
 *.background_dump_dest='C:\oracle\PRD/admin/PRD/bdump'
 *.compatible='10.2.0.1.0'

 *.control_files='C:\oracle\PRD/oradata/PRD/\control01.ctl','C:\oracle\PRD/oradata/PRD/\control02.ctl','C:\oracle\PRD/oradata/PRD/\control03.ctl'
 *.core_dump_dest='C:\oracle\PRD/admin/PRD/cdump'
 *.db_block_size=8192
 *.db_domain=''
 *.db_file_multiblock_read_count=16
 *.db_name='PRD'
 *.db_recovery_file_dest='C:\oracle\PRD/flash_recovery_area'
 *.db_recovery_file_dest_size=2147483648
 *.dispatchers='(PROTOCOL=TCP) (SERVICE=PRDXDB)'
 *.job_queue_processes=10
 *.open_cursors=300
 *.pga_aggregate_target=16777216
 *.processes=150
 *.remote_login_passwordfile='EXCLUSIVE'
 *.sga_target=167772160
 *.undo_management='AUTO'
 *.undo_tablespace='UNDOTBS1'
 *.user_dump_dest='C:\oracle\PRD/admin/PRD/udump'
 *.db_unique_name= 'PRD'
 *.log_archive_config='DG_CONFIG=(PRD,STANDBY)'
 *.log_archive_dest_state_1 = enable
 *.log_archive_dest_state_2 = enable
 *.log_archive_max_processes = 30
 *.fal_client = 'PRD'
 *.fal_server = 'STANDBY'
 *.standby_archive_dest='\\172.16.81.157\PRD\102\database\archive'
 *.standby_file_management='AUTO'
 *.log_archive_dest_1='LOCATION=C:\oracle\PRD\102\database\archive
 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PRD'
 *.log_archive_dest_2='SERVICE=STANDBY LGWR ASYNC
 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PRD'

 o Tnsnames.ora ficou assim :

 # tnsnames.ora Network Configuration File:
 C:\oracle\PRD\102\network\admin\tnsnames.ora
 # Generated by Oracle configuration tools.

 PRD.WORLD =
 (DESCRIPTION =
 (ADDRESS = (COMMUNITY = SAP.WORLD)(PROTOCOL = TCP)(HOST =
 ASP2332HOWXP)(PORT = 1521))
 (CONNECT_DATA =
 (SERVER = DEDICATED)
 (SERVICE_NAME = PRD)
 )
 )

 STANDBY.WORLD =
 (DESCRIPTION =
 (ADDRESS = (COMMUNITY = SAP.WORLD)(PROTOCOL = TCP)(HOST =
 ASP0761MTWXP)(PORT = 1521))
 (CONNECT_DATA =
 (SERVER = DEDICATED)
 (SERVICE_NAME = PRD)
 )
 )

 EXTPROC_CONNECTION_DATA =
 (DESCRIPTION =
 (ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
 )
 (CONNECT_DATA =
 (SID = PLSExtProc)
 (PRESENTATION = RO)
 )
 )

 e o listener ficou assim :

 # listener.ora Network Configuration File:
 C:\oracle\PRD\102\network\admin\listener.ora
 # Generated by Oracle configuration tools.

 
 # Filename..: listener.ora
 # Created...: created by SAP AG, R/3 Rel. = 4.0A
 # Name..:
 # Date..:
 

 SID_LIST_LISTENER =
 (SID_LIST =
 (SID_DESC =
 (SDU = 32768)
 (SID_NAME = PRD)
 (ORACLE_HOME = C:\oracle\PRD\102)
 )
 )

 LISTENER =
 (DESCRIPTION_LIST =
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = IPC)(KEY = PRD.WORLD))
 )
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = IPC)(KEY = PRD))
 )
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = ASP2332HOWXP)(PORT = 1521))
 )
 )

 STANDBY =
 (DESCRIPTION_LIST =
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = IPC)(KEY = STANDBY.WORLD))
 )
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = IPC)(KEY = PRD))
 )
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = ASP0761MTWXP)(PORT = 1527))
 )
 )

 fiz as allterações necessarias no PRD do standby em termos init e control
 files gerado a partir do primary como manual ele monta o standby legal
 porem
 na hora em que eu tento forçar a criação de um archive para ver se replica
 com o comando

 *ALTER SYSTEM SWITCH LOGFILE*
 Eu verifico se foi replicado porem não foi e no alert.log me aparece essa
 mensagem :

 ARC0: Archivelog destination LOG_ARCHIVE_DEST_2 disabled: Data Guard
 configuration identifier mismatch
 --
 Caso alguem saiba o que esta errado ou alguma manobra para fazer o standby
 com bases de mesmos nome por favor me ajudem..

 Obrigado

 Att,
 Osvaldo Antonio dos Santos

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] erro em trigger

2007-12-19 Por tôpico Marcio Portes
SQL CREATE OR REPLACE TRIGGER TRG_atividade_idAtividade
  2  BEFORE INSERT on atividade FOR EACH ROW
  3  BEGIN
  4  select atividade_idAtividade.nextval into :new.idAtividade
  5from dual;
  6  END;
  7  /

Trigger created.

SQL show error
No errors.


On Dec 19, 2007 11:29 AM, Welington Lourenço [EMAIL PROTECTED]
wrote:

   Olá pessoal, excutei o script abaixo e após a execução do mesmo o oracle
 me retorna warning: execução concluída com advertência. Sou iniciante em
 oracle e pesquisando na net fiz algumas comparações de trigger, sequences,
 etc..., mas não encontrei nada de errado.
 Alguém pode ajudar?

 CREATE TABLE atividade (
 idAtividade integer NOT NULL PRIMARY KEY,
 nivel integer default 0 NOT NULL ,
 descricao NVARCHAR2(150) default '' NOT NULL,
 codigo NVARCHAR2(30) default '' NOT NULL,
 indice number(5,2) default 0.00 NOT NULL,
 ccusto NVARCHAR2(4) default '' NOT NULL,
 direcionador NVARCHAR2(20) default '' NOT NULL,
 frequencia number(5,2) default 0.00 NOT NULL,
 qtdproduzida number(8,2) default 0.00 NOT NULL,
 tipodirecionador integer default 0 NOT NULL
 );

 --
 -- SEQUENCIA DA TABELA ATIVIDADE
 --

 CREATE SEQUENCE atividade_idAtividade INCREMENT BY 1 START WITH 0 MINVALUE
 0 MAXVALUE 9;

 --
 -- TRIGGER PARA INSERIR SEQUENCIA NA TABELA ATIVIDADE
 --

 CREATE OR REPLACE TRIGGER TRG_atividade_idAtividade
 BEFORE INSERT ON atividade
 FOR EACH ROW
 BEGIN TRANSACTION
 :new.idAtividade := atividade_idAtividade.nextval ;
 END;

 Obrigado a todos!
 Welington Lourenço

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] CLOB ; BLOB

2007-12-18 Por tôpico Marcio Portes
Sabemos que é o bendito CLOB

Baseado em que, vocês já sabem que é o CLOB o causador do problema de
performance? Uma simples tabela, onde a seqüência numérica seja dada por
max(num)+1, pode parar o banco, em caso de uma grande quantidade de
inserções, devido à serialização, ex.
http://mportes.blogspot.com/search?q=serializa%C3%A7%C3%A3o

Retomando seu problema, mostre à lista qual foi o método usado para concluir
que o CLOB é o gargalo, dessa forma a lista pode sugerir alguns artifícios
para melhor o desempenho das inserções.

On Dec 18, 2007 4:57 PM, Marcos Braga [EMAIL PROTECTED] wrote:

   Oi a todos da lista,

 Criamos uma tabela com uma coluna CLOB para guardar arquivos PDF.
 Funciona corretamente, mas . (imprevisto que não havíamos
 pensado), quando há uma quantidade grande de pessoas inserindo na mesma
 tabela o banco emperra, quase pára.
 Sabemos que é o bendito CLOB, mas não sabemos o que fazer para
 otimizar, alguém tem alguma idéia ou um caminho das pedras para que eu
 conheça mais a implementação desse tipo de campo?

 []'s
 Braga
  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: RES: RES: [oracle_br] SQL Dinamico

2007-12-16 Por tôpico Marcio Portes
Por que voce está usando esse tipo de programação? Qual a necessidade real?
O que voce procura é:

vsSql VARCHAR2(2000) := to_char( vnA+vnB+vnC ) ;

On Dec 14, 2007 1:50 PM, Informática - Usina Moreno 
[EMAIL PROTECTED] wrote:


 Sim

 - Mensagem original -De: HENRIQUIS Milton 
 [EMAIL PROTECTED] MILTON.HENRIQUIS%40cnh.comAté:   
 oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brCc: Data:
 Sexta-feira, Dezembro 14 2007 12:55 PMAssunto: RES: RES: [oracle_br] SQL
 DinamicoEnão, achoq ue basta vc tirar os dois pontos antes

 de cada variável!
 Já tentou isso??

 Milton Bastos Henriquis Junior

 Oracle Database Administrator

 -Mensagem original-
 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
 Informática - Usina Moreno
 Enviada em: sexta-feira, 14 de dezembro de 2007 12:37
 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Assunto: Re: RES: [oracle_br] SQL Dinamico

 Milton
 Não é isso que está fazendo, eu estou somando o valor das 3 variaveis e
 retornando no vnValor

 Marcos

 - Mensagem original -De: Milton Bastos Henriquis Jr. 
 [EMAIL PROTECTED] miltonbastos%40gmail.com mailto:
 miltonbastos%40gmail.com Até: 
 oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br Cc: Data: Sexta-feira, Dezembro 14 2007
 12:23 PMAssunto: Re: RES: [oracle_br] SQL DinamicoVc tem 3 variáveis: vnA,
 vnB, e vnC na query
 dinâmica. Ao retornar pro INTO, tem que retornar
 pra 3 variáveis, e vc retornou para apenas uma: vnValor.

 Entendeu??

 On Dec 14, 2007 11:57 AM, Informática - Usina Moreno 
 [EMAIL PROTECTED] informatica%40usinamoreno.com.br mailto:
 informatica%40usinamoreno.com.br  wrote:

  Não funciona, veja o que fiz:
 
  create or replace function FC_TESTE_SQL
  return NUMBER is
  vnValor number;
  vnA NUMBER := 1;
  vnB NUMBER := 2;
  vnC NUMBER := 3;
  vsSql VARCHAR2(2000) := ':vnA+:vnB+:vnC';
  begin
  vsSql := 'SELECT ' || vsSQL || ' FROM DUAL';
  EXECUTE IMMEDIATE vsSql INTO vnValor;
  return(vnValor);
  end FC_TESTE_SQL;
 
  Dá o ora-01008:not all variable bound
 
  Marcos
 
  - Mensagem original -De: Bruno Lorenzini 
  [EMAIL PROTECTED] listas.distribuicao%40gmail.com mailto:
 listas.distribuicao%40gmail.com listas.distribuicao%40gmail.comAté: 
  oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br mailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.brCc: Data:
  Sexta-feira, Dezembro 14 2007 11:17 AMAssunto: RES: [oracle_br] SQL
  DinamicovsSql VARCHAR2(2000) := ':a+:b+:c';
 
  vsSql := 'SELECT ' || vsSQL || ' FROM DUAL';
 
  EXECUTE IMMEDIATE vsSql INTO vnResultado;
 
  Tenta isso... acho que vai funcionar xD... o que sei é que esse FROM
 DUAL
  na
  clausula EXECUTE IMMEDIATE não existe.
 
  Abs,
 
  Bruno Lorenzini
 
  _
 
  De: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.br [mailto:
  oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br mailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.br] Em
  nome de Informática - Usina Moreno
  Enviada em: sexta-feira, 14 de dezembro de 2007 11:06
  Para: [EMAIL PROTECTED] Com. Br; Oracle_Br
  Assunto: [oracle_br] SQL Dinamico
 
  Srs bom dia
 
  Eu preciso usar o sql dynamic, mas não estou conseguindo, segue um
  exemplo:
 
  vsSql VARCHAR2(2000) := ':a+:b+:c';
  EXECUTE IMMEDIATE vsSql FROM DUAL INTO vnResultado
  eu posso ter qualquer expressão matemática dentro da variavel vsSql
  Seu substituo as variaveis pelo valores e mando executar funciona, mas
 eu
  quero executar sem subtituição.
 
  ALguem poderia dar um exemplo usando o que passei acima?
 
  Marcos
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 

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

 Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais acesse:
 http://www.oraclebr.com.br/codigo/ListaCodigo.php 
 http://www.oraclebr.com.br/codigo/ListaCodigo.php
 --
 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/ 
 http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --
 O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
 http://www.oraclebr.com.br/ http://www.oraclebr.com.br/
 --
 Links do Yahoo! Grupos

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


  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


[As partes desta mensagem

Re: [oracle_br] Dúvidas em SQL

2007-12-05 Por tôpico Marcio Portes
Considero que variação de salário é quando o salário muda e então, segundo
seu exemplo, a data de referência é a primeira da variação (mudança). Então
uma query poderia ser:

ops$marcio:LX10G col sal format 999g999g999d99
ops$marcio:LX10G select * from t;

 DREF SAL
- ---
   200607   42.168,00
   200608   42.168,00
   200609   42.168,00
   200610   43.057,75
   200611   42.168,00
   200612   43.057,75
   200701   43.057,75
   200702   43.057,75
   200703   43.057,75
   200704   40.469,02
   200705   33.350,00
   200706   33.350,00
   200707   33.350,00

13 rows selected.

ops$marcio:LX10G select dref, sal
  2from ( select dref, sal, lag(sal) over (order by dref) lsal from t )
t
  3   where lsal is null or lsal  sal
  4  /

 DREF SAL
- ---
   200607   42.168,00
   200610   43.057,75
   200611   42.168,00
   200612   43.057,75
   200704   40.469,02
   200705   33.350,00

6 rows selected.




On Dec 4, 2007 1:19 PM, thiagocx26 [EMAIL PROTECTED] wrote:

   Pessoal,

 Sou novo no grupo e estou com uma dúvida e não consigo de
 forma alguma resposta. Alguem pode me ajudar?

 É o seguinte:

 Tenho uma relação de salários e suas respectivas datas de referência;

 ex:

 200607 - 42168,00
 200608 - 42168,00
 200609 - 42168,00
 200610 - 43057,75
 200611 - 42168,00
 200612 - 43057,75
 200701 - 43057,75
 200702 - 43057,75
 200703 - 43057,75
 200704 - 40469,02
 200705 - 33350,00
 200706 - 33350,00
 200707 - 33350,00

 Gostaria em uma query simples sem utilização de ponteiros que a
 consulta me retorna-se as variações de salários por referência

 ex:

 200607 - 42168,00
 200610 - 43057,75
 200611 - 42168,00
 200612 - 43057,75
 200704 - 40469,02
 200705 - 33350,00

 Quando eu rodo meu SQL ele me retorna o menor valor por referencia,
 então ele me retorna somente 4 resultados...
 Alguem poderia me ajudar com isso?

 O sql que eu estou utilizando é o seguinte

 SELECT FF.NUM_INSCRICAO ,
 FF.ANO_REF || FF.MES_REF ,
 FF.SRC

 FROM CC_FICHA_FINANCEIRA FF

 WHERE FF.CD_FUNDACAO = '01'
 AND FF.NUM_INSCRICAO = '000269292'
 AND FF.CD_PLANO = '0035'
 AND FF.ANO_REF || FF.MES_REF = FF.ANO_COMP || FF.MES_COMP
 AND FF.ANO_REF || FF.MES_REF = '200607'
 AND FF.ANO_REF || FF.MES_REF = '200707'
 AND FF.ANO_REF || FF.MES_REF in (
 SELECT min( F1.ANO_REF ||
 F1.MES_REF )
 FROM CC_FICHA_FINANCEIRA F1
 WHERE F1.CD_FUNDACAO =
 FF.CD_FUNDACAO
 AND F1.NUM_INSCRICAO =
 FF.NUM_INSCRICAO
 AND F1.CD_PLANO =
 FF.CD_PLANO
 AND F1.ANO_REF || F1.MES_REF
 = '200607'
 AND F1.ANO_REF || F1.MES_REF
 = '200707'
 AND F1.SRC
 = FF.SRC

 )
 AND FF.CD_TIPO_CONTRIBUICAO
 = '01'
 AND FF.CD_OPERACAO = 'C'

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Ultimo registro de um cursor

2007-10-30 Por tôpico Marcio Portes
Tathyanna,

Um cursor nada mais é que uma instrução sql. Para saber a última linha, veja
a ordem que corresponde o cursor inverta e inclua o rownum=1.
E para saber quantas linhas: select count(*) from query do cursor

On 10/30/07, Tathyanna Pelegrinni [EMAIL PROTECTED] wrote:

   Gente,

 tem como eu descobrir qual o ultimo registro de um cursor e/ou total de
 linhas destes, sem usar o
 open - fetch - close e sim usando o for-loop-end loop ??
 Tem!?

 Muito obrigada!

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] duvida em indice

2007-10-30 Por tôpico Marcio Portes
Desculpe contrariar sua resposta, mas depende, se o otimizador achar
vantagem usar o índice, mesmo que voce mencione somente um dos campos ele
usa o índice. Ex.

ops$marcio:LX10G create table t ( x int, y int, z int);

Table created.

ops$marcio:LX10G
ops$marcio:LX10G insert into t select mod(rownum,1000), mod(rownum,100),
rownum from all_objects;

52864 rows created.

ops$marcio:LX10G create index t_i on t(x,y);

Index created.

ops$marcio:LX10G exec dbms_stats.gather_table_stats( user, 'T', cascade =
true )

PL/SQL procedure successfully completed.

ops$marcio:LX10G set autotrace on
ops$marcio:LX10G select * from t where x = 1;

X Y Z
- - -
1 1  1001
1 1  2001
1 1 1
1 1  3001
1 1  4001
1 1  5001
1 1  7001
1 1  9001
1 1  8001
1 1  6001
1 1 10001
1 1 11001
1 1 12001
1 1 15001
1 1 14001
1 1 13001
1 1 52001
1 1 19001
1 1 16001
1 1 17001
1 1 18001
1 1 20001
1 1 21001
1 1 22001
1 1 23001
1 1 24001
1 1 25001
1 1 27001
1 1 28001
1 1 26001
1 1 29001
1 1 30001
1 1 31001
1 1 33001
1 1 34001
1 1 32001
1 1 35001
1 1 36001
1 1 37001
1 1 38001
1 1 40001
1 1 41001
1 1 39001
1 1 42001
1 1 43001
1 1 44001
1 1 46001
1 1 47001
1 1 45001
1 1 51001
1 1 48001
1 1 49001
1 1 50001

53 rows selected.


Execution Plan
--
Plan hash value: 1658221841


| Id  | Operation   | Name | Rows  | Bytes | Cost (%CPU)|
Time |

|   0 | SELECT STATEMENT|  |53 |   583 |55   (0)|
00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| T|53 |   583 |55   (0)|
00:00:01 |
|*  2 |   INDEX RANGE SCAN  | T_I  |53 |   | 2   (0)|
00:00:01 |


Predicate Information (identified by operation id):
---

   2 - access(X=1)


Statistics
--
  1  recursive calls
  0  db block gets
 56  consistent gets
  0  physical reads
  0  redo size
   1054  bytes sent via SQL*Net to client
400  bytes received via SQL*Net from client
  2  SQL*Net roundtrips to/from client
  0  sorts (memory)
  0  sorts (disk)
 53  rows processed



On 10/30/07, joao batista [EMAIL PROTECTED] wrote:

   Somente quando vc faz referência as 02 chaves que fazem parte de indice.

 Att,
 João Batista

 fabiopdb [EMAIL PROTECTED] fabiopdb%40yahoo.com.br escreveu:
 Quando tenho um indice composto ex (cod_cli,cpf_cli) e faço uma busca
 usando apenas uma chave , ele usa o indice ou ele so usa quando chamo
 as duas chaves ?

 Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
 armazenamento!

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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

Re: [oracle_br] Re: dúvida com SQL

2007-09-26 Por tôpico Marcio Portes
Vixi! Quanto código!!!
Vale dar uma olhada em um post que eu coloquei uma vez
http://mportes.blogspot.com/2006/01/escrevendo-cdigo-demais.html

Sobre seu problema:
Retornava e retorna 1o. de setembro, porque estamos em setembro! quando voce
faz um to_date desta forma, é como dar um trunc na data com o inicio do mes,
veja:

ops$marcio:LX10G exec :n := 11405

PL/SQL procedure successfully completed.


N
-
11405

ops$marcio:LX10G select rpad('0',6,:n) from dual;

RPAD('
--
011405

1 row selected.

ops$marcio:LX10G select to_date(rpad('0',6,:n),'hh24miss') from dual;

TO_DATE(RPAD('0',6,
---
01/09/2007 01:14:05

1 row selected.

Quando eu mudo a data do meu server, também muda a query.

ops$marcio:LX10G !sudo date '01312007'
Wed Jan 31 20:07:00 BRST 2007

ops$marcio:LX10G select to_date(rpad('0',6,:n),'hh24miss') from dual;

TO_DATE(RPAD('0',6,
---
01/01/2007 01:14:05

1 row selected.

ops$marcio:LX10G select sysdate from dual;

SYSDATE
---
31/01/2007 20:08:25

1 row selected.

Mas qual é o problema com a Data?? Penso que nenhum, pois o que voce está
interessado é na parte numérica da hora/min/seg certo?
Então voce pode fazer seu cálculo tranquilamente:

Agora se voce quiser trabalhar TAMBÉM com data de hoje, use a aritmética de
datas e somar a hora na data de hoje ou em qualquer outra data. Veja:
1) Primeiro, ache a diferença em dias, das horas que voce tem contra o
inicio do mes, depois some este valor a 00 horas da data que voce quer ver
as horas.

ops$marcio:LX10G select to_date(rpad('0',6,:n),'hh24miss') -
trunc(sysdate,'mm') from dual;

TO_DATE(RPAD('0',6,:N),'HH24MISS')-TRUNC(SYSDATE,'MM')
--
 ,051446759259

1 row selected.

ops$marcio:LX10G select trunc(sysdate) +
(to_date(rpad('0',6,:n),'hh24miss') - trunc(sysdate,'mm')) from dual;

TRUNC(SYSDATE)+(TO_
---
27/09/2007 01:14:05

1 row selected.


Agora basta voce verificar se isso se aplica a seu código.

PS. Roberto Amorim: Respondendo a sua dúvida, Márcio - sou eu! Talvez o
Bruno tenha se enganado quando respondeu o seu e-mail.

On 9/26/07, rei_do_delphi [EMAIL PROTECTED] wrote:

   É Márcio, o problema é que assim, pode haver para 1 da manha o
 seguinte formato : 11405 e o certo deveria ser 011405 para 1 hora, 14
 minutos e cinco segundos. Na verdade não sei o porque eles não usam
 campo datatime. O que teria que fazer então é
 to_date((to_char(142514,'00'),'hh24miss'), o problema é que quando
 eu fazia isso, não sei por qual razão ele retornava 1/09/2007. Não me
 pergunte o porque. Só sei que consegui resolver dessa maneira:

 select hhmmss_out_acqr,hhmmss_inp_acqr,

 abs((to_number(substr(to_char(hhmmss_out_acqr,'00'),1,2)*3600)-
 to_number(substr(to_char(hhmmss_inp_acqr,'00'),1,2)*3600))+
 (to_number(substr(to_char(hhmmss_out_acqr,'00'),4,2)*60)-
 to_number(substr(to_char(hhmmss_inp_acqr,'00'),4,2)*60))+
 (to_number(substr(to_char(hhmmss_out_acqr,'00'),6,2))-
 to_number(substr(to_char(hhmmss_inp_acqr,'00'),6,2)))
 ) as tempo,
 --hhmmss_inp_acqr as tempo ,
 data_tx from tabela1

 foi o único jeiro que consegui fazer,
 \

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Marcio Portes
 [EMAIL PROTECTED] escreveu
 
  Qual o problema com o to_date(...) não entendi.
  Eu faria exatamente isso: to_date(campo, 'hh24miss') - to_date()...
 
 
  On 9/25/07, rei_do_delphi [EMAIL PROTECTED] wrote:
  
   Boa tarde a todos, tenho uma tabela que tem um campo que armazena a
   data de alguma coisa, em formato number. Ex: 193104 para 19 horas, 31
   minutos e 04 segundos. Precisamos subtrair esse campo de outro campo
   que também contém hora nesse mesmo forma e também em number. Gostaria
   de saber se há alguma maneira de fazer isso sem uso de pl/sql, isto é,
   apenas por funções do oracle, ja sei que não funciona:
  
   select to_date(campo,'hh24miss') from tabela
  
   pois ele reclama que a hora tem que estar entre 0 e 23.
  
   Alguém pode me dar alguma ajuda?
   Obrigado a todos e abraço.
  
  
  
 
 
 
  --
  Marcio Portes
  Material Tecnico em Portugues - http://mportes.blogspot.com
  Practical Learning Oracle -
  http://mportes.blogspot.com/2006/02/practical-learning-oracle.html
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Sequencia no select

2007-09-25 Por tôpico Marcio Portes
hmmm???
Poderia enviar um create table, inserts e o resultado que voce gostaria.

On 9/25/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:



 Tem como fazer um select da seguinte forma?
 codigo descricao linha
 125
 tenis 1
 125
  tenis 2
 894  chinelo1
 126  sapato 1
 126  sapato 2

 o campo linha (vai ser tipo uma função) seria uma
 sequencia do codigo, quando o codigo do produto for diferente do anterior
 ele volta para 1, se for igual ele soma mais 1.

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] dúvida com SQL

2007-09-25 Por tôpico Marcio Portes
Qual o problema com o to_date(...) não entendi.
Eu faria exatamente isso: to_date(campo, 'hh24miss') - to_date()...


On 9/25/07, rei_do_delphi [EMAIL PROTECTED] wrote:

   Boa tarde a todos, tenho uma tabela que tem um campo que armazena a
 data de alguma coisa, em formato number. Ex: 193104 para 19 horas, 31
 minutos e 04 segundos. Precisamos subtrair esse campo de outro campo
 que também contém hora nesse mesmo forma e também em number. Gostaria
 de saber se há alguma maneira de fazer isso sem uso de pl/sql, isto é,
 apenas por funções do oracle, ja sei que não funciona:

 select to_date(campo,'hh24miss') from tabela

 pois ele reclama que a hora tem que estar entre 0 e 23.

 Alguém pode me dar alguma ajuda?
 Obrigado a todos e abraço.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Oracle Dataguard

2007-09-21 Por tôpico Marcio Portes
Aqui tem um receitinha de bolo.
http://mportes.blogspot.com/2007/06/montar-dataguard-no-10g-com-broker.html

On 9/21/07, softwaream [EMAIL PROTECTED] wrote:

   Senhores,

 COmo instalo o Dataguard, ja uso o Oracle Enterprise 10g ok

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Performance na Consulta

2007-09-21 Por tôpico Marcio Portes
Tem como postar o plano de execução?
o idtransacao é varchar2 e voce está comparando com number, isso faz
conversão implícita. Então vamos ver o que o Oracle está fazendo!

On 9/21/07, camargodba [EMAIL PROTECTED] wrote:

   Olá pessoal.

 Preciso de um conselho/orientação para melhorar uma consulta simples.

 Realizo uma consulta simples para retornar uma única linha em uma
 table com 26 milhões de registros, só que esta demorando 3 minutos.

 Exemplo de comando:

 SELECT IDTRANSACAO FROM TRANSACAO WHERE idtransacao =
 0760040004000713471145053517;

 A table tem a seguinte estrutura

 IDTRANSACAO VARCHAR2(33)- NOT NULL - PRIMARY KEY
 IDORIGEM NUMBER(15) - NOT NULL
 COBRANCA NUMBER(1) - NOT NULL
 ...

 Sei que ao definir uma coluna como PRIMARY KEY, automaticamente o
 Oracle cria um Index para ela.

 Segue o Index que foi criado automaticamente...

 CREATE UNIQUE INDEX XPKTRANSACAO ON TRANSACAO
 (IDTRANSACAO)
 LOGGING
 TABLESPACE TESTE
 PCTFREE 10
 INITRANS 2
 MAXTRANS 255
 STORAGE (INITIAL 256M
 NEXT 25M
 MINEXTENTS 1
 MAXEXTENTS 2147483645
 PCTINCREASE 0
 BUFFER_POOL DEFAULT
 )
 NOPARALLEL;

 Executei o comando ALTER INDEX XPKTRANSACAO DEALLOCATE UNUSED; para
 desalocar espaço não utilizado no indice, com isso consegui ganhar
 mais 10 segundos na consulta.

 Neste caso tem como eu conseguir uma melhor performance na consulta???

 Esta consulta é uma base para as demais funções do meu banco, porém é
 a responsavel pela demora do resultado.

 OS - Windows 2003 Server
 SGDB - Oracle 9.2

 Agradeço pela atenção...

 Até mais.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Revogar Alter table

2007-08-28 Por tôpico Marcio Portes
Retire a senha do dono do esquema, crie um outro esquema usando views do
sistema principal onde os privilégios são controlados por voce.


On 8/28/07, Carlos [EMAIL PROTECTED] wrote:

   Pessoal,

 Estamos precisando controlar nosso ambiente de desenvolvimento,
 revogando alguns privilégios dos desenvolvedores.
 O primeiro que pensamos foi o create table. Ao removermos esse
 privilégio de sistema, esperávamos que o usuário owner também não
 conseguisse alterar e muito menos dropar a tabela, o que não se
 confirma na prática.

 Qual a melhor forma de controlar essa questão? Não queremos que os
 desenvolvedores criem tabelas, muito menos as altere ou drop.
 Algum de vocês, caso já tenha se deparado com esse problema, como
 conseguiram implementar uma solução eficaz?

 Muito grato

 Carlos

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Cursos DBA Oracle

2007-07-31 Por tôpico Marcio Portes
Lá na En-sof tem uns tiozinhos bons viu? ;-PP
hehe é nois fazendo propaganda!


On 7/31/07, Adriano de Oliveira [EMAIL PROTECTED] wrote:

   é. já me recomendaram a en-sof.
 o problema de morar no interior de sp é isso..
 dificil de achar cursos por aqui

 []'s


 - Original Message -
 From: Bruno Lorenzini
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Sent: Tuesday, July 31, 2007 4:21 PM
 Subject: RES: [oracle_br] Cursos DBA Oracle

 Eu to fazendo um pela em-sof. Os intrutores são muitos bons, mas é curso
 oficial... o preço é meio salgado...

 Sds,

 _

 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 Anderson Ferreira
 Enviada em: terça-feira, 31 de julho de 2007 16:16
 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Assunto: Re: [oracle_br] Cursos DBA Oracle

 Cara eu to realizando o curso Completo da oracle 10 g no IBTA.é bom e
 eu
 tô curtindo cara
 - Original Message -
 From: Adriano de Oliveira
 To: [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.br os.com.br
 Sent: Tuesday, July 31, 2007 3:53 PM
 Subject: [oracle_br] Cursos DBA Oracle

 Olá Galera..
 Quais os cursos, de Oracle DBA, preparação para certificação vcs fizeram
 e/ou recomendam?

 []'s
 Adriano

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

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

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

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Re: URGENTE: Ajuda dos amigos DBAs!

2007-07-30 Por tôpico Marcio Portes
   nessa hora, ele pode configurar a tablespace no tamanho
  adequado
   Mas sim, isso é um job de DBA, ponto.
  
   === O que vc como desenvolvedora PODE e DEVE fazer é,
 além de
  dar
   a info acima pra ele pra ele poder te dar os dados sobre
   undo/rollback, é , ** também JUNTO COM O DBA **,
 verificar a
   possibilidade de usar um modo especial de operação do
 banco,
  chamado
   DIRECT MODE ou APPEND-MODE, caso esse em que a operação de
INSERT
   gera o *** mínimo do mínimo *** de undo/rollback, pra
 casos de
  carga
   de dados esse modo de operação muitas vezes cai como uma
 luva,
**
  MAS
   ** há exigências e pré-reuisitos pra o usar, é junto com
 o DBA
que
  vc
   vai ver se pode.
  
   Pra vc saber mais sobre undo/rollback, além do
 manual Oracle
   Concepts eu recomendo o livro Expert Oracle Database
  Architecture:
   9i and 10g Programming Techniques and Solutions, de
 Thomas
Kyte ,
   ele não é específico pra DBA, serve pra qquer um que vá
trabalhar
  com
   o banco e tem explicações muito muito boas sobre o
funcionamento do
   banco Oracle de modo geral.
  
  
   []s
  
   Chiappa
  
   --- Em 
   oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.br
 oracle_br%
 40yahoogrupos.com.broracle_br%
40yahoogrupos.com.br,
  Renata de Oliveira
   renata.o.pereira@ escreveu
   
Olá pessoal, boa tarde à todos!
   
Preciso da ajuda dos amigos DBA's
Ao executar uma rotina de carga (de uma tabela
 existente para
uma
tabela nova), o processo, está caindo na exception de
 erro, e
me
   traz o
seguinte erro Oracle:
   
ORA-01555: snapshot too old: rollback segment number 44
 with
name RS_O53 too small
ORA-06512: at line 637
No errors
   
Alguém saberia me informar, ou me dar uma dica de como
solucionar
   esse
problema?!!?!?
A explicação que tive, foi que o Oracle escolhe
automaticamente
  que
segmento de rollback usar, e que não tenho como
 executar essa
   carga.
Porém estou correndo atrás de informações para entender
melhor o
   que
banco está fazendo e o que posso fazer para tentar
 executar
esse
processo
--
Como não sou DBA, e foi pedido um aumento de tamanho de
 espaço
  das
tablespaces, gostaria de saber com vcs, se o DBA tem
 como me
dar
  os
tamanhos que essas tablespaces possuem hoje, e se tenho
 como
  saber
   o
tamanho da área de rollback?!
   
Afinal, alguém tem informações sobre àrea de rollback do
  Oracle?!?!
Gostaria de entender melhor e ler + a respeito.
   
Sei q são várias perguntas em umamas agradeço à
 todos q
  tiverem
   qq
dica!!
   
Obrigada!!!
Att,
   
Renata de Oliveira
   
  
 
 
 


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

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Erro na Criacao de Indice

2007-07-29 Por tôpico Marcio Portes
PCTINCREASE??? Que versão do Oracle voce está???
Quando não estiver seguro do que os parâmetros representam, deixe default.

CREATE INDEX dbamv.itreg_amb_pro_fat_fk_i
ON dbamv.itreg_amb ( cd_pro_fat ) TABLESPACE mv2000_i
/

On 7/27/07, cegoncalvesvr [EMAIL PROTECTED] wrote:

   Amigos,

 Dropei este indice e estou tentando cria-lo novamente, mas a
 mensagem de erro esta impedindo.
 Identifiquei que o erro de bloco era nesse indice pela DBA_EXTENTS.

 CREATE INDEX dbamv.itreg_amb_pro_fat_fk_i
 ON dbamv.itreg_amb
 ( cd_pro_fat )
 PCTFREE 10
 INITRANS 2
 MAXTRANS 255
 TABLESPACE mv2000_i
 STORAGE (
 INITIAL 65536
 NEXT
 PCTINCREASE
 MINEXTENTS 1
 MAXEXTENTS 2147483645

 )
 /

 Mensagem do erro abaixo:
 PCTINCREASE
 *
 ORA-02219: valor inválido da opção de armazenamento NEXT

 Alguem pode me ajudar.

 Obrigado

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Comando MERGE

2007-07-27 Por tôpico Marcio Portes
 lista as opções
 todas citadas.

 b. o MAIS IMPORTANTE, depois que vc passou a poder acessar o tal
 dado, vc IMEDIATAMENTE TEM QUE descobrir a causa, senão isso vai se
 repetir DE NOVO, e de NOVO, e DE NOVO. Pra isso, é chamar uma
 Empresa de manutenção de hardware, que vai fazer um check ** PROFUNDO
 ** no hardware (ie, discos, RAM, controladora, placa-mãe, etc) do teu
 srevidor, ** levantar ** com o pessoal da Operação o que foi feito
 recentemente nessa máquina, que softs rodaram/foram instalados
 recentemente, E abrir chamado com a Oracle e com o teu Suporte de SO,
 pra ver o caso de bugs.

 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br ,
 cegoncalvesvr
 [EMAIL PROTECTED] escreveu
 
  Ola meus amigos,
 
  Utilizando o sistema, no momento de gerar um relatorio, surgiu
 o
  seguinte erro no sistema:
 
  ORA:01578 - Bloco de dados Oracle danificado (arquivo numero.13,
  bloco num.845288). ORA:01110-13 do arquivo de
  dados: 'E\Oracle\Oradata\cssj\MV2000_I.DBF - (Tablespace)
 
  Fui no servidor e abri o arquivo alert, o erro esta abaixo:
  Corrupt block relative dba: 0x034ce5e8 (file 13, block 845288)
  Bad check value found during buffer read
  Data in bad block -
  type: 6 format: 2 rdba: 0x034ce5e8
  last change scn: 0x.057a7f29 seq: 0x2 flg: 0x04
  consistency value in tail: 0x7f290602
  check value in block header: 0xdea1, computed block checksum:
 0x1000
  spare1: 0x0, spare2: 0x0, spare3: 0x0
  ***
  Reread of rdba: 0x034ce5e8 (file 13, block 845288) found same
  corrupted data
 
  - O erro é no disco, certo?
  Tem alguma forma de corrigir este problema?
  Isolar a area defeituosa?
 
  Aguardo.
  Obrigado a todos.
 

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] PROBLEMAS NA CRIAÇÀO DE DATABASE

2007-07-25 Por tôpico Marcio Portes
veja o ORACLE_SID da sessão que está rodando a criação, esta variável deve
estar apontando para um banco que já existe e está montado.

On 7/25/07, amorrimm [EMAIL PROTECTED] wrote:

   Boa tarde pessoal,

 Tenho um oracle 9 instalado que possui 3 databases. EStou tentando
 criar um 4 pelo DBCA mas é exibido a seguinte mensage: erro na criação
 do processo d:\oracle\ora92\bin\sqlplus -s/nolog e não consigo de jeito
 algum criar o database.

 Tento criar de forma manual, pelo comando create database e me é
 exibido a mensagem de erro: ORA: 01501 create failed / ORA: 01100
 Database Already mounted.

 alguem por favor, tem ideia do que possa estar ocorredo ?

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Re: Wait Lock Session - Problema

2007-07-24 Por tôpico Marcio Portes
Alexandro, concentre sua atenção no desenho da sua aplicação, acredito que
os locks venham de lá.

On 7/24/07, alexandro_assencao [EMAIL PROTECTED] wrote:

   Olá Anderson !!!

 Até identifico em meu banco qual é o tipo de lock que estou tendo.
 Os tipos são:
 3 - 'Row Exclusive (SX)',
 6 - 'Exclusive (X)'
 Identifiquei também que os locks estão ocorrendo sempre em uma tabela
 em específico, eu chego até matar algumas conexões em execução no
 banco que nunca acabam. Quando eu elimino estas conexões logo elas
 liberam as sessões em wait porém depois de meia hora vem o lock
 novamente e as demais sessões ficam travadas.

 Você tem idéia do que mais preciso saber para identificar o problema ?

 Obrigado pela ajuda.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Opatch - o que fazer????

2007-07-13 Por tôpico Marcio Portes
 inventory is not setup correctly this utility will
#  fail. To check accessibility to the inventory you can use the
#  command
#
#% opatch lsinventory
#
#  If you have any problems installing this PSE or are not sure
#  about inventory setup please call Oracle support.
#
#  Patch Deinstallation Instructions:
#  --
#  Use the following command:
#
#% cd 5661717
#% opatch rollback -id 5661717
#



On 7/13/07, ESTUDO [EMAIL PROTECTED] wrote:

   sim :0(
 não sei o que fazer.
 bjs
 cris
 - Original Message -
 From: Marcio Portes
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Sent: Thursday, July 12, 2007 9:52 PM
 Subject: Re: [oracle_br] Opatch - o que fazer

 voce rodou o opatch de dentro do diretorio ?
 cd /opt/oracle/admin/dba/5661717
 $ORACLE_HOME/OPatch/opatch apply

 On 7/12/07, ESTUDO [EMAIL PROTECTED] estudo2003%40ig.com.br wrote:
 
  Já ví que essa é apenas a listagem do ultimo patch aplicado :0)
 
  Agora o que acontece é o seguinte:
  Copiei o patch 5661717 para a seguinte estrutura:
  /opt/oracle/admin/dba/5661717
 
  Apliquei o seguinte comando ( mesmo sem baixar a base, só para ver se
  funcionava):
 
  $ORACLE_HOME/OPatch/opatch apply
 
  e recebi essa mensagem:
 
  Oracle Interim Patch Installer version 1.0.0.0.53
  Copyright (c) 2005 Oracle Corporation. All Rights Reserved..
 
  We recommend you refer to the OPatch documentation under
  OPatch/docs for usage reference. We also recommend using
  the latest OPatch version. For the latest OPatch version
  and other support related issues, please refer to document
  293369.1 which is viewable from metalink.oracle.com
 
  Oracle Home = /opt/oracle/product/9.2
  Location of Oracle Universal Installer components =
  /opt/oracle/product/9.2/oui
  Location of OraInstaller.jar = /opt/oracle/product/9.2/oui/jlib
  Oracle Universal Installer shared library =
  /opt/oracle/product/9.2/oui/lib/linux/liboraInstaller.so
  Location of Oracle Inventory Pointer = /etc/oraInst.loc
  Location of Oracle Inventory = /opt/oracle/product/9.2/inventory
  Path to Java = /opt/oracle/product/9.2/jre/1.4.2/bin/java
  Log file = /opt/oracle/product/9.2/.patch_storage/patch ID/*.log
 
  The patch directory area must be a number.
 
  ERROR: OPatch failed because of problems in patch area.
 
  Obrigada
 
  Cris
 
  - Original Message -
  From: ESTUDO
  To: oracle_br@yahoogrupos.com.br 
  oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.br
  Sent: Thursday, July 12, 2007 10:27 AM
  Subject: Re: [oracle_br] Opatch - o que fazer -Marcio
 
  Vixiii
  Marcio.. olha o que aconteceu:
 
  ch/docs for usage reference. We also recommend using
  the latest OPatch version. For the latest OPatch version
  and other support related issues, please refer to document
  293369.1 which is viewable from metalink.oracle.com
 
  Oracle Home = /opt/oracle/product/9.2
  Location of Oracle Universal Installer components =
  /opt/oracle/product/9.2/oui
  Location of OraInstaller.jar = /opt/oracle/product/9.2/oui/jlib
  Oracle Universal Installer shared library =
  /opt/oracle/product/9.2/oui/lib/linu
  x/liboraInstaller.so
  Location of Oracle Inventory Pointer = /etc/oraInst.loc
  Location of Oracle Inventory = /opt/oracle/product/9.2/inventory
  Path to Java = /opt/oracle/product/9.2/jre/1.4.2/bin/java
  Log file = /opt/oracle/product/9.2/.patch_storage/patch ID/*.log
 
  Creating log file
  /opt/oracle/product/9.2/.patch_storage/LsInventory__07-12-200
  7_10-22-00.log
 
  Result:
 
  Installed Patch List:
  =
  1) Patch 4560421 applied on Wed Oct 26 11:29:30 BRST 2005
  [ Base Bug(s): 3504220 4312525 3301573 3323435 3863021 4017526 4180561
  3518624 3382229 4049345 3591119 3329096 3703478 4383771 3663924 4567951
  3990826 3835964 3737955 3739819 3289786 3858398 4415230 3150750 3611471
  3187502 3253770 4316177 3371861 4405919 3356951 4386775 3390021 3320622
  2701372 3119415 4343714 3566420 2747350 3467364 3724548 4185276 3545539
  4199435 3653586 4392388 4193299 3890898 4457989 4051811 4078123 3785200
  3354470 3317309 4175162 3566511 3569503 3564337 2628067 4493075 3780672
  4365348 4367445 3557842 3949307 3963167 3789406 3889519 3485997 4003006
  3589588 3200136 3110547 3318204 3455402 2920562 3381218 3583215 4370067
  3910149 2455147 4523473 4509137 4126826 3315378 3398205 3944226 3029367
  3407944 3443747 3447383 3294293 4057729 2549574 3406977 3749490 3638695
  3984786 3414440 3262241 2690205 4167403 3473315 3346154 4085118 3816821
  3057951 4392256 2918138 3425298 3691672 3828166 3554954 3867193 2964692
  3194997 4560421 4530308 4292151 3275045 3832631 3811906 3808090 4333952
  2546446 3808093 4266635 3641963 3717619 3973636 4269869 3010227 4184031
  3562032 3635331 3664007 4019454 3827053 3560890 3537086 3455357 3635177
  3614289 4387084 3487338 3743946 3177769 3672985 ]
 
  será que instalou algo?
 
  bjs
 
  Cris
  - Original Message -
  From: Marcio Portes

Re: [oracle_br] tratamento estouro de campo number

2007-07-13 Por tôpico Marcio Portes
Substitua minha mensagem de trate o erro por sua lógica de tratamente de
erro! Se é que ela existe!!

ops$marcio:LX10G create or replace procedure p ( p_numero in number )
  2  is
  3 l_nr5 number(5,2);
  4 numero_grande exception;
  5 pragma exception_init( numero_grande, -6502 );
  6  begin
  7 l_nr5 := p_numero;
  8 dbms_output.put_line('Numero informado:'|| to_char(l_nr5));
  9  exception when numero_grande then
 10 dbms_output.put_line('Campo estourou, trate o erro!');
 11  end;
 12  /

Procedure created.

ops$marcio:LX10G
ops$marcio:LX10G exec p( 200 )
Numero informado:200

PL/SQL procedure successfully completed.

ops$marcio:LX10G
ops$marcio:LX10G exec p( 1000 )
Campo estourou, trate o erro!

PL/SQL procedure successfully completed.

ops$marcio:LX10G



On 7/13/07, Rafael Alexandre Schmitt [EMAIL PROTECTED] wrote:

   Olá,

 Imagine a seguinte situação: eu tenho um campo number(17,2) na tabela A.

 Esse campo deve ser inserido no campo number(5,2) da tabela B através de
 uma trigger de insert/update que fica embaixo da tabela A.

 Qual a melhor forma de tratar o estouro do campo na tabela B? Não queria
 fazer substr e não posso aumentar o tamanho do campo na tabela B ou diminuir
 o tamanho do campo na tabela A.

 --
 Rafael Alexandre Schmitt
 [EMAIL PROTECTED] rafael%40hbtec.com.br || www.hbtec.com.br
 Blumenau - Santa Catarina

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Opatch - o que fazer????

2007-07-12 Por tôpico Marcio Portes
voce rodou o opatch de dentro do diretorio ?
cd /opt/oracle/admin/dba/5661717
$ORACLE_HOME/OPatch/opatch apply


On 7/12/07, ESTUDO [EMAIL PROTECTED] wrote:

   Já ví que essa é apenas a listagem do ultimo patch aplicado :0)

 Agora o que acontece é o seguinte:
 Copiei o patch 5661717 para a seguinte estrutura:
 /opt/oracle/admin/dba/5661717

 Apliquei o seguinte comando ( mesmo sem baixar a base, só para ver se
 funcionava):

 $ORACLE_HOME/OPatch/opatch apply

 e recebi essa mensagem:

 Oracle Interim Patch Installer version 1.0.0.0.53
 Copyright (c) 2005 Oracle Corporation. All Rights Reserved..

 We recommend you refer to the OPatch documentation under
 OPatch/docs for usage reference. We also recommend using
 the latest OPatch version. For the latest OPatch version
 and other support related issues, please refer to document
 293369.1 which is viewable from metalink.oracle.com

 Oracle Home = /opt/oracle/product/9.2
 Location of Oracle Universal Installer components =
 /opt/oracle/product/9.2/oui
 Location of OraInstaller.jar = /opt/oracle/product/9.2/oui/jlib
 Oracle Universal Installer shared library =
 /opt/oracle/product/9.2/oui/lib/linux/liboraInstaller.so
 Location of Oracle Inventory Pointer = /etc/oraInst.loc
 Location of Oracle Inventory = /opt/oracle/product/9.2/inventory
 Path to Java = /opt/oracle/product/9.2/jre/1.4.2/bin/java
 Log file = /opt/oracle/product/9.2/.patch_storage/patch ID/*.log

 The patch directory area must be a number.

 ERROR: OPatch failed because of problems in patch area.

 Obrigada

 Cris

 - Original Message -
 From: ESTUDO
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Sent: Thursday, July 12, 2007 10:27 AM
 Subject: Re: [oracle_br] Opatch - o que fazer -Marcio

 Vixiii
 Marcio.. olha o que aconteceu:

 ch/docs for usage reference. We also recommend using
 the latest OPatch version. For the latest OPatch version
 and other support related issues, please refer to document
 293369.1 which is viewable from metalink.oracle.com

 Oracle Home = /opt/oracle/product/9.2
 Location of Oracle Universal Installer components =
 /opt/oracle/product/9.2/oui
 Location of OraInstaller.jar = /opt/oracle/product/9.2/oui/jlib
 Oracle Universal Installer shared library =
 /opt/oracle/product/9.2/oui/lib/linu
 x/liboraInstaller.so
 Location of Oracle Inventory Pointer = /etc/oraInst.loc
 Location of Oracle Inventory = /opt/oracle/product/9.2/inventory
 Path to Java = /opt/oracle/product/9.2/jre/1.4.2/bin/java
 Log file = /opt/oracle/product/9.2/.patch_storage/patch ID/*.log

 Creating log file
 /opt/oracle/product/9.2/.patch_storage/LsInventory__07-12-200
 7_10-22-00.log

 Result:

 Installed Patch List:
 =
 1) Patch 4560421 applied on Wed Oct 26 11:29:30 BRST 2005
 [ Base Bug(s): 3504220 4312525 3301573 3323435 3863021 4017526 4180561
 3518624 3382229 4049345 3591119 3329096 3703478 4383771 3663924 4567951
 3990826 3835964 3737955 3739819 3289786 3858398 4415230 3150750 3611471
 3187502 3253770 4316177 3371861 4405919 3356951 4386775 3390021 3320622
 2701372 3119415 4343714 3566420 2747350 3467364 3724548 4185276 3545539
 4199435 3653586 4392388 4193299 3890898 4457989 4051811 4078123 3785200
 3354470 3317309 4175162 3566511 3569503 3564337 2628067 4493075 3780672
 4365348 4367445 3557842 3949307 3963167 3789406 3889519 3485997 4003006
 3589588 3200136 3110547 3318204 3455402 2920562 3381218 3583215 4370067
 3910149 2455147 4523473 4509137 4126826 3315378 3398205 3944226 3029367
 3407944 3443747 3447383 3294293 4057729 2549574 3406977 3749490 3638695
 3984786 3414440 3262241 2690205 4167403 3473315 3346154 4085118 3816821
 3057951 4392256 2918138 3425298 3691672 3828166 3554954 3867193 2964692
 3194997 4560421 4530308 4292151 3275045 3832631 3811906 3808090 4333952
 2546446 3808093 4266635 3641963 3717619 3973636 4269869 3010227 4184031
 3562032 3635331 3664007 4019454 3827053 3560890 3537086 3455357 3635177
 3614289 4387084 3487338 3743946 3177769 3672985 ]

 será que instalou algo?

 bjs

 Cris
 - Original Message -
 From: Marcio Portes
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Sent: Wednesday, July 11, 2007 9:31 PM
 Subject: Re: [oracle_br] Opatch - o que fazer

 Talvez o opatch não esteja no seu $PATH. Por exemplo:

 [EMAIL PROTECTED] ~]$ opatch lsinventory
 -bash: opatch: command not found

 Como visto acima, o opatch não funcionou, mas abaixo:

 [EMAIL PROTECTED] ~]$ $ORACLE_HOME/OPatch/opatch lsinventory
 Invoking OPatch 10.2.0.3.0

 Oracle interim Patch Installer version 10.2.0.3.0
 Copyright (c) 2005, Oracle Corporation. All rights reserved..

 Oracle Home : /oracle/10g
 Central Inventory : /oracle/oraInventory
 from : /etc/oraInst.loc
 OPatch version : 10.2.0.3.0
 OUI version : 10.2.0.3.0
 OUI location : /oracle/10g/oui
 Log file location : /oracle/10g/cfgtoollogs/opatch/opatch2007-07-11_21-
 30-21PM.log

 Lsinventory Output file location :
 /oracle/10g/cfgtoollogs/opatch/lsinv

Re: [oracle_br] Opatch - o que fazer????

2007-07-11 Por tôpico Marcio Portes
:
 
 
  --
  Links do Yahoo! Grupos
 
  a.. Para visitar o site do seu grupo na web, acesse:
  http://br.groups.yahoo.com/group/oracle_br/
 
  b.. Para sair deste grupo, envie um e-mail para:
  [EMAIL PROTECTED]oracle_br-unsubscribe%40yahoogrupos.com.br
 oracle_br-unsubscribe%40yahoogrupos.com.br
 
  c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
 Serviço
  do Yahoo!.
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 --
 Oscar Nogueira Neto
 oscarnogueira[at]gmail[dot]com
 http://www.oscarnogueira.com - Tentando explicar o Oracle!

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

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Problema com query dentro de procedure - trava a sessao

2007-07-10 Por tôpico Marcio Portes
Talves se voce postar a query/codigo da procedure para grupo palpitar!!

On 7/10/07, lcscabral [EMAIL PROTECTED] wrote:

   Ola a todos

 Estou com um problema que me quebra a cabeça e nem imagino como
 começar a resolver!

 Tenho um select que roda quase instantaneamente quando executado
 sozinho. Esse mesmo select é usado dentro de uma procedure numa
 package, num cursor. Não é um select muito complexo, e a maior tabela
 envolvida não é tão grande (5 milhoes de linhas), as outras tem
 apenas algumas milhares de linhas.

 O problema é que, quando a execução da procedure chega nesse cursor,
 ela simplesmente pára, literalmente por horas (cheguei a esperar mais
 de 3 horas). Tenho que cancelar a execução da procedure. No
 Enterprise Manager eu consigo ver o tal select NÃO sendo executado na
 sessão, e o valor de CPU congela, não se mexe. Se eu comento a parte
 da procedure que usa o cursor, ela executa em 5 minutos.

 Parece que a sessão está esperando por algo, como um lock, mas não há
 locks em aguardo na sessão, nem imagino o que possa ser.

 Porém, quando essa mesma procedure roda, via job, as 7 da manhã, ela
 roda em 1h30 (incluindo o select com problema).

 Sei que isso é muito pouca informação, mas há alguma coisa que devo
 checar em primeiro lugar? Abaixo segue o Explain Plan (GAME_STATS é a
 tabela maior).

 Oracle EE 9.2.0.8.0

 Obrigado
 Luis

 SELECT STATEMENT, GOAL = ALL_ROWS Cost=465
 Cardinality=1 Bytes=90
 SORT AGGREGATE Cardinality=1 Bytes=18

 FILTER
 TABLE ACCESS FULL Object Object name=BONUS_STATS Cost=5
 Cardinality=1 Bytes=18
 SORT GROUP BY Cost=465 Cardinality=1
 Bytes=90
 TABLE ACCESS BY INDEX ROWID Object Object name=GAME_STATS
 Cost=445 Cardinality=1 Bytes=29
 NESTED LOOPS Cost=453 Cardinality=1
 Bytes=90
 HASH JOIN Cost=8 Cardinality=1 Bytes=61

 TABLE ACCESS FULL Object Object name=CAMPAIGN Cost=2
 Cardinality=31 Bytes=868
 TABLE ACCESS FULL Object Object name=STATISTICS Cost=5
 Cardinality=120 Bytes=3960
 INDEX RANGE SCAN Object Object name=IDX_GAME_UNIQUE
 Cost=305 Cardinality=2065

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] array PLSql

2007-07-10 Por tôpico Marcio Portes
Um exemplo!

ops$marcio:LX10G declare
  2  type array is table of varchar2(2000);
  3  t_dimensao array := array('DIARIO', 'SEMANAL', 'QUINZENAL',
'MENSAL', 'TRIMESTRAL');
  4  begin
  5  for i in 1 .. t_dimensao.count
  6  loop
  7  dbms_output.put_line ( i ||'-'|| t_dimensao(i) );
  8  end loop;
  9  end;
 10  /
1-DIARIO
2-SEMANAL
3-QUINZENAL
4-MENSAL
5-TRIMESTRAL

PL/SQL procedure successfully completed.

Mas obviamente há outros métodos...

On 7/10/07, Informática - Usina Moreno [EMAIL PROTECTED]
wrote:

   Srs bom dia

 Alguem já usou array em plsql? se sim, dá pra mandar o exemplo.

 desde já agradeço

 Marcos
  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Valor Bind Variabel

2007-07-04 Por tôpico Marcio Portes
Boa! E para setar o dbms_support

ops$marcio:LX10G connect / as sysdba
Connected.
sys:LX10G desc sys.dbms_support
ERROR:
ORA-04043: object sys.dbms_support does not exist

sys:LX10G @?/rdbms/admin/dbmssupp.sql

Package created.


Package body created.

sys:LX10G desc dbms_support
FUNCTION MYSID RETURNS NUMBER
FUNCTION PACKAGE_VERSION RETURNS VARCHAR2
PROCEDURE START_TRACE
 Argument Name  TypeIn/Out Default?
 -- --- -- 
 WAITS  BOOLEAN IN DEFAULT
 BINDS  BOOLEAN IN DEFAULT
PROCEDURE START_TRACE_IN_SESSION
 Argument Name  TypeIn/Out Default?
 -- --- -- 
 SIDNUMBER  IN
 SERIAL NUMBER  IN
 WAITS  BOOLEAN IN DEFAULT
 BINDS  BOOLEAN IN DEFAULT
PROCEDURE STOP_TRACE
PROCEDURE STOP_TRACE_IN_SESSION
 Argument Name  TypeIn/Out Default?
 -- --- -- 
 SIDNUMBER  IN
 SERIAL NUMBER  IN

sys:LX10G


On 7/4/07, Oscar Nogueira Neto [EMAIL PROTECTED] wrote:

   Boas,

 uma outra possibilidade é, se você estiver usando o pacote DBMS_SUPPORT
 para
 fazer o trace, passe o quarto parâmetro da procedure
 START_TRACE_IN_SESSION
 como TRUE.

 SQL exec dbms_support.start_trace_in_session(sid, serial#, true, true);

 Depois disso, como disse o Márcio, analise o trace cru, sem passá-lo pelo
 tkprof.

 Até!

 Em 03/07/07, Marcio Portes [EMAIL PROTECTED]portes.marcio%40gmail.com
 escreveu:

 
  Faça um trace com o evento 10046 e veja no arquivo raw os binds. Não
  execute
  o tkprof, é preciso ver o arquivo raw.
 
  ops$marcio:LX10G create table t ( x int );
 
  Table created.
 
  ops$marcio:LX10G
  ops$marcio:LX10G alter session set events '10046 trace name context
  forever, level 12';
 
  Session altered.
 
  ops$marcio:LX10G begin
  2 for i in 1 .. 10
  3 loop
  4 insert into t values ( i );
  5 end loop;
  6 end;
  7 /
 
  PL/SQL procedure successfully completed.
 
  ops$marcio:LX10G exit
 
  Identifique o número do parse do seu cursor.
  PARSING IN CURSOR #8 len=28 dep=1 uid=55 oct=2 lid=55
 tim=1155776832951654
  hv=1180080443 ad='402406d8'
  INSERT INTO T VALUES ( :B1 )
  END OF STMT
  PARSE
 #8:c=0,e=260,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=1155776832951644
 
  e veja os binds mais abaixo
 
  ...
  BINDS #8:
  kkscoacd
  Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=206001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=b7162640 bln=22 avl=02 flg=05
  value=1
  EXEC
 
 #8:c=5999,e=5928,p=0,cr=3,cu=22,mis=1,r=1,dep=1,og=4,tim=1155776832957679
  BINDS #8:
  kkscoacd
  Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=206001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=b7162640 bln=22 avl=02 flg=05
  value=2
  EXEC
 #8:c=0,e=146,p=0,cr=0,cu=1,mis=0,r=1,dep=1,og=4,tim=1155776832957922
  BINDS #8:
  kkscoacd
  Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=206001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=b7162640 bln=22 avl=02 flg=05
  value=3
  EXEC
 #8:c=0,e=117,p=0,cr=0,cu=1,mis=0,r=1,dep=1,og=4,tim=1155776832958090
  BINDS #8:
  kkscoacd
  Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=206001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=b7162640 bln=22 avl=02 flg=05
  value=4
  EXEC
  #8:c=999,e=130,p=0,cr=0,cu=1,mis=0,r=1,dep=1,og=4,tim=1155776832958269
 
  A linha com values representa o bind#0, ou seja, o primeiro bind, no meu
  caso o único.
  Outro exemplo que deixa mais claro é:
  ops$marcio:LX10G drop table t purge;
 
  Table dropped.
 
  ops$marcio:LX10G
  ops$marcio:LX10G create table t ( x char(1) );
 
  Table created.
 
  ops$marcio:LX10G
  ops$marcio:LX10G alter session set events '10046 trace name context
  forever, level 12';
 
  Session altered.
 
  ops$marcio:LX10G begin
  2 for i in ( select chr(ascii('A')+rownum-1) c
  3 from dual connect by level = 26 )
  4 loop
  5 insert into t values ( i.c );
  6 end loop;
  7 end;
  8 /
 
  PL/SQL procedure successfully completed.
 
  less /oracle/admin/lx10g/udump/lx10g_ora_7479.trc
  ...
  ...
  BINDS #2:
  kkscoacd
  Bind#0
  oacdty=01 mxl=32(01) mxlc=00 mal=00 scl=00 pre=00
  oacflg=13 fl2=206001 frm=01 csi=31 siz=32 off=0
  kxsbbbfp=b717be64 bln=32 avl=01 flg=09
  value=A
  EXEC
 
 #2:c=2000,e=2013,p=0,cr=3,cu=22,mis=1,r=1,dep=1,og=4,tim=1155778712032583
  BINDS #2:
  kkscoacd
  Bind#0
  oacdty=01 mxl=32(01) mxlc=00 mal=00 scl=00 pre=00
  oacflg=13 fl2=206001 frm=01 csi=31 siz=32 off=0
  kxsbbbfp=b717be44 bln=32 avl=01 flg=09
  value=B
  EXEC
 #2:c=0,e=145,p=0,cr=0

Re: [oracle_br] Valor Bind Variabel

2007-07-03 Por tôpico Marcio Portes
Faça um trace com o evento 10046 e veja no arquivo raw os binds. Não execute
o tkprof, é preciso ver o arquivo raw.

ops$marcio:LX10G create table t ( x int );

Table created.

ops$marcio:LX10G
ops$marcio:LX10G alter session set events '10046 trace name context
forever, level 12';

Session altered.

ops$marcio:LX10G begin
  2 for i in 1 .. 10
  3 loop
  4insert into t values ( i );
  5 end loop;
  6  end;
  7  /

PL/SQL procedure successfully completed.

ops$marcio:LX10G exit

Identifique o número do parse do seu cursor.
PARSING IN CURSOR #8 len=28 dep=1 uid=55 oct=2 lid=55 tim=1155776832951654
hv=1180080443 ad='402406d8'
INSERT INTO T VALUES ( :B1 )
END OF STMT
PARSE #8:c=0,e=260,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=1155776832951644

e veja os binds mais abaixo

...
BINDS #8:
kkscoacd
 Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=206001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=b7162640  bln=22  avl=02  flg=05
  value=1
EXEC
#8:c=5999,e=5928,p=0,cr=3,cu=22,mis=1,r=1,dep=1,og=4,tim=1155776832957679
BINDS #8:
kkscoacd
 Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=206001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=b7162640  bln=22  avl=02  flg=05
  value=2
EXEC #8:c=0,e=146,p=0,cr=0,cu=1,mis=0,r=1,dep=1,og=4,tim=1155776832957922
BINDS #8:
kkscoacd
 Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=206001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=b7162640  bln=22  avl=02  flg=05
  value=3
EXEC #8:c=0,e=117,p=0,cr=0,cu=1,mis=0,r=1,dep=1,og=4,tim=1155776832958090
BINDS #8:
kkscoacd
 Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=206001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=b7162640  bln=22  avl=02  flg=05
  value=4
EXEC #8:c=999,e=130,p=0,cr=0,cu=1,mis=0,r=1,dep=1,og=4,tim=1155776832958269

A linha com values representa o bind#0, ou seja, o primeiro bind, no meu
caso o único.
Outro exemplo que deixa mais claro é:
ops$marcio:LX10G drop table t purge;

Table dropped.

ops$marcio:LX10G
ops$marcio:LX10G create table t ( x char(1) );

Table created.

ops$marcio:LX10G
ops$marcio:LX10G alter session set events '10046 trace name context
forever, level 12';

Session altered.

ops$marcio:LX10G begin
  2 for i in ( select chr(ascii('A')+rownum-1) c
  3  from dual connect by level = 26 )
  4 loop
  5insert into t values ( i.c );
  6 end loop;
  7  end;
  8  /

PL/SQL procedure successfully completed.


less /oracle/admin/lx10g/udump/lx10g_ora_7479.trc
...
...
BINDS #2:
kkscoacd
 Bind#0
  oacdty=01 mxl=32(01) mxlc=00 mal=00 scl=00 pre=00
  oacflg=13 fl2=206001 frm=01 csi=31 siz=32 off=0
  kxsbbbfp=b717be64  bln=32  avl=01  flg=09
  value=A
EXEC
#2:c=2000,e=2013,p=0,cr=3,cu=22,mis=1,r=1,dep=1,og=4,tim=1155778712032583
BINDS #2:
kkscoacd
 Bind#0
  oacdty=01 mxl=32(01) mxlc=00 mal=00 scl=00 pre=00
  oacflg=13 fl2=206001 frm=01 csi=31 siz=32 off=0
  kxsbbbfp=b717be44  bln=32  avl=01  flg=09
  value=B
EXEC #2:c=0,e=145,p=0,cr=0,cu=1,mis=0,r=1,dep=1,og=4,tim=1155778712032820
BINDS #2:
kkscoacd
 Bind#0
  oacdty=01 mxl=32(01) mxlc=00 mal=00 scl=00 pre=00
  oacflg=13 fl2=206001 frm=01 csi=31 siz=32 off=0
  kxsbbbfp=b717be24  bln=32  avl=01  flg=09
  value=C
EXEC #2:c=0,e=131,p=0,cr=0,cu=1,mis=0,r=1,dep=1,og=4,tim=1155778712033009
BINDS #2:
kkscoacd
 Bind#0
  oacdty=01 mxl=32(01) mxlc=00 mal=00 scl=00 pre=00
  oacflg=13 fl2=206001 frm=01 csi=31 siz=32 off=0
  kxsbbbfp=b717bb74  bln=32  avl=01  flg=09
  value=D


On 7/3/07, wilsonteixeira2000 [EMAIL PROTECTED] wrote:

   Boa noite,

 Estamos executando um trace em um sistema e preciso saber o valor que
 está sendo passado para uma bind variable no trace ou se tiver alguma
 view do dicionario de dados onde eu possa obter este valor.

 obrigado.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Physical reads em Tabela Vazia

2007-06-29 Por tôpico Marcio Portes
HWM - se a tabela realmente está vazia, um truncate funciona como já
sugerido. Eu faria um

alter table TABELA move;

O move também reseta a HWM.

On 6/29/07, Felipe Daniel [EMAIL PROTECTED] wrote:

   Pessoal,

 Estou com um probleminha e ainda não faço ideia do que seja. Tenho uma
 tabela vazia e em um simples select count(*) from tabela o banco esta
 fazendo 43199 physical reads.
 Alguém tem alguma ideia do que possa ser isto?

 Oracle 9i 9.2.0.8
 Windows Server 2003 Enterprise Edition SP1

 Atenciosamente,
 ---
 Felipe Daniel O. Aragão
 GBarbosa Comercial Ltda.
 Analista de Banco de Dados
 OCP-Oracle Certified Professional
 ---

 __
 Novo Yahoo! Cadê? - Experimente uma nova busca.
 http://yahoo.com.br/oqueeuganhocomisso

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] select all_jobs

2007-06-29 Por tôpico Marcio Portes
all_jobs - voce ve os jobs que voce tem direito!
dba_jobs - voce ve todos os jobs
user_jobs - voce ve seus jobs.

On 6/29/07, Andre Campos [EMAIL PROTECTED] wrote:

   Boa tarde a todos,

 Tenho uma rotina que submete um job no banco, e a mesma estava dando
 problemas, ao tentar resolver o problema ocorrido, me deparei com uma
 situação estranha, agendei o job no banco e fiz um select na dba_jobs e o
 job estava lá, até nenhuma novidade, mais quando faço o select na ALL_JOBS
 não consigo visualizar o job agendado.

 Oracle 9.2.0.7

 Alguém sabe me dizer o que pode estar ocorrendo?

 Obrigado

 André Campos

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Passo a Passo para usar o directory do oracle

2007-06-06 Por tôpico Marcio Portes
http://mportes.blogspot.com/search?q=Movendo+Arquivos+Com+PL%2FSQL

On 6/6/07, Alexandre Rocha Placido [EMAIL PROTECTED] wrote:

   Alguém tem um exemplo já feito das packages usadas para gerar um arquivo
 de
 saída usando os diretórios do Oracle, similar ao uso com o utl_file_dir.

 O diretório no meu caso já está criado, o que estou querendo é o
 correspondente do abrir arquivo, gravar, fechar arquivo.

 Alexandre Rocha Placido

 Divisão de Tecnologia da Informação - Agrovale

 Fone: +55 74 3612-2900

 +55 87 8802-0474

 MSN [EMAIL PROTECTED] aplacido%40gmail.com

 Eis a voz do que clama: Preparai no deserto o caminho do Senhor;
 endireitai
 no ermo uma estrada para o nosso Deus. Todo vale será levantado, e será
 abatido todo monte e todo outeiro; e o terreno acidentado será nivelado, e
 o
 que é escabroso, aplanado. A glória do Senhor se revelará; e toda a carne
 juntamente a verá; pois a boca do Senhor o disse. Isaías 40:3-5

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Re: Group by

2007-06-05 Por tôpico Marcio Portes
Fabiano, as vezes parece intransigência ficar pedindo versão do banco, do
sistema operacional, etc... mas não! Na verdade ganha-se tempo quando quem
formula a resposta trabalha diretamente na versão da dúvida. É complicado,
pelo menos pra mim, a questão tempo! Dúvidas que chegam e não tem o mínimo
de condição de reprodução, não dá nem pra olhar. Mas... tá ai sua query em
9i.

ops$marcio:LX92 select * from v$version;

BANNER

Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
PL/SQL Release 9.2.0.8.0 - Production
CORE9.2.0.8.0   Production
TNS for Linux: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production

5 rows selected.

ops$marcio:LX92 select min(estaca), max(estaca), max(volume)
  2from (
  3  select estaca, volume,
  4   max(
  5  case
  6 when volume  lag_vol or lag_vol is null
  7   then rownum
  8 else null
  9  end
 10   ) over (order by estaca) bit
 11from (
 12  select estaca, volume,
 13 lag(volume) over ( order by estaca ) lag_vol
 14from t
 15 )
 16 )
 17   group by bit
 18  /

  MIN(ESTACA)   MAX(ESTACA)   MAX(VOLUME)
- - -
 1000  100540
 1006  101050
 1011  101540
 1020  102335

4 rows selected.





On 6/5/07, Fabiano Arndt [EMAIL PROTECTED] wrote:

   Bom dia Marcio,

 na verdade to usando o 9i, esqueci de avisar. Mas vou tentar decifrar
 a sql que vc me passou e vejo se consigo fazer algo parecido no 9i.

 valeu aí,
 abraço.

 Fabiano.

 Em 05/06/07, Marcio Portes [EMAIL PROTECTED]portes.marcio%40gmail.com
 escreveu:

 
  Como voce não menciona versão - essa solução ai abaixo vale somente para
  10g.
 
  ops$marcio:LX10G select * from t;
 
  ESTACA VOLUME
  - -
  1000 40
  1001 40
  1002 40
  1003 40
  1004 40
  1005 40
  1006 50
  1007 50
  1008 50
  1009 50
  1010 50
  1011 40
  1012 40
  1013 40
  1014 40
  1015 40
  1020 35
  1021 35
  1022 35
  1023 35
 
  20 rows selected.
 
  ops$marcio:LX10G
  ops$marcio:LX10G select min(estaca), max(estaca), max(volume)
  2 from (
  3 select estaca, volume,
  4 last_value(
  5 case
  6 when volume  lag_vol or lag_vol is null
  7 then rownum
  8 else null
  9 end
  10 ignore nulls ) over ( order by estaca ) bit
  11 from (
  12 select estaca, volume,
  13 lag(volume) over ( order by estaca ) lag_vol
  14 from t
  15 )
  16 )
  17 group by bit
  18 /
 
  MIN(ESTACA) MAX(ESTACA) MAX(VOLUME)
  - - -
  1000 1005 40
  1006 1010 50
  1011 1015 40
  1020 1023 35
 
  4 rows selected.
 
  On 6/4/07, Fabiano Arndt [EMAIL PROTECTED]fabianoallex%40gmail.com
 fabianoallex%40gmail.com
  wrote:
  
   olá Chiappa,
  
   esse e-mail que vc respondeu foi o e-mail que eu respondi a duvida do
   Marcio e escrevi errado ai mandei novamente outro e-mail.
  
   na verdade esse resultado
1000 a 1015 40
1006 a 1010 50
1020 a 1023 35
   é o que retorna quando uso o group by da maneira normal,
   como vc me sugeriu, o problema é que eu preciso agrupar de
   uma forma um pouco diferente, preciso agrupar quando todas
   as estacas estiverem em sequencia. se pular uma estaca
   já é outro grupo.
  
   o resultado que eu preciso seria isso
  
1000 a 1005 40 * aqui o volume é 40
1006 a 1010 50
1011 a 1015 40 * e aqui o volume tbm é 40
1020 a 1023 35
  
   a pessoa que olhar esses dados deve interpreta-los da
   seguinte maneira:
  
   todas as estacas que estão entre 1000 e 1005 possuem o volume igual a
 40
   todas as estacas que estão entre 1006 e 1010 possuem o volume igual a
 50
   todas as estacas que estão entre 1011 e 1015 possuem o volume igual a
 40
   e assim por diante.
  
   por isso, se eu agrupar pelo volume, só vou ter como resultado
   uma linha onde aparece o volume 40, com o min=1000 e
   max=1015, porém nem todos os volumes entre 1000 e 1015 são
   igual a 40. e é isso que tá me quebrando a cabeça. não to sabendo
   como agrupar isso.
  
   se alguém tiver uma idéia agradeço,
  
   valeu,
   abraço.
  
   Fabiano.
  
   Em 04/06/07, jlchiappa [EMAIL PROTECTED]jlchiappa%40yahoo.com.br
 jlchiappa%40yahoo.com.brjlchiappa%40yahoo.
  com.br
   escreveu:
  
   
   
   
   
   
   
pmfji, mas pelo que vejo aí ficou simplérrimo, do jeito que vc
 coloca
vc simplesmente quer agrupar pela coluna VOLUME e dentro de cada
grupo saber o ponto inicial e final, seria SELECT MIN(ESTACA), MAX
(ESTACA), VOLUME FROM tabela GROUP BY VOLUME;
   
se não for isso explica melhor...
   
[]s
   
Chiappa
   
--- Em oracle_br@yahoogrupos.com.br 
oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.broracle_br%40yahoog
  rupos.com.br,
   Fabiano Arndt
[EMAIL PROTECTED] escreveu

 Marcio

Re: [oracle_br] Erro Import

2007-06-04 Por tôpico Marcio Portes
Nesse caso voce precisa especificamente subir o dump com o mesmo client que
o export foi feito, caso contrário, pode até funcionar, mas será pura
casualidade. Há uma nota no metalink informando as compatibilidades dos
clients de import, mas a regra é simples. exp (9207) imp (9207), exp com
9208 import com 9208 - não importando a versão da base destino!

On 6/4/07, Vinicius Amorim [EMAIL PROTECTED] wrote:

 Desculpe invadir o topico iniciado pelo colega Phael.

 Mas eu estou com o mesmo problema e foi sim recentemente aplicado o
 patchset
 7.
 Existe alguma relacao entre eles?

 Em 29/05/07, Marcio Portes [EMAIL PROTECTED] escreveu:
 
  Voce fez algum upgrade recente? para o patchset 7 por exemplo??
 
 
  On 5/29/07, Phael [EMAIL PROTECTED] wrote:
  
 Boa tarde,
  
   Antes de recorrer a Oracle... deixa eu ver se alguém pode me ajudar!
  
   [EMAIL PROTECTED] imp system/xx fromuser=usuario1 touser=usuario2
   tables=tabela1,tabela2, tabela3 file=/home/admin20070528.dmp
  
   Import: Release 9.2.0.8.0 - Production on Tue May 29 15:51:33 2007
  
   Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
  
   IMP-00058: ORACLE error 3113 encountered
  
   ORA-03113: end-of-file on communication channelUsername:
  
   Obs:
  
   Oracle9i Enterprise Edition Release 9.2.0.8.0 – Production
  
   Red Hat AS 3.0 32bits
  
   O arquivo DMP tem 21Gb.
  
   Format ext3.
  
   O export funciona sem problemas... e o import tbm funcionava e agora
  esta
   dando esse erro(só o import)!!
  
   Alguém sabe o que pode ser?
  
   Raphael
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
 
 
 
  --
  Marcio Portes
  Material Tecnico em Portugues - http://mportes.blogspot.com
  Practical Learning Oracle -
  http://mportes.blogspot.com/2006/02/practical-learning-oracle.html
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
  Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
  Procedure » Scripts » Tutoriais acesse:
  http://www.oraclebr.com.br/codigo/ListaCodigo.php
 
 
 --
  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/
 
 
 --
  O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
  http://www.oraclebr.com.br/
 
 
 
  Links do Yahoo! Grupos
 
 
 


 --
 Vinícius Amorim Teixeira

 9965 90 18

 Email - [EMAIL PROTECTED]
 MSN - [EMAIL PROTECTED]


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



 Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais acesse:
 http://www.oraclebr.com.br/codigo/ListaCodigo.php

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

 --
 O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
 http://www.oraclebr.com.br/

 
 Links do Yahoo! Grupos





-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais acesse: http://www.oraclebr.com.br/codigo/ListaCodigo.php 
--
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/ 
--
O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/  

  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que

Re: [oracle_br] Re: Group by

2007-06-04 Por tôpico Marcio Portes
Como voce não menciona versão - essa solução ai abaixo vale somente para
10g.

ops$marcio:LX10G select * from t;

   ESTACAVOLUME
- -
 100040
 100140
 100240
 100340
 100440
 100540
 100650
 100750
 100850
 100950
 101050
 101140
 101240
 101340
 101440
 101540
 102035
 102135
 102235
 102335

20 rows selected.

ops$marcio:LX10G
ops$marcio:LX10G select min(estaca), max(estaca), max(volume)
  2from (
  3  select estaca, volume,
  4 last_value(
  5case
  6   when volume  lag_vol or lag_vol is null
  7   then rownum
  8   else null
  9end
 10 ignore nulls ) over ( order by estaca ) bit
 11from (
 12  select estaca, volume,
 13 lag(volume) over ( order by estaca ) lag_vol
 14from t
 15 )
 16 )
 17   group by bit
 18  /

  MIN(ESTACA)   MAX(ESTACA)   MAX(VOLUME)
- - -
 1000  100540
 1006  101050
 1011  101540
 1020  102335

4 rows selected.



On 6/4/07, Fabiano Arndt [EMAIL PROTECTED] wrote:

   olá Chiappa,

 esse e-mail que vc respondeu foi o e-mail que eu respondi a duvida do
 Marcio e escrevi errado ai mandei novamente outro e-mail.

 na verdade esse resultado
  1000 a 1015 40
  1006 a 1010 50
  1020 a 1023 35
 é o que retorna quando uso o group by da maneira normal,
 como vc me sugeriu, o problema é que eu preciso agrupar de
 uma forma um pouco diferente, preciso agrupar quando todas
 as estacas estiverem em sequencia. se pular uma estaca
 já é outro grupo.

 o resultado que eu preciso seria isso

  1000 a 1005 40 * aqui o volume é 40
  1006 a 1010 50
  1011 a 1015 40 * e aqui o volume tbm é 40
  1020 a 1023 35

 a pessoa que olhar esses dados deve interpreta-los da
 seguinte maneira:

 todas as estacas que estão entre 1000 e 1005 possuem o volume igual a 40
 todas as estacas que estão entre 1006 e 1010 possuem o volume igual a 50
 todas as estacas que estão entre 1011 e 1015 possuem o volume igual a 40
 e assim por diante.

 por isso, se eu agrupar pelo volume, só vou ter como resultado
 uma linha onde aparece o volume 40, com o min=1000 e
 max=1015, porém nem todos os volumes entre 1000 e 1015 são
 igual a 40. e é isso que tá me quebrando a cabeça. não to sabendo
 como agrupar isso.

 se alguém tiver uma idéia agradeço,

 valeu,
 abraço.

 Fabiano.

 Em 04/06/07, jlchiappa [EMAIL PROTECTED] jlchiappa%40yahoo.com.br
 escreveu:

 
 
 
 
 
 
  pmfji, mas pelo que vejo aí ficou simplérrimo, do jeito que vc coloca
  vc simplesmente quer agrupar pela coluna VOLUME e dentro de cada
  grupo saber o ponto inicial e final, seria SELECT MIN(ESTACA), MAX
  (ESTACA), VOLUME FROM tabela GROUP BY VOLUME;
 
  se não for isso explica melhor...
 
  []s
 
  Chiappa
 
  --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Fabiano Arndt
  [EMAIL PROTECTED] escreveu
  
   Marcio,
  
   foi erro meu na hora de escrever, esse valor deve sair junto no
  resultado,
  
   o resultado correto seria
  
   1000 a 1015 40
   1006 a 1010 50
   1020 a 1023 35
  
   valeu pelo observação.
  
  
   Em 01/06/07, Marcio Portes [EMAIL PROTECTED] escreveu:
   
E o que fazemos com
--
1000 40
   
Não vi voce mencionar isso na sua explicação...
   
On 6/1/07, Fabiano Arndt [EMAIL PROTECTED]fabianoallex%
  40gmail.com
 
wrote:

 Olá pessoal,

 tenho uma tabela que tem uma coluna chamada estaca e outra
  chamada
volume,

 cada estaca tem um volume, as estacas são representadas
  sequencialmente.

 normalmente várias estacas consecutivas tem o mesmo volume,
  como é
 mostrado abaixo:

 estaca volume
 1000 40
 1001 40
 1002 40
 1003 40
 1004 40
 1005 40
 1006 50
 1007 50
 1008 50
 1009 50
 1010 50
 1011 40
 1012 40
 1013 40
 1014 40
 1015 40
 1020 35
 1021 35
 1022 35
 1023 35

 preciso fazer uma sql que me retorne os dados agrupados da
  maneira
abaixo:

 1001 a 1005 40
 1006 a 1010 50
 1011 a 1015 40
 1020 a 1023 35

 os dados acima dizem o seguinte:

 da estaca 1001 a 1005 todas possuem 40m3 de volume
 da estaca 1006 a 1010 todas possuem 50m3 de volume
 da estaca 1001 a 1015 todas possuem 40m3 de volume (aqui que é o
problema)
 da estaca 1020 a 1023 todas possuem 35m3 de volume

 porém to com dificuldades de fazer uma sql que

Re: [oracle_br] Group by

2007-06-01 Por tôpico Marcio Portes
E o que fazemos com
--
1000  40

Não vi voce mencionar isso na sua explicação...


On 6/1/07, Fabiano Arndt [EMAIL PROTECTED] wrote:

   Olá pessoal,

 tenho uma tabela que tem uma coluna chamada estaca e outra chamada volume,

 cada estaca tem um volume, as estacas são representadas sequencialmente.

 normalmente várias estacas consecutivas tem o mesmo volume, como é
 mostrado abaixo:

 estaca volume
 1000 40
 1001 40
 1002 40
 1003 40
 1004 40
 1005 40
 1006 50
 1007 50
 1008 50
 1009 50
 1010 50
 1011 40
 1012 40
 1013 40
 1014 40
 1015 40
 1020 35
 1021 35
 1022 35
 1023 35

 preciso fazer uma sql que me retorne os dados agrupados da maneira abaixo:

 1001 a 1005 40
 1006 a 1010 50
 1011 a 1015 40
 1020 a 1023 35

 os dados acima dizem o seguinte:

 da estaca 1001 a 1005 todas possuem 40m3 de volume
 da estaca 1006 a 1010 todas possuem 50m3 de volume
 da estaca 1001 a 1015 todas possuem 40m3 de volume (aqui que é o problema)
 da estaca 1020 a 1023 todas possuem 35m3 de volume

 porém to com dificuldades de fazer uma sql que me retorne os dados dessa
 forma.

 tentei usando o min e o max para agrupar os dados, mas a sql agrupou
 os dados com volume igual numa mesma linha, mesmo não estando na mesma
 sequencia

 ou seja, ficou assim

 1001 a 1015 40
 1006 a 1010 50
 1020 a 1023 35

 e o esperado era como mostrei anteriormente.

 se alguém tiver uma idéia de como fazer isso eu agradeceria.

 valeu,
 abraço
  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] APEX (HTMLDB)

2007-06-01 Por tôpico Marcio Portes
Não entendi nada de sua pergunta, porém... já fiz muitas coisas em apex com
muito sucesso!
abraços,

On 6/1/07, Consulting 2001 Br [EMAIL PROTECTED] wrote:

   Bom dia Pessoal,

 Estou começando a olhar o APEX e achei uma alternativa
 interessante para o Java e Forms.

 Gostaria de trocar algumas informações a respeito do
 produto, o que vcs acham.

 Na documentação que consegui, o APEX é uma série de
 tabelas (215 se não estou enganado) e quase 30
 linhas de código PL/SQL... Assim sendo, de repente
 pode-se pegar algumas páginas html já prontas e
 transformá-las para APEX, gravando nas tabelas
 corretas... Alguém, por acaso, sabe onde se encontra
 (e se existe) alguma coisa a respeito disso?

 Ricardo

 __
 Luggage? GPS? Comic books?
 Check out fitting gifts for grads at Yahoo! Search
 http://search.yahoo.com/search?fr=oni_on_mailp=graduation+giftscs=bz
  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] TABELA DE NOME COMPOSTO

2007-05-31 Por tôpico Marcio Portes
ops$marcio:LX10G create table nome tabela 02-04_1 ( x int );

Table created.

ops$marcio:LX10G insert into nome tabela 02-04_1 select 1 from dual;

1 row created.

ops$marcio:LX10G select * from nome tabela 02-04_1;

X
-
1

1 row selected.

ops$marcio:LX10G drop table nome tabela 02-04_1 purge;

Table dropped.



On 5/30/07, Vinicius Trintin [EMAIL PROTECTED] wrote:

   tenho uma tabela de nome composto! ...
 tb achei que nao tinha como fazer, porem eu tenho uma aqui
 o formatdo dela e o seguinte
 nome tabela 02-04_1
 examente nesse formato... 2 nome e uma 'data' seguida de ifem e
 underline...
 quem souber como dou o select numa tabela dessa
 oracle 9.i
 pl/sql developer sao as ferramentas usadas

 __
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Erro Import

2007-05-30 Por tôpico Marcio Portes
o export foi feito com que versão do exp? Tive problema com end-of-channel
tentando subir um dump feito no 9i com client do 10g.

On 5/30/07, Phael [EMAIL PROTECTED] wrote:

   Marcio,

 Não fiz update!

 Vou dar um shutdown/startup no banco. Talvez possa ser algum
 processo perdido.

 Vlw.
 Raphael

 -Mensagem original-
 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 Marcio Portes
 Enviada em: terça-feira, 29 de maio de 2007 21:04
 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Assunto: Re: [oracle_br] Erro Import

 Voce fez algum upgrade recente? para o patchset 7 por exemplo??

 On 5/29/07, Phael [EMAIL PROTECTED] raphael%40usj.com.br wrote:
 
  Boa tarde,
 
  Antes de recorrer a Oracle... deixa eu ver se alguém pode me ajudar!
 
  [EMAIL PROTECTED] imp system/xx fromuser=usuario1 touser=usuario2
  tables=tabela1,tabela2, tabela3 file=/home/admin20070528.dmp
 
  Import: Release 9.2.0.8.0 - Production on Tue May 29 15:51:33 2007
 
  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
 
  IMP-00058: ORACLE error 3113 encountered
 
  ORA-03113: end-of-file on communication channelUsername:
 
  Obs:
 
  Oracle9i Enterprise Edition Release 9.2.0.8.0 – Production
 
  Red Hat AS 3.0 32bits
 
  O arquivo DMP tem 21Gb.
 
  Format ext3.
 
  O export funciona sem problemas... e o import tbm funcionava e agora
 esta
  dando esse erro(só o import)!!
 
  Alguém sabe o que pode ser?
 
  Raphael
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 --
 Marcio Portes
 Material Tecnico em Portugues - http://mportes.blogspot.com
 Practical Learning Oracle -
 http://mportes.blogspot.com/2006/02/practical-learning-oracle.html

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

 Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
 Procedure
 » Scripts » Tutoriais acesse:
 http://www.oraclebr.com.br/codigo/ListaCodigo.php
 --
 --
 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/
 --
 --
 O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
 http://www.oraclebr.com.br/
 --
 
 Links do Yahoo! Grupos

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais acesse: http://www.oraclebr.com.br/codigo/ListaCodigo.php 
--
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/ 
--
O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/  

  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 


Re: [oracle_br] Avanço de linhas

2007-05-30 Por tôpico Marcio Portes
Exemplo... mande um exemplo do que necessita.

On 5/30/07, Emerson Sanches [EMAIL PROTECTED] wrote:

   Bom dia pessoal da lista, gostaria de saber se com o resultado de uma
 select seria possível avançar por exemplo, 4 linhas para cima e depois
 pegar as próximas 12 linhas. Espero ter sido claro. Obrigado pela ajuda

 Emerson Sanches
 Analista Programador

 [EMAIL PROTECTED] emerson_sanches%40yahoo.com.br
 [EMAIL PROTECTED] emerson%40suprens.com.br

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Problema com Function

2007-05-30 Por tôpico Marcio Portes
Eu tenho!!
NUNCA USE EXCETION WHEN OTHERS Voce está mascarando seu erro!!!
Tire isso e rode a function para saber qual erro REALMENTE acontece!
E, se tiver um tempinho, leia
http://mportes.blogspot.com/2005/07/boas-prticas-de-programao-when-others.html


On 5/30/07, Wilson Ribeiro [EMAIL PROTECTED] wrote:

   Senhores da lista, boa tarde.

 me deparei hoje com um problema, que nunca tinha visto.

 criei uma function, e nela passo alguns parametros, dentro da function
 defini um cursor e um select para o mesmo, acontece o seguinte, qdo eu
 chamo
 essa function, passando os parametros normais, o select só retorna null,
 qdo
 fixo os dados no select, ele encontra e o result set vem com dados.
 abaixo está o código da function:

 create or replace function fn_valor_ap(v_num_ap in ap_valores.num_ap%TYPE,
 v_cod_empresa in ap_valores.cod_empresa%TYPE,
 v_valor_ap in ap_valores.valor%TYPE)

 return number is
 result number;
 oper varchar2(1);

 Valor Number;
 Codigo Number;

 cursor cur1 is
 select ap_valores.valor, ap_valores.cod_tip_val
 from ap_valores
 where ap_valores.cod_empresa = v_cod_empresa --// aqui se fica '01' ele
 acha
 dados
 and ap_valores.num_ap = v_num_ap --// aqui se fica 15846 ele acha dados
 and ap_valores.ies_versao_atual = 'S';
 begin
 result := v_valor_ap;

 open cur1;

 loop
 fetch cur1 into valor, codigo;

 exit when cur1%notFound;

 select ies_alt_val_pag
 into oper
 from tipo_valor
 where tipo_valor.cod_tip_val = codigo
 and tipo_valor.cod_empresa = v_cod_empresa;

 if oper = '+' then
 result := result + valor;
 else
 result := result - valor;
 end if;
 end loop;

 return(result);
 EXCEPTION
 WHEN OTHERS THEN
 RETURN(NULL);
 end fn_valor_ap;

 Alguém teria idéia do que se passa?, obrigado por qquer ajuda.

 - - - - - - - - - - -
 [ ]'s

 Wilson Ribeiro
 [EMAIL PROTECTED] cpd%40gmengenharia.com.br

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Ajuda

2007-05-30 Por tôpico Marcio Portes
Um exemplo seria:
http://mportes.blogspot.com/2005/12/retornando-ref-cursor.html

On 5/30/07, Márcio Vilariño [EMAIL PROTECTED] wrote:

   Caros,

 Por favor me ajudem. Estou precisando criar uma procedure ou package que
 receber um determinado parametro e retorne um select.
 Qual a melhor opção? Como eu faço?

 Desculpe pela pergunta é que estou iniciando.

 Obrigado,
 Marcio

 __
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Erro Import

2007-05-29 Por tôpico Marcio Portes
Voce fez algum upgrade recente? para o patchset 7 por exemplo??


On 5/29/07, Phael [EMAIL PROTECTED] wrote:

   Boa tarde,

 Antes de recorrer a Oracle... deixa eu ver se alguém pode me ajudar!

 [EMAIL PROTECTED] imp system/xx fromuser=usuario1 touser=usuario2
 tables=tabela1,tabela2, tabela3 file=/home/admin20070528.dmp

 Import: Release 9.2.0.8.0 - Production on Tue May 29 15:51:33 2007

 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

 IMP-00058: ORACLE error 3113 encountered

 ORA-03113: end-of-file on communication channelUsername:

 Obs:

 Oracle9i Enterprise Edition Release 9.2.0.8.0 – Production

 Red Hat AS 3.0 32bits

 O arquivo DMP tem 21Gb.

 Format ext3.

 O export funciona sem problemas... e o import tbm funcionava e agora esta
 dando esse erro(só o import)!!

 Alguém sabe o que pode ser?

 Raphael

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais acesse: http://www.oraclebr.com.br/codigo/ListaCodigo.php 
--
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/ 
--
O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/  

  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 


Re: [oracle_br] dbms_scheduler.

2007-05-24 Por tôpico Marcio Portes
Um exemplo.
http://mportes.blogspot.com/search?q=dbms_scheduler

On 5/24/07, José Aristides [EMAIL PROTECTED] wrote:


 Boa Tarde !!!

 Tenho um script (inicio.sh) para gerar backup que quando executo
 manualmente sql@inicio.sh no prompt do sqlplus funciona normalmente.
 Assim, resolvi criar o job (abaixo) porém, ao executar pelo exec
 dbms_scheduler.run_job('BACKUP') exibe o seguinte erro:

 *ERRO na linha 1:ORA-27475: SYS.BACKUP deve ser um jobORA-06512: em 
 SYS.DBMS_ISCHED, line 150ORA-06512: em SYS.DBMS_SCHEDULER, line
 441ORA-06512: em line 1


 BEGIN dbms_scheduler.create_job( job_name = 'BACKUP', job_type =
 'EXECUTABLE', job_action = '/home/oracle/backuporacle/gerar/inicio.sh',
 start_date = sysdate, repeat_interval = 'FREQ=MINUTELY;INTERVAL=2',
 enabled = TRUE, comments = 'Demo for doing backup');END;/


 obrigado,

 Aristides
 __
 Procure em qualquer página Web com protecção eficaz. Obtenha já o Windows
 Live Toolbar GRATUITO!
 http://www.toolbar.live.com

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Estou tendo problema no Import

2007-05-20 Por tôpico Marcio Portes
Fiz um exemplo: está no linux, mas no final é mesma coisa.
O usuário que eu exportei full o banco foi ops$marcio (DBA).

[EMAIL PROTECTED] ~]$ ls -l backup.dmp
-rw-r--r--  1 marcio dba 131252224 May 20 18:58 backup.dmp
[EMAIL PROTECTED] ~]$ plus

SQL*Plus: Release 9.2.0.8.0 - Production on Sun May 20 18:58:54 2007

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production

ops$marcio:LX92 create user teste identified by teste;

User created.

ops$marcio:LX92 grant connect, resource to teste;

Grant succeeded.

ops$marcio:LX92 revoke unlimited tablespace from teste;

Revoke succeeded.

ops$marcio:LX92 alter user teste quota unlimited on users;

User altered.
ops$marcio:LX92 alter user teste default tablespace users;

User altered.

ops$marcio:LX92 exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
[EMAIL PROTECTED] ~]$ imp / file=backup.dmp fromuser=hr touser=teste
tables=regions

Import: Release 9.2.0.8.0 - Production on Sun May 20 19:02:42 2007

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to: Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production

Export file created by EXPORT:V09.02.00 via conventional path
import done in US7ASCII character set and AL16UTF16 NCHAR character set
import server uses WE8ISO8859P1 character set (possible charset conversion)
. importing HR's objects into TESTE
. . importing table  REGIONS  4 rows imported
Import terminated successfully without warnings.
[EMAIL PROTECTED] ~]$

E por ai vai, voce poderia colocar mais tabelas no parametro tables=(tab1,
tab2, ...)
Agora pelo seu erro, parece que o backup.dmp não existe. Veja:

[EMAIL PROTECTED] ~]$ imp / file=nao_existe.dmp fromuser=hr touser=teste
tables=regions

Import: Release 9.2.0.8.0 - Production on Sun May 20 19:05:48 2007

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to: Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production

IMP-2: failed to open nao_existe.dmp for read




On 5/20/07, Alessandro Damo [EMAIL PROTECTED] wrote:

   Boa tarde pessoal.

 Fiz um exp full do banco com nome de backup.dmp, apos fazer a
 exportacao eu criei um usuario de nome teste, agora estou tentando
 fazer um import de algumas tables do usuario HR para ele e nao
 consigo.

 Já utilizei o imp help=y para pegar informacao, mas sempre que faço a
 imp a msn IMP-2: falha ao abrir backup.dmp para leitura.

 Utilizo DOS, onde estou errando? alguem poderia me ajudar ?

 Obrigado

 Alessando.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Exportar campo BLOB

2007-05-11 Por tôpico Marcio Portes
Poderia postar um exemplo completo para que possamos reproduzir? Olhando
somente os logs, o que posso dizer é que sua tabela tem UMA linha.

On 5/10/07, Sérgio Lopes de Aguiar [EMAIL PROTECTED] wrote:

   Ola Marcio as tablespaces são iguais sim.

 No entanto note que o exp diz que Exportou somente uma linha e neste cado
 existem várias linhas.

 Consegues ver algum problema, mais alguma dica ?

 C:\Exp user/[EMAIL PROTECTED] file=arquivo.dmp log=arquivo.log tables=TABELA

 Export: Release 9.2.0.1.0 - Production on Qui Mai 10 17:09:09 2007

 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

 Conectado a: Oracle9i Release 9.2.0.7.0 - Production

 JServer Release 9.2.0.7.0 - Production

 ExportaþÒo executada no conjunto de caracteres de WE8MSWIN1252 e no
 conjunto de

 caracteres de AL16UTF16 NCHAR

 co servidor usa WE8ISO8859P1 conjunto de caracteres (conversÒo de conjunto
 de ca

 racteres possÝvel)

 Sobre exportar tabelas especificadas ... via Caminho Convencional ...

 . . exportando tabela TABELA 1 linhas
 exportadas

 EXP-00091: Exportando estatÝsticas questionßveis.

 ExportaþÒo encerrada com Ûxito, sem advertÛncias.

 Sérgio Lopes

 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 Marcio Portes
 Enviada em: domingo, 6 de maio de 2007 00:12
 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Assunto: Re: [oracle_br] Exportar campo BLOB

 Se as tablespaces forem idênticas, ele faz o import normalmente, caso
 contrário, voce precisa criar a tabela na mão (copiando a DDL do erro que
 for apresentado no import sem a tablespace) e importar novamente, somente
 a
 tabela com o BLOB com a opção ignore=y

 On 5/4/07, Sérgio Lopes de Aguiar [EMAIL 
 PROTECTED]sergio%40liderancaserv.com.br
 mailto:sergio% sergio%2540liderancaserv.com.br  wrote:
 
  Pessoal, alguém pode me dar uma dica de como exportar campos do tipo
  BLOB ?
  Eu possuo uma tabela com uma coluna BLOB e essa tabela não extra no
  EXPORT.
  Alguma dica ?
 
  Versão do Oracle 9.2.0.7.
 
  Sérgio Lopes
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 --
 Marcio Portes
 Material Tecnico em Portugues - http://mportes.blogspot.com
 Practical Learning Oracle -
 http://mportes.blogspot.com/2006/02/practical-learning-oracle.html

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

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Obter a media de dois campos

2007-05-11 Por tôpico Marcio Portes
SQL select trunc(dt) dias,
  2 to_char(trunc(sysdate) + mod(dt, trunc(dt)),'hh24:mi') horas
  3from (
  4  select sysdate - trunc(sysdate-1) dt
  5from dual
  6  )
  7  /

 DIAS HORAS
- -
1 10:53

1 row selected.


O que fiz acima foi: subtrair uma data de outra (4), ou seja, agora
(sysdate) menos ontem (sysdate-1) a meia-noite (trunc()), portanto o
resultado seria:

SQL select sysdate - trunc(sysdate-1) dt from dual;

   DT
-
1,45509259259

1 row selected.

A parte inteira são os dias e o fracionado, a fração do dia. Nesta fração
estão compreendidos horas, minutos e segundos, basta voce arranjar da
maneira que quiser. Então, peguei a parte inteira trunc(dt) e mostrei como
dias.

SQL select trunc(dt)
  2from (
  3  select sysdate - trunc(sysdate-1) dt from dual
  4  )
  5  /

TRUNC(DT)
-
1

1 row selected.

E a parte fracionada - mod(dt, trunc(dt) - resto da divisão do resultado
dt pelo inteiro trunc(dt) vai me sobrar exatamente a parte decimal.

SQL select mod(dt, trunc(dt))
  2from (
  3  select sysdate - trunc(sysdate-1) dt from dual
  4  );

MOD(DT,TRUNC(DT))
-
,460752314815

1 row selected.

(Só lembrando que o resultado está mudando porque estou fazendo as queries
enquanto respondo).
Daí eu somei essa parte decimal a zero hora de qualquer dia, exemplo hoje -
trunc(sysdate) + mod(dt, trunc(dt)).

SQL select trunc(sysdate) + mod(dt, trunc(dt))
  2from
  3  ( select sysdate - trunc(sysdate-1) dt from dual );

TRUNC(SYSDATE)+MOD(
---
11/05/2007 11:06:01

1 row selected.

Finalmente, mostrei como hora:minuto - to_char(trunc(sysdate) + mod(dt,
trunc(dt)), 'hh24:mi'). Como demonstrado acima.


On 5/11/07, Carlos Eduardo Goncalves [EMAIL PROTECTED] wrote:

 Marcio,

Em Horas e Dias.

 Att

 *Marcio Portes  [EMAIL PROTECTED]* escreveu:

   Diferença em que unidade? Dias? Horas? Minutos? Segundos???

 On 5/10/07, cegoncalvesvr  [EMAIL PROTECTED]cegoncalvesvr%40yahoo.com.br
 wrote:
 
  Amigos,
 
  Preciso obter o valor entre dois campos do tipo date
 
  Ex:
  to_char(p.hr_ped_lab, 'hh24:mi') - to_char(i.hr_laudo, 'hh24:mi')
  Preciso saber a diferença entre esses 02 campos.
  o select acima ta com erro, não roda.
 
  Alguem pode me ajudar?
 
  Abraços.
 
 
 

 --
 Marcio Portes
 Material Tecnico em Portugues - http://mportes.blogspot.com
 Practical Learning Oracle -
 http://mportes.blogspot.com/2006/02/practical-learning-oracle.html

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

 


 __
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Obter a media de dois campos

2007-05-10 Por tôpico Marcio Portes
Diferença em que unidade? Dias? Horas? Minutos? Segundos???

On 5/10/07, cegoncalvesvr [EMAIL PROTECTED] wrote:

   Amigos,

 Preciso obter o valor entre dois campos do tipo date

 Ex:
 to_char(p.hr_ped_lab, 'hh24:mi') - to_char(i.hr_laudo, 'hh24:mi')
 Preciso saber a diferença entre esses 02 campos.
 o select acima ta com erro, não roda.

 Alguem pode me ajudar?

 Abraços.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Referenciar Tabela

2007-05-09 Por tôpico Marcio Portes
create or replace package body pkg_nome

procedure 
begin
  ...
  select ... into ... from [EMAIL PROTECTED] where...
  ...
end;
...
end;
/


On 5/9/07, Alex Ferreira [EMAIL PROTECTED] wrote:

   Olá Pessoal,

 Tenho uma PKG_NOME e uma tabela X que usamos em um DBLINK.
 Como posso saber referenciar a PKG com a tabela X?

 Valeu

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] ESPACOS NO FINAL DA LINHA

2007-05-08 Por tôpico Marcio Portes
Poderia fazer um teste?

SELECT 'I', RPAD(u.tund_cnpj,18,' '), length(RPAD(u.tund_cnpj,18,' '))
  FROM tund_unidade u;



On 5/8/07, janiopimentel [EMAIL PROTECTED] wrote:

   Srs., boa tarde!

 Estou com uma dificuldade ao gerar uns arquivos txt usando o SQL*PLUS.
 Meu script gera quase tudo certinho, exceto no final da linha que eu
 peco para deixar alguns espacos em branco e o mesmo nao deixa. Veja o
 script que estou usando (no linux):

 DATA=`date +%Y%m%d%H%M%S`
 export TNS_ADMIN=/www/funcoes sqlplus -S appuser/[EMAIL PROTECTED]  EOF
  /www/genexis/txt/produto$DATA.txt

 SET COLSEP '';

 -- REGISTRO HEADER
 SELECT
 'H', -- tipo do registro
 'CADPROD ', -- nome do arquivo
 TO_CHAR(SYSDATE,'MMDD') -- data de criacao do arquivo
 FROM
 DUAL;

 -- REGISTRO IDENTIFICADOR
 SELECT
 'I', -- tipo do registro
 RPAD(u.tund_cnpj,18,' ') -- AQUI ELE NAO PREENCHE O RESTANTE COM OS
 4 ESPACOS -- cnpj do parceiro
 FROM
 tund_unidade u;
 QUIT;
 EOF

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Re: ESPACOS NO FINAL DA LINHA

2007-05-08 Por tôpico Marcio Portes
O problema do trimspool off é que ele vai até o tamanho da linesize do
sqlplus.
Mas poderíamos explorar mais o script, vejamos:

[EMAIL PROTECTED] scripts]$ cat test.sh
sqlplus -s / EOS
set feedback off
set head off
spool .tmp
select rpad(username, 30,' ') ||'#' from all_users where rownum = 10;
spool off
EOS

cat .tmp | sed 's/#//'  t.txt
rm .tmp

Um script gerando um spool .tmp com um caracter qualquer # para marcar o
final, depois usamos o sed para limpar e manter os espaços. Mas simples,
IMHO.

[EMAIL PROTECTED] scripts]$ ./test.sh

FLOWS_03  #
RAFA  #
SCH_DEMO  #
SCH_PAY   #
FLOWS_020200  #
APEX_PUBLIC_USER  #
FLOWS_FILES   #
UTIL  #
OPS$MARCIO#
SCOTT #

[EMAIL PROTECTED] scripts]$ cat t.txt

FLOWS_03
RAFA
SCH_DEMO
SCH_PAY
FLOWS_020200
APEX_PUBLIC_USER
FLOWS_FILES
UTIL
OPS$MARCIO
SCOTT


Como demonstrado, cada linha tem exatamente 30 espaços.


On 5/8/07, Luis Fernando Cerri [EMAIL PROTECTED] wrote:

   Experimente colocar um set trimspool off no início do seu script

 Se isso não resolver, creio que só via utl_file mesmo.

 []s
 Luis

 Em 08/05/07, janiopimentel [EMAIL PROTECTED]janiopimentel%40yahoo.com.br
 escreveu:
 
  Marcio, boa noite!
 
  Veja o resultado:
  I02307303000187 18
 
  O estranho é que ele coloca os quatro espaços que estão faltando se
  colocar algo depois do CNPJ. Veja exemplo:
 
  ---SCRIPT:
  SET COLSEP '';
  SELECT
  'I',
  RPAD(u.tund_cnpj,18,' ') || '1'
  FROM tund_unidade u;
 
  ---RESULTADO:
  I02307303000187 1
 
  Sds.,
  Jânio
 
  --- Em oracle_br@yahoogrupos.com.br 
  oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.br,

  Marcio Portes
  [EMAIL PROTECTED] escreveu
  
   Poderia fazer um teste?
  
   SELECT 'I', RPAD(u.tund_cnpj,18,' '), length(RPAD
  (u.tund_cnpj,18,' '))
   FROM tund_unidade u;
  
  
  
   On 5/8/07, janiopimentel [EMAIL PROTECTED] wrote:
   
Srs., boa tarde!
   
Estou com uma dificuldade ao gerar uns arquivos txt usando o
  SQL*PLUS.
Meu script gera quase tudo certinho, exceto no final da linha que
  eu
peco para deixar alguns espacos em branco e o mesmo nao deixa.
  Veja o
script que estou usando (no linux):
   
DATA=`date +%Y%m%d%H%M%S`
export TNS_ADMIN=/www/funcoes sqlplus -S appuser/[EMAIL PROTECTED]
   EOF
 /www/genexis/txt/produto$DATA.txt
   
SET COLSEP '';
   
-- REGISTRO HEADER
SELECT
'H', -- tipo do registro
'CADPROD ', -- nome do arquivo
TO_CHAR(SYSDATE,'MMDD') -- data de criacao do arquivo
FROM
DUAL;
   
-- REGISTRO IDENTIFICADOR
SELECT
'I', -- tipo do registro
RPAD(u.tund_cnpj,18,' ') -- AQUI ELE NAO PREENCHE O RESTANTE COM
  OS
4 ESPACOS -- cnpj do parceiro
FROM
tund_unidade u;
QUIT;
EOF
   
   
   
  
  
  
   --
   Marcio Portes
   Material Tecnico em Portugues - http://mportes.blogspot.com
   Practical Learning Oracle -
   http://mportes.blogspot.com/2006/02/practical-learning-oracle.html
  
  
   [As partes desta mensagem que não continham texto foram removidas]
  
 
 
 

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Exportar campo BLOB

2007-05-06 Por tôpico Marcio Portes
Se as tablespaces forem idênticas, ele faz o import normalmente, caso
contrário, voce precisa criar a tabela na mão (copiando a DDL do erro que
for apresentado no import sem a tablespace) e importar novamente, somente a
tabela com o BLOB com a opção ignore=y

On 5/4/07, Sérgio Lopes de Aguiar [EMAIL PROTECTED] wrote:

   Pessoal, alguém pode me dar uma dica de como exportar campos do tipo
 BLOB ?
 Eu possuo uma tabela com uma coluna BLOB e essa tabela não extra no
 EXPORT.
 Alguma dica ?

 Versão do Oracle 9.2.0.7.

 Sérgio Lopes

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Trigger ServerError ?

2007-05-02 Por tôpico Marcio Portes
Exemplo em
http://mportes.blogspot.com/2006/01/trigger-after-servererror.html

On 5/2/07, Welvis Douglas Silva Moreto [EMAIL PROTECTED] wrote:

   Olá, eu estou fazendo um trigger de SERVERERROR, eu eu gostaria de pegar
 o Sql que estava sendo executando no momento
 do erro, alguem sabe como eu posso fazer isso?
 att,
 Welvis Douglas
 Msn : [EMAIL PROTECTED] welvis_douglas%40hotmail.com

 __
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Problema com datafile de off-line para on-line

2007-04-25 Por tôpico Marcio Portes
e qual foi o comando que voce usou para deixá-lo offline?

On 4/25/07, Aleksandro [EMAIL PROTECTED] wrote:

   Precisei de deixar o meu datafile da tablespace no modo offline

 Ao colocar em on line o oracle me retornou a seguinte mensagem

 Failed to commit: ORA-01113: file 12 needs media recovery ORA-01110:
 data file 12: 'D:\ORACLE\TST.DBF'

 O comando para deixa-la on line foi :
 ALTER DATABASE DATAFILE 'D:\ORACLE\TST.DBF' ONLINE

 Dei um shutdown um startup mount
 Dei o comando Recover database e recebo a mensagem que não existe nada
 para ser recuperado, mais ao listar os arquivos dos datafiles ele esta
 como recover.

 Obs: A versão do meu banco é 10.2.0.1.0 esta em modo de arquivamento.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Re: Problema com datafile de off-line para on-line

2007-04-25 Por tôpico Marcio Portes
Queria ver o comando correto que voce usou! Esse ai abaixo não funciona!!
Está errado. Veja no alertlog qual o comando utilizado.
Porém, segue um exemplo que acabei de fazer.

Database log mode  Archive Mode
Automatic archival Enabled
Archive destination/oracle/10g/dbs/arch
Oldest online log sequence 109
Next log sequence to archive   112
Current log sequence   112
sys:LX10G alter database open;

Database altered.

sys:LX10G
sys:LX10G
sys:LX10G alter database datafile
'+DATA/lx10g/datafile/trabalho.270.620332457' offline;

Database altered.

sys:LX10G !tail /oracle/admin/lx10g/bdump/alert_lx10g.log
Database Characterset is WE8ISO8859P1
replication_dependency_tracking turned off (no async multimaster replication
found)
Starting background process QMNC
QMNC started with pid=22, OS id=14871
Wed Apr 25 09:08:31 2007
Completed: alter database open
Wed Apr 25 09:08:42 2007
alter database datafile '+DATA/lx10g/datafile/trabalho.270.620332457'
offline
Wed Apr 25 09:08:42 2007
Completed: alter database datafile
'+DATA/lx10g/datafile/trabalho.270.620332457' offline

sys:LX10G alter database datafile
'+DATA/lx10g/datafile/trabalho.270.620332457' online;
alter database datafile '+DATA/lx10g/datafile/trabalho.270.620332457' online
*
ERROR at line 1:
ORA-01113: file 8 needs media recovery
ORA-01110: data file 8: '+DATA/lx10g/datafile/trabalho.270.620332457'


sys:LX10G recover datafile '+DATA/lx10g/datafile/trabalho.270.620332457';
Media recovery complete.
sys:LX10G alter database datafile
'+DATA/lx10g/datafile/trabalho.270.620332457' online;

Database altered.

sys:LX10G col file_name format a50
sys:LX10G select file_name, status from dba_data_files;

FILE_NAME  STATUS
-- -
+DATA/lx10g/datafile/users.259.614615307   AVAILABLE
+DATA/lx10g/datafile/sysaux.257.614615307  AVAILABLE
+DATA/lx10g/datafile/undotbs1.258.614615307AVAILABLE
+DATA/lx10g/datafile/system.256.614615305  AVAILABLE
+DATA/lx10g/datafile/apex_tbs.267.614616227AVAILABLE
+DATA/lx10g/datafile/flow_1.268.614620535  AVAILABLE
+DATA/lx10g/datafile/pay_tbs.269.614623409 AVAILABLE
+DATA/lx10g/datafile/trabalho.270.620332457AVAILABLE

8 rows selected.



On 4/25/07, Aleksandro [EMAIL PROTECTED] wrote:

   Utilizei o comando
 ALTER DATABASE 'D:\ORACLE\TST.DBF' OFFLINE;

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Marcio Portes
 [EMAIL PROTECTED] escreveu
 
  e qual foi o comando que voce usou para deixá-lo offline?
 
  On 4/25/07, Aleksandro [EMAIL PROTECTED] wrote:
  
   Precisei de deixar o meu datafile da tablespace no modo offline
  
   Ao colocar em on line o oracle me retornou a seguinte mensagem
  
   Failed to commit: ORA-01113: file 12 needs media recovery ORA-01110:
   data file 12: 'D:\ORACLE\TST.DBF'
  
   O comando para deixa-la on line foi :
   ALTER DATABASE DATAFILE 'D:\ORACLE\TST.DBF' ONLINE
  
   Dei um shutdown um startup mount
   Dei o comando Recover database e recebo a mensagem que não existe nada
   para ser recuperado, mais ao listar os arquivos dos datafiles ele esta
   como recover.
  
   Obs: A versão do meu banco é 10.2.0.1.0 esta em modo de arquivamento.
  
  
  
 
 
 
  --
  Marcio Portes
  Material Tecnico em Portugues - http://mportes.blogspot.com
  Practical Learning Oracle -
  http://mportes.blogspot.com/2006/02/practical-learning-oracle.html
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Re: Problema com datafile de off-line para on-line

2007-04-25 Por tôpico Marcio Portes
Não precisava montar/desmontar/reinicializar... Bom, importante é que
resolveu!

On 4/25/07, Aleksandro [EMAIL PROTECTED] wrote:

   Cara, consegui resolver o problema.

 Reiniciei a máquina, coloquei utilizei o comando ALTER DATABASE
 DATAFILE 'D:\ORACLE\TST.DBF' ONLINE com o banco desmontado e não montado.
 Após isso, dei um recover database que recuperou o arquivo.
 Montei o banco e funcionou.

 Valeu pela ajuda.

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Aleksandro
 [EMAIL PROTECTED] escreveu

 
  Utilizei o comando
  ALTER DATABASE 'D:\ORACLE\TST.DBF' OFFLINE;
 
 
  --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Marcio Portes
  portes.marcio@ escreveu
  
   e qual foi o comando que voce usou para deixá-lo offline?
  
   On 4/25/07, Aleksandro aleksandrosouza@ wrote:
   
Precisei de deixar o meu datafile da tablespace no modo offline
   
Ao colocar em on line o oracle me retornou a seguinte mensagem
   
Failed to commit: ORA-01113: file 12 needs media recovery ORA-01110:
data file 12: 'D:\ORACLE\TST.DBF'
   
O comando para deixa-la on line foi :
ALTER DATABASE DATAFILE 'D:\ORACLE\TST.DBF' ONLINE
   
Dei um shutdown um startup mount
Dei o comando Recover database e recebo a mensagem que não
 existe nada
para ser recuperado, mais ao listar os arquivos dos datafiles
 ele esta
como recover.
   
Obs: A versão do meu banco é 10.2.0.1.0 esta em modo de
 arquivamento.
   
   
   
  
  
  
   --
   Marcio Portes
   Material Tecnico em Portugues - http://mportes.blogspot.com
   Practical Learning Oracle -
   http://mportes.blogspot.com/2006/02/practical-learning-oracle.html
  
  
   [As partes desta mensagem que não continham texto foram removidas]
  
 

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Segmento x Datafile

2007-04-23 Por tôpico Marcio Portes
Grosso modo falando... Não é uma resposta para ser desenvolvida em 3
linhas...
Porque ele divide a carga de I/O espalhando os blocos através dos datafiles.
Imagine se voce tivesse cada datafile em um disco diferente com
controladoras diferentes, voce ganharia em leitura, porque as controladoras
iriam atenter em paralelo ao request do banco.

On 4/23/07, Clayton Rocha [EMAIL PROTECTED] wrote:

   Boa tarde!

 Fiquei com uma curiosidade agora... se eu tenho uma tablespace com dois
 datafiles e movo um segmento para essa tablespace. O que determina em qual
 dos dois datafiles o segmento vai ser armazenado se eu tenho espaço livre
 suficiente nos dois? Por que, mesmo tendo espaço para alocar em um único
 datafile acontece do Oracle dividir o segmento nos dois?

 Oracle 10g em Windows.

 Obrigado!

 Clayton Rocha

 DBA Oracle

 Faitec Tecnologia

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Segmento x Datafile

2007-04-23 Por tôpico Marcio Portes
Se voce já sabe que ele divide e isso é importante para performance (I/O),
para mim é isso que importa. (mas isso é opinião pessoal e entendo sua
curiosidade). Tentando ajudar: obviamente é um algorítmo interno que nunca
tive curiosidade de pesquisar. Porém, voce pode começar um investigação
fazendo um load em uma tabela em uma tablespace que possua 2, 3 datafiles e
ver a quantidade de dados que vai para cada um.
Exemplo executado no 9i e 10g.

9i (9.2.0.8)

FILE_NAME MBYTES   PCT
-- - -
/oracle/tmp/df1.dbf   14 51,85
/oracle/tmp/df2.dbf   13 48,15

10g (10.2.0.3)
==
FILE_NAME MBYTES   PCT
-- - -
/oracle/tmp/df1.dbf   24 51,06
/oracle/tmp/df2.dbf   23 48,94

E o script que usei para o teste.
--
set echo on

create tablespace tbs_deldf datafile
  '/oracle/tmp/df1.dbf' size 50m,
  '/oracle/tmp/df2.dbf' size 50m
/

col file_name format a30
select file_name
  from dba_data_files
 where tablespace_name = 'TBS_DELDF'
/

create table t tablespace tbs_deldf as select * from all_objects;
insert /*+ append */ into t select * from t;
commit;
insert /*+ append */ into t select * from t;
commit;
insert /*+ append */ into t select * from t;
commit;

select count(*) from t;

with
  sum_byt as (
select file_id, sum(bytes) sum_bytes
  from dba_extents
 where owner = user
   and segment_name = 'T'
   and segment_type = 'TABLE'
 group by file_id
  )
select file_name,
   round( sum_bytes/1024/1024, 2 ) mbytes,
   round( ratio_to_report(sum_bytes) over () * 100, 2 ) pct
  from dba_data_files df, sum_byt ex
 where df.file_id = ex.file_id
/

drop tablespace tbs_deldf including contents and datafiles;

set echo off


On 4/23/07, Clayton Rocha [EMAIL PROTECTED] wrote:

   Entendo perfeitamente que ele divide e que temos ganho de performance
 caso
 estejam em discos diferentes...

 A minha dúvida seria qual seria o critério que determina onde ele irá
 salvar... Realmente acho que não vai ser possível alguém me explicar isso
 em
 poucas linhas, mas, deixo uma outra pergunta:

 Existe algum material com explicações sobre esse assunto? É possível eu
 entender essa tomada de decisões ou é algo que apenas devo saber que ele
 divide, faz o melhor possível e ponto?

 Obrigado!

 Clayton Rocha

 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 Marcio Portes
 Enviada em: segunda-feira, 23 de abril de 2007 17:45
 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Assunto: Re: [oracle_br] Segmento x Datafile

 Grosso modo falando... Não é uma resposta para ser desenvolvida em 3
 linhas...
 Porque ele divide a carga de I/O espalhando os blocos através dos
 datafiles.
 Imagine se voce tivesse cada datafile em um disco diferente com
 controladoras diferentes, voce ganharia em leitura, porque as
 controladoras
 iriam atenter em paralelo ao request do banco.

 On 4/23/07, Clayton Rocha [EMAIL 
 PROTECTED]clayton.rocha%40faitec-cons.com.br
 mailto:clayton.rocha%40faitec-cons.com.br  wrote:
 
  Boa tarde!
 
  Fiquei com uma curiosidade agora... se eu tenho uma tablespace com dois
  datafiles e movo um segmento para essa tablespace. O que determina em
 qual
  dos dois datafiles o segmento vai ser armazenado se eu tenho espaço
 livre
  suficiente nos dois? Por que, mesmo tendo espaço para alocar em um único
  datafile acontece do Oracle dividir o segmento nos dois?
 
  Oracle 10g em Windows.
 
  Obrigado!
 
  Clayton Rocha
 
  DBA Oracle
 
  Faitec Tecnologia
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 --
 Marcio Portes
 Material Tecnico em Portugues - http://mportes.blogspot.com
 Practical Learning Oracle -
 http://mportes.blogspot.com/2006/02/practical-learning-oracle.html

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

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Trigger para capturar erros

2007-04-20 Por tôpico Marcio Portes
Um começo.
http://mportes.blogspot.com/2006/01/trigger-after-servererror.html

On 4/20/07, Fábio Gibon - Comex System [EMAIL PROTECTED] wrote:

 Alguém tem material sobre trigger para coletar erros do banco? (algo bem
 objetivo com exemplos...)

 abraços

 Gibon

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



 Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais acesse:
 http://www.oraclebr.com.br/codigo/ListaCodigo.php

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

 --
 O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
 http://www.oraclebr.com.br/

 
 Links do Yahoo! Grupos





-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Trigger para capturar erros

2007-04-20 Por tôpico Marcio Portes
v$session...

ops$marcio:LX10G select username, osuser, terminal, program from v$session
where username is not null;

USERNAME  OSUSER TERMINAL PROGRAM
- -- 

OPS$MARCIOmarcio pts/4[EMAIL PROTECTED] (TNS V1-V3)
SCH_PAY   marcio pts/2[EMAIL PROTECTED] (TNS V1-V3)

2 rows selected.


On 4/20/07, Fábio Gibon - Comex System [EMAIL PROTECTED] wrote:

   show Marcio, era isto mesmo... blog adicionado aos favoritos... rs

 Ah, assim como você adicionou o usuario (USER) eu precisava ter também o
 nome do programa e do terminal... vi a function SYSINFO, mas não obtive
 sucesso... sabe como eu obtenho estas informacoes, se é possível?

 abração
 Gibon
 - Original Message -
 From: Marcio Portes
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Sent: Friday, April 20, 2007 8:04 AM
 Subject: Re: [oracle_br] Trigger para capturar erros

 Um começo.
 http://mportes.blogspot.com/2006/01/trigger-after-servererror.html

 On 4/20/07, Fábio Gibon - Comex System [EMAIL 
 PROTECTED]gibon%40comexsystem.com.br
 wrote:
 
  Alguém tem material sobre trigger para coletar erros do banco? (algo bem
  objetivo com exemplos...)
 
  abraços
 
  Gibon
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
  Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
  Procedure » Scripts » Tutoriais acesse:
  http://www.oraclebr.com.br/codigo/ListaCodigo.php
 
  --
  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/
 
  --
  O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
  http://www.oraclebr.com.br/
 
  --
  Links do Yahoo! Grupos
 
 
 

 --
 Marcio Portes
 Material Tecnico em Portugues - http://mportes.blogspot.com
 Practical Learning Oracle -
 http://mportes.blogspot.com/2006/02/practical-learning-oracle.html

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

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Query de vendas no mês

2007-04-20 Por tôpico Marcio Portes
Uma idéia...
http://mportes.blogspot.com/2005/11/trabalhando-com-intervalos-de-datas.html

On 4/20/07, Fabio Santos [EMAIL PROTECTED] wrote:

   bom eu vejo algumas formas de você fazer isso.

 - Primeiro você fazer um loop num cursor diario e consultando a tabela
 de produto para verificar se tem o produto na tabela de venda. tipo: faz
 um for de 1 a 31 e com um cursor de produtos você verifica cada
 dia/produto na tabela de venda. com o resultado final retorna um cursor
 ou coloca em uma tabela.

 outra opcao se voce sempre verifica do dia anterior para tras, eh voce
 fazer um procedimento que preencha a tabela de venda com qtde zero se o
 dia anterior for null. e ai coloca um job para dar start nessa procedure
 1 vez por dia.

 abraços



 -Mensagem original-
 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 Carlos Maurilio Silva
 Enviada em: sexta-feira, 20 de abril de 2007 14:31
 Para: Oracle BR
 Assunto: [oracle_br] Query de vendas no mês

 Caros, boa tarde!

 Estou precisando de montar a seguinte query:

 Tenho numa tabela: data, produto e qtde vendida por dia.
 Qdo não há venda de um produto em determinado dia, não é gravada nehuma
 informação na tabela.
 Preciso montar uma query que me dê as vendas diárias por produto, mas,
 para os dias que não houveram vendas preciso informar zero (0).

 Ex:
 data prod qtde
 02/04/07 123 25.00
 04/04/07 123 12.00
 05/04/07 123 9.00
 .
 .

 Query
 --

 02/04/2007 123 25.00
 03/04/2007 123 0.00 -- note-se que não há registro do dia 03 na tabela
 para o produto 123.
 04/04/2007 123 12.00
 05/04/2007 123 9.00

 Obrigado,

 Carlim

 -_-_-_-_-__
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 HYPERLINK
 http://br.messenger.yahoo.com/http://br.messenger-.yahoo.com/

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

 --
 Internal Virus Database is out-of-date.
 Checked by AVG Free Edition.
 Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
 3/4/2007 12:48

 --
 Internal Virus Database is out-of-date.
 Checked by AVG Free Edition.
 Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
 3/4/2007 12:48


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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] ORDER BY em coluna alfanumérica

2007-04-19 Por tôpico Marcio Portes
Corte os alphas da string e a transforme em numero!

ops$marcio:LX10G select x from t order by 1;

X
--
111A
11A
1A
222A
22A
2A

6 rows selected.

ops$marcio:LX10G select x from t order by to_number(translate(x,'ABC...','
'));

X
--
1A
2A
11A
22A
111A
222A

6 rows selected.



On 4/19/07, raposao [EMAIL PROTECTED] wrote:

   Boa tarde a todos.

 Uma vez vi nesse grupo um exemplo de uma query onde o ORDER BY numa
 coluna alfanumérica diferenciava números de palavras. Por exemplo:

 ORDER BY normal:

 1A
 11A
 111A
 2A
 22A
 222A

 ORDER BY que eu vi:
 1A
 2A
 11A
 22A
 111A
 222A

 Caso alguém tenha esse exemplo, poderia me enviar, por favor?

 Muito obrigado.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] tablespace

2007-04-19 Por tôpico Marcio Portes
A mesma idéia em
http://mportes.blogspot.com/2006/05/sql-dinmico.html

basta fazer algo dinamico.

select 'alter table '|| table_name ||' move tablespace ...;' from
user_tables;


On 4/19/07, Alessandro Damo [EMAIL PROTECTED] wrote:

   Boa tarde a todos,

 Gostaria de saber como eu faco para mudar todos os segmentos de uma
 tablespace para outra tablespace.

 Executando somente uma vez a query, sem ter que mover a tablespace de
 cada tabela uma a uma.

 Obrigado a Todos

 Alessandro.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Ajuda com select

2007-04-19 Por tôpico Marcio Portes
Leandro, tudo que voce precisa é:

insert into teste (id, mensagem ) select rownum, nome from grupo;


On 4/19/07, Leandro Concon [EMAIL PROTECTED] wrote:

   Senhores, bom dia!

 Estou precisando recuperar o valor retornado do select e sete-lo em uma
 variavel local VARCHAR2.
 Valor retornado será utilizado para inserir em outra campo de outra
 tabela.

 Abaixo um exemplo de como seria
 DECLARE
 var_mensagem VARCHAR2(2000);
 BEGIN

 SELECT DISTINCT 'TESTE' || GRUPO.NOME
 INTO var_mensagem
 FROM GRUPO;

 DBMS_OUTPUT.PUT_LINE(var_mensagem);

 INSERT TESTE (ID,MENSAGEM) VALUES (1,var_mensagem);

 END;

 Obrigado.

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Capturar ID da sessão

2007-04-19 Por tôpico Marcio Portes
ops$marcio:LX92 select sid, serial# from v$session where audsid =
userenv('sessionid');

  SID   SERIAL#
- -
   11 5

1 row selected.



On 4/19/07, Carlos Maurilio Silva [EMAIL PROTECTED] wrote:

   Bom dia,

 Numa aplicação, gostaria de criar uma tabela temporária e que nela tivesse
 o ID (serial#, sid) como complemento do nome desta tabela.
 Como eu faço pra conseguir pegar o sid e serial# da minha sessão corrente,
 uma vez que posso estar com mais de uma sessão aberta.
 Oracle9i Enterprise Edition Release 9.2.0.3.0

 Obrigado,

 Carlim

 __
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Re: CBO e RBO

2007-04-19 Por tôpico Marcio Portes
;
   
   
   
  
  

 
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for
 update)
rows = number of rows processed by the fetch or execute call
   
  
  

 
   
SELECT COUNT(*)
FROM dual
   
call count cpu elapsed disk query current rows
--- - - --- --- --- --- ---
Parse 1 0.02 0.02 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 0 1 4 1
--- - - --- --- --- --- ---
total 4 0.02 0.02 0 1 4 1
   
Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 121
   
Rows Row Source Operation
--- ---
1 SORT AGGREGATE
1 TABLE ACCESS FULL DUAL
   
   
No Oracle 9i, com o otimizador CHOOSE sem estatística coletada o
 banco
funciona como RULE.
Se em uma query que realiza junção de tabelas, por exemplo 5 tabelas
envolvidas, houver estatística coletada em duas tabelas e as
 demas sem
estatisticas qual otimizador o Oracle ira utilizar (CHOOSE ou RULE)?
   
   
   
   
   
   --
Aqui na Oi Internet você ganha ou ganha. Além de acesso grátis com
qualidade, ganha contas ilimitadas de email com 1 giga cada uma.
 Ganha
espaço ilimitado para hospedar sua página pessoal. Ganha flog,
 suporte
grátis e muito mais. Baixe grátis o Discador em
http://www.oi.com.br/discador e comece a ganhar.
   
Agora, se o seu negócio é voar na internet sem pagar uma fortuna,
assine Oi Internet banda larga e ganhe modem grátis. Clique em
http://www.oi.com.br/bandalarga e aproveite essa moleza!
   
  
  
  
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Fazer histórico de todas as transações efetuadas em tabelas

2007-04-16 Por tôpico Marcio Portes
Sistema monstruoso - Sempre é bom pensar e repensar qualquer requisito antes
de implementar. Portanto, considere os impactos sobre a implementação da
solução abaixo em seu ambiente.

http://mportes.blogspot.com/search?q=fga


On 4/11/07, Marcelo Magalhães [EMAIL PROTECTED] wrote:

   Caro colegas,

 Estou com um problema no desenvolvimento de um sistema de
 informação que irá utilizar Oracle, possivelmente 10g, com relação á
 historiar todas as transações (INSERT, UPDATE, DELETE) efetuadas nas
 tabelas do sistema. Este sistema poderá ter mais de 100 tabelas e
 algumas com algumas dezenas de colunas e ainda por cima o numero de
 registros já passa de 50 milhões, ou seja, é um sistema mostruoso. Me
 informaram que o 10g tem uma funcionalidade que historia as alterações
 feitas em campos, armazenando o usuário, data, hora, etc. que fez as
 alterações (INSERT, UPDATE, DELETE). Existe mesmo esta funcionalidade?
 Onde teria material de leitura para tal funcionalidade?

 Abraço a todos.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Re: Data Pump

2007-04-16 Por tôpico Marcio Portes
E quando voce faz import usando fromuser/touser voce espera enviar somente
tabelas???
Não, voce precisa especificar com outro parâmetro, certo?

No datapump também... use

TABLESIdentifies a list of tables to import.

Assim como no import normal.

On 4/16/07, Eli Dias [EMAIL PROTECTED] wrote:

   Ola

 Até ai tudo bem que esse parametro irá transferir todo o esquema do
 usuário, mas para efetuar somente o import das tabelas.
 Por exemplo com o usuario x quero realizar o impd e transferir as
 tabelas de um *.dmp para o usuário y.

 Valeu

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Marcio Portes
 [EMAIL PROTECTED] escreveu
 
  impdp help=y
  ...
  REMAP_SCHEMA Objects from one schema are loaded into another
  schema.
  ...
 
 
  On 4/15/07, Eli Dias [EMAIL PROTECTED] wrote:
  
   Boa noite.
   Galera existe algum parametro no IMPDP que realize a mesma função do
   fromuser/touser do import?
  
  
  
 
 
 
  --
  Marcio Portes
  Material Tecnico em Portugues - http://mportes.blogspot.com
  Practical Learning Oracle -
  http://mportes.blogspot.com/2006/02/practical-learning-oracle.html
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Dúvida SQL Loader

2007-04-16 Por tôpico Marcio Portes
qual a versão do banco? E qual sistema operacional? (E eu juro que é a
última vez que pergunto! ;-)

On 4/16/07, Clayton Rocha [EMAIL PROTECTED] wrote:

   Boa tarde!

 Tenho uma pasta com cerca de 45 arquivos CSV no mesmo padrão de formato e
 quero subir para o banco com SQL Loader. A rotina para subir um dos
 arquivos
 já está funcionando, no entanto gostaria de saber se tem como ordenar o
 SQL
 Loader para ler de todos os arquivos com o mesmo comando ou se eu preciso
 pensar em algum batch avançado para isso...

 Obrigado desde já!

 Clayton Rocha

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] ORA-12571 TNS-packet writer failure

2007-04-16 Por tôpico Marcio Portes
Revise essa procedure, veja se não há nada hard coded nela apontando a um
ambiente específico.

On 4/16/07, Jorge Augusto Lustosa [EMAIL PROTECTED] wrote:

   Pessoal,

 estou com um problema. Preciso de ajuda.

 Tenho uma aplicação que executa uma procedure (esta proc faz leitura
 em algumas tabelas de sistemas de terceiros) e grava alguns dados em
 uma tabela temporária.

 A aplicação funciona perfeitamente em ambiente de homologação. Quando
 coloco em ambiente de produção aparece o erro ORA-12571 TNS-packet
 writer failure.

 A aplicação no ambiente de homologação apontando para a base de
 produção funciona perfeitamente.

 A aplicação no ambiente de produção apontando para a base de
 homologação também funciona. Só dá problema quando tudo está no
 ambiente de produção.

 Se executo somente a procedure, no ambiente de produção, sem o uso da
 aplicação tudo funciona. A aplicação executa outras procedures e tudo
 funciona, somente uma está me dando este problema.

 Será que alguém do grupo já teve este problema ou pode me dar uma
 dica? Já andei procurando no Google, mas até agora não consegui
 entender este erro.

 Ambiente de produção = Oracle 8i
 Ambiente de homologação = Oracle 8i e 9

 Obrigado pela atenção.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Data Pump

2007-04-15 Por tôpico Marcio Portes
impdp help=y
...
REMAP_SCHEMA  Objects from one schema are loaded into another
schema.
...


On 4/15/07, Eli Dias [EMAIL PROTECTED] wrote:

   Boa noite.
 Galera existe algum parametro no IMPDP que realize a mesma função do
 fromuser/touser do import?

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Subquery na cláusula select

2007-04-13 Por tôpico Marcio Portes
   33  0.30   0.30   1185   4385  0
3000

Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 61

Rows Row Source Operation
---  ---
   3000  HASH JOIN
   3000   TABLE ACCESS FULL T2
 655473   TABLE ACCESS FULL T1

Ele teve que ler 655 mil linhas juntamente com as 3000 para depois o HASH.
Muito esforço.
Já com a subquery.

select t2.object_id, t2.created,
   ( select object_name
   from t1
  where t1.object_id = t2.object_id
   ) object_name
  from t2

call count   cpuelapsed   disk  querycurrent
rows
--- --   -- -- -- --
--
Parse1  0.00   0.00  0  0
0   0
Execute  1  0.00   0.00  0  0
0   0
Fetch   31  0.05   0.06 44   9075  0
3000
--- --   -- -- -- --
--
total   33  0.05   0.06 44   9075  0
3000

Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 61

Rows Row Source Operation
---  ---
   3000  TABLE ACCESS BY INDEX ROWID T1
   3000   INDEX RANGE SCAN OBJIDX (object id 33158)
   3000  TABLE ACCESS FULL T2

Através do índice, ele evitou praticamente 652 mil linhas (grosso modo
falando), mas o esforço foi bem menor. E para abreviar a resposta, que acho
enorme, vou colocar os 2 tkprofs do 10g, basicamente é a mesma situação a
GRANDE diferença é que eu tive que ralar para sair esse resultado ( até
cascade = false) eu usei - e a quantidade de registros da t1 também teve
que ser de 1 milhão e pouco.

select t2.object_id, t2.created, t1.object_name
  from t1, t2
 where t1.object_id = t2.object_id

call count   cpuelapsed   disk  querycurrent
rows
--- --   -- -- -- --
--
Parse1  0.00   0.00  0  0
0   0
Execute  1  0.00   0.00  0  0
0   0
Fetch   31  0.59   0.59  0   7539  0
3000
--- --   -- -- -- --
--
total   33  0.59   0.59  0   7539  0
3000

Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 55

Rows Row Source Operation
---  ---
   3000  HASH JOIN  (cr=7539 pr=0 pw=0 time=94445 us)
   3000   TABLE ACCESS FULL T2 (cr=11 pr=0 pw=0 time=21060 us)
1123458   TABLE ACCESS FULL T1 (cr=7528 pr=0 pw=0 time=6740811 us)

===

select t2.object_id, t2.created,
   ( select object_name
   from t1
  where t1.object_id = t2.object_id
   ) object_name
  from t2

call count   cpuelapsed   disk  querycurrent
rows
--- --   -- -- -- --
--
Parse1  0.00   0.00  0  0
0   0
Execute  1  0.00   0.00  0  0
0   0
Fetch   31  0.23   0.23  0   9078  0
3000
--- --   -- -- -- --
--
total   33  0.23   0.23  0   9078  0
3000

Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 55

Rows Row Source Operation
---  ---
   3000  TABLE ACCESS BY INDEX ROWID T1 (cr=9037 pr=0 pw=0 time=186784 us)
   3000   INDEX RANGE SCAN OBJIDX (cr=6037 pr=0 pw=0 time=83942 us)(object
id 63397)
   3000  TABLE ACCESS FULL T2 (cr=41 pr=0 pw=0 time=21058 us)

Não é uma materia fácil de entendimento a priori, mas se ainda ficou dúvida,
replica que o Chiappa explica! :-)

On 4/13/07, h_marinox [EMAIL PROTECTED] wrote:

   Pessoal,

 Eu gostaria de entender quais são as vantagens e desvantagens de
 usar uma subquery na cláusula select. Quando usar e quando não usar.

 Obrigado e viva a Sexta-Feira

 abraços

 hmarinox

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Criar diretorio

2007-04-12 Por tôpico Marcio Portes
se estiver usando 10g, o dbms_scheduler consegue.

http://mportes.blogspot.com/2005/10/dbmsscheduler-executando-bat.html
http://mportes.blogspot.com/2007/01/dbmsscheduler-no-linux.html


On 4/12/07, Roberto Souza Silva [EMAIL PROTECTED] wrote:

   Bom dia amigos.

 Alguem pode me dizer que eh possivel criar diretorios em PL?
 Nao estou falando do CREATE OR REPLACE DIRECTORY.

 E aproveitando tambem gostaria de saber se existe alguma package que
 execute
 comandos externos, tipo executar um arquivo BAT em algum diretorio do
 ALL_DIRECTORIES! Pois se existe resolvo a questao acima.

 Obrigado e uma otima 5-Feira a todos.

 Roberto

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] datafiles grandes

2007-04-12 Por tôpico Marcio Portes
No HP-UX trabalho com datafiles desse porte sem nenhum problema. Estão no
EMC (storage).

On 4/11/07, Miguel Angelo Crosariol [EMAIL PROTECTED] wrote:

   Oi gente, estou com uma duvida, e preciso resolver logo se possivel
 ainda hj pois tenho que migrar o banco,
 trabalho com datafiles grandes em torno de 10GB/20GB, e certa vez uma
 pessoa me falou que era melhor dividir me varios arquivos de 2GB,
 pergunta , oque é melhor ( em termos de desempenho e I/O de disco ) ?
 5 arquivos de 2GB ou 1 arquivo de 10GB

 a maquina :
 - dual xeon
 - 8GB ram
 - CentOS 4 X86_64
 - Oracle 10g 64

 Obrigado

 Miguel

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Versão do Banco

2007-04-12 Por tôpico Marcio Portes
ops$marcio:LX10G select platform_name from v$database;

PLATFORM_NAME
---
Linux IA (32-bit)

1 row selected.



On 4/12/07, Mauricio Roberto Maciel [EMAIL PROTECTED] wrote:

   Pessoal:

 Como faço para descobrir se o meu banco é de 64 bits?

 Obrigado
 Mauricio

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Como criar histórico de alterações

2007-04-12 Por tôpico Marcio Portes
Na versão 10g voce pode usar o dbms_fga, mas com esse volume - prepara
disco.
http://mportes.blogspot.com/2005/05/audit-trail-fga-fine-grained-audit-10g.html

Usei uma solução caseira certa vez em um cliente, mas não recomendo pra voce
(nesse volume).
http://mportes.blogspot.com/2005/05/audit-trail-soluo-caseira.html


On 4/12/07, Marcelo Magalhaes [EMAIL PROTECTED] wrote:

 Caro colegas,

 Estou com uma dúvida de como cirar um histórico de alterações de
 informações arnazenadas no Oracle. Me disseram que o próprio Oracle tem esta
 funcionalidade, é verdade? Qual versão tem isso? Como obter maiores
 informações sobre tal funcionalidade?

 Para ter uma idéia do problema; o sistema tem umas 100 tabelas cada
 uma com uns 20 campos.. e tenho uma tabela com mais de 50 milhões de
 registros... ou seja o sistema é enorme. Quero historiar todas esta tabelas,
 armazenando no histórico a data/hora da alteração, usuário que fez, valor
 antigo e valor novo.

 Tem como fazer isso? Como?

 Abraços.

 __
 Marcelo Vicente Vianna Magalhães
 Rio de Janeiro – R.J.
 Departamento de Engenharia Eletrônica
 Escola de Engenharia
 Universidade Federal do Rio de Janeiro

 __
 Fale com seus amigos  de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/


 Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais acesse:
 http://www.oraclebr.com.br/codigo/ListaCodigo.php

 --
 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/[EMAIL PROTECTED]/

 --
 O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
 http://www.oraclebr.com.br/

 
 Links do Yahoo! Grupos





-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais acesse: http://www.oraclebr.com.br/codigo/ListaCodigo.php 
--
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/[EMAIL PROTECTED]/ 
--
O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/  

  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 


Re: [oracle_br] Duvida OS

2007-04-11 Por tôpico Marcio Portes
Acho que o problema não é qual o melhor SO e sim QUEM vai administrá-lo.
Se a empresa tem pessoal que administra Windows e ninguém  experiente em
Linux, então, neste caso, Linux não deveria ser nem considerado (caso não
haja budget para treinamento e administração externa). É muito importante
ter um SA para suportar o ambiente operacional onde o Oracle será instalado.
Portanto, faça um planejamento rigoroso, onde os skills das pessoas deve ser
levado em conta - e não caia na armadilha do treinamento: uma pessoa recém
treinada, não está preparada para assumir um Sistema Operacional em produção
(claro que isso é meu pensamento).

Agora, em minha opinião, mas porque conheço o Linux mais que Windows, eu
instalaria o Oracle no Linux -- só e somente só, porque conheço a
plataforma, tenho experiência nesta plataforma. E porque o Linux é Rock'n
Roll... :-)

On 4/11/07, Welvis Douglas Silva Moreto [EMAIL PROTECTED] wrote:

   Olá Pessoal, estamos em duvida aqui na empresa... estamos mudando a
 maquina que o oracle está instalado, gostaria de saber o seguinte.

 qual SO é melhor Windows 2003 ou Red Hat AS 3 ou 4, atualmente estamos
 usando o oracle

 Oracle9i Release 9.2.0.4.0 - Production
 PL/SQL Release 9.2.0.4.0 - Production
 CORE 9.2.0.3.0 Production
 TNS for Linux: Version 9.2.0.4.0 - Production
 NLSRTL Version 9.2.0.4.0 - Production
 onde em um futuro bem proximos estaremos instalando o 10G, qual seria a
 melhor opção?

 obrigado pela ajuda.!

 att,

 Welvis Douglas

 __
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Re: Envio de uma clob com + de 32767 caracteres - URGENTE

2007-04-10 Por tôpico Marcio Portes
Já verificou como está na origem. Passando os olhos no seu código, não vejo
nenhum problema.
Voce usa o utl_file.put() que prepara a linha e não gera um \n (new line).
Mas nunca fiz um arquivo texto que tivesse mais de 32k no longo da linha,
não sei se é permitido no sistema opernacional.


On 4/10/07, a_coelho59 [EMAIL PROTECTED] wrote:

   Marcio, agora tenho outro problema:
 O ficheiro está completo mas, parte a linha quando atinge 32767
 bytes e coloca o ficheiro xml mal estruturado, conforme o exemplo.

 PartsInvoiceLine type=invoice
 Part PartNu
 mber=139427 FranchiseName=OPEL IsFranchise=false/
 Quantity1/Quantity
 UnitCost31.15/UnitCost
 UnitPrice62.3/UnitPrice
 UnitListPrice62.3/UnitListPrice
 Purchase Source=Manufacturer/
 /PartsInvoiceLine

 Quem puder agradeço

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Marcio Portes
 [EMAIL PROTECTED] escreveu
 
  Voce está dentro de um looping e sabe quem está te jogando fora não?
  Quando voce usa o dbms_lob.read, na última passagem ele joga o
 no_data_found
  e manda o ponteiro pra fora do looping. Faltou na sua lógica o
 tratamento do
  no_data_found para gravar o resto.
 
  Acho que um bom inicio seria:
 
  ...
  EXCEPTION
  when no_data_found then
  utl_file.put(v_file, v_buffer);
  utl_file.fflush( v_file );
  utl_fclose( v_file );
  END ENVIA_XML;
 
  Eu tirei o WHEN OTHERS de propósito... evite usá-lo.
  Quando tiver um tempo, dá uma lidinho em
  http://mportes.blogspot.com/2005/07/boas-prticas-de-programao-when-
 others.html
 
 
  On 4/9/07, a_coelho59 [EMAIL PROTECTED] wrote:
  
   Caros amigos;
   Se me puderem ajudar agradeço.
   Tenho uma Clob com mais 32767 caracteres.
   Tenho este procedure para gerar um file.
   Mas não sei como fazer o output da clob com todos os caracteres
 para
   o file.
   O procedimento é este, se alguem me puder ajudar agradeço:
  
   PROCEDURE ENVIA_XML IS
   V_DIR VARCHAR2(7) := 'http://aplfms:/dload';
   V_NOME VARCHAR2(15) := 'VD_PECAS_PQ.xml';
   V_FILE UTL_FILE.FILE_TYPE ;
   V_CLOB CLOB ;
   V_BUFFER_SIZE VARCHAR2(32767) ;
   V_BUFFER VARCHAR2(32767) ;
   V_AMOUNT BINARY_INTEGER := 32767 ;
   V_POS INTEGER := 1 ;
   BEGIN
  
   SELECT p.lin.getClobVal()
   INTO V_CLOB
   FROM PC_PQ_LIN_XML1 p
   WHERE p.sqfile = 1 ;
  
   V_FILE := UTL_FILE.fopen(V_DIR, V_NOME , 'W', V_BUFFER_SIZE);
   LOOP
   DBMS_LOB.READ(V_CLOB, V_AMOUNT, V_POS, V_BUFFER);
   UTL_FILE.put(V_FILE, V_BUFFER);
   V_POS := V_POS + V_AMOUNT;
   END LOOP;
   EXCEPTION WHEN OTHERS THEN
   DBMS_OUTPUT.put_line(SQLERRM);
   UTL_FILE.fclose(V_FILE);
   END ENVIA_XML;
  
   Obrigado
  
  
  
 
 
 
  --
  Marcio Portes
  Material Tecnico em Portugues - http://mportes.blogspot.com
  Practical Learning Oracle -
  http://mportes.blogspot.com/2006/02/practical-learning-oracle.html
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Re: Envio de uma clob com + de 32767 caracteres - URGENTE

2007-04-10 Por tôpico Marcio Portes
Pra ser sincero, nem fui lá nos docs. ;-) Obrigado.
Nunca precisei ir tão longe com a linha, ou seja, 32k é byte pra dedeu.
Outra possibilidade além de rotina externa, poderia ser gravar isso em blob,
usando o put_raw. (mas é chute, não testei...)

On 4/10/07, jlchiappa [EMAIL PROTECTED] wrote:

   Márcio, ao que eu entendi o cara quer ler/gravar arquivo texto com
 linhas maiores que 32767 bytes,né ? Aí não é limitação de SO, é
 limitação da própria UTL_FILE, o manual Oracle(r) Database PL/SQL
 Packages and Types Reference no capítulo sobre a UTL_FILE já nos diz
 (grifo com *s meu) :

 
 UTL_FILEFOPEN Function
 This function opens a file. You can specify the maximum line size and
 have a maximum of 50 files open simultaneously. See also FOPEN_NCHAR
 Function.

 Syntax

 UTL_FILE.FOPEN (
 location IN VARCHAR2,
 filename IN VARCHAR2,
 open_mode IN VARCHAR2,
 max_linesize IN BINARY_INTEGER)
 RETURN file_type;

 Parameters

 ... blablabla ...

 max_linesize Maximum number of characters for each line, including
 the newline character, for this file (minimum value 1,  maximum
 value 32767  ). If unspecified, Oracle supplies a default value
 of 1024.
 

 === então com utl_file essa (estranha!!) requisição de ler/gravar
 arquivo com linhas maiores que isso não rola, extrapola o limite da
 utl_file - digo estranha porque muitas vezes nem editores de texto
 especializados manipulam arquiivos com linhas to largas, é
 incomum pra dizer o mínimo Pra essa necessidade então o colega
 terá que escrever uma rotina EXTERNA ao PL/SQL (em C ou Java,
 provavelmente) e a chamar do PL/SQL via external proc ou java proc.

 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Marcio Portes
 [EMAIL PROTECTED] escreveu
 
  Já verificou como está na origem. Passando os olhos no seu código,
 não vejo
  nenhum problema.
  Voce usa o utl_file.put() que prepara a linha e não gera um \n
 (new line).
  Mas nunca fiz um arquivo texto que tivesse mais de 32k no longo da
 linha,
  não sei se é permitido no sistema opernacional.
 
 
  On 4/10/07, a_coelho59 [EMAIL PROTECTED] wrote:
  
   Marcio, agora tenho outro problema:
   O ficheiro está completo mas, parte a linha quando atinge 32767
   bytes e coloca o ficheiro xml mal estruturado, conforme o exemplo.
  
   PartsInvoiceLine type=invoice
   Part PartNu
   mber=139427 FranchiseName=OPEL IsFranchise=false/
   Quantity1/Quantity
   UnitCost31.15/UnitCost
   UnitPrice62.3/UnitPrice
   UnitListPrice62.3/UnitListPrice
   Purchase Source=Manufacturer/
   /PartsInvoiceLine
  
   Quem puder agradeço
  
   --- Em oracle_br@yahoogrupos.com.br 
   oracle_br%40yahoogrupos.com.broracle_br%
 40yahoogrupos.com.br,

   Marcio Portes
   portes.marcio@ escreveu
   
Voce está dentro de um looping e sabe quem está te jogando fora
 não?
Quando voce usa o dbms_lob.read, na última passagem ele joga o
   no_data_found
e manda o ponteiro pra fora do looping. Faltou na sua lógica o
   tratamento do
no_data_found para gravar o resto.
   
Acho que um bom inicio seria:
   
...
EXCEPTION
when no_data_found then
utl_file.put(v_file, v_buffer);
utl_file.fflush( v_file );
utl_fclose( v_file );
END ENVIA_XML;
   
Eu tirei o WHEN OTHERS de propósito... evite usá-lo.
Quando tiver um tempo, dá uma lidinho em
http://mportes.blogspot.com/2005/07/boas-prticas-de-programao-
 when-
   others.html
   
   
On 4/9/07, a_coelho59 acoelho@ wrote:

 Caros amigos;
 Se me puderem ajudar agradeço.
 Tenho uma Clob com mais 32767 caracteres.
 Tenho este procedure para gerar um file.
 Mas não sei como fazer o output da clob com todos os
 caracteres
   para
 o file.
 O procedimento é este, se alguem me puder ajudar agradeço:

 PROCEDURE ENVIA_XML IS
 V_DIR VARCHAR2(7) := 'http://aplfms:/dload';
 V_NOME VARCHAR2(15) := 'VD_PECAS_PQ.xml';
 V_FILE UTL_FILE.FILE_TYPE ;
 V_CLOB CLOB ;
 V_BUFFER_SIZE VARCHAR2(32767) ;
 V_BUFFER VARCHAR2(32767) ;
 V_AMOUNT BINARY_INTEGER := 32767 ;
 V_POS INTEGER := 1 ;
 BEGIN

 SELECT p.lin.getClobVal()
 INTO V_CLOB
 FROM PC_PQ_LIN_XML1 p
 WHERE p.sqfile = 1 ;

 V_FILE := UTL_FILE.fopen(V_DIR, V_NOME , 'W', V_BUFFER_SIZE);
 LOOP
 DBMS_LOB.READ(V_CLOB, V_AMOUNT, V_POS, V_BUFFER);
 UTL_FILE.put(V_FILE, V_BUFFER);
 V_POS := V_POS + V_AMOUNT;
 END LOOP;
 EXCEPTION WHEN OTHERS THEN
 DBMS_OUTPUT.put_line(SQLERRM);
 UTL_FILE.fclose(V_FILE);
 END ENVIA_XML;

 Obrigado



   
   
   
--
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-
 oracle.html
   
   
[As partes desta mensagem que não continham texto foram
 removidas]
   
  
  
  
 
 
 
  --
  Marcio Portes
  Material Tecnico em Portugues - http://mportes.blogspot.com

Re: [oracle_br] Re: Envio de uma clob com + de 32767 caracteres - URGENTE

2007-04-10 Por tôpico Marcio Portes
A curiosidade matou o gato.

Fiz o exemplo e postei no blog.
http://mportes.blogspot.com/2007/04/dbmslob-10g.html

Funciona, mas é preciso abrir o arquivo com 'wb' senão ele continua
limitando em 32k.

On 4/10/07, jlchiappa [EMAIL PROTECTED] wrote:

   Só complementando - agora, pensando mais friamente, acho que o
 put_raw vai funcionar sim : o limite existe MAS como o raw não
 adiciona nem procura por caracter eol, o cara vai poder ler a linha
 lá grandona MAS em vários pedaços de 32767 bytes, como mostrado em
 http://www.oracle-base.com/articles/9i/ExportBlob9i.php , sim...

 []s

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

 
  Pois é, é byte pra dedéu, é um pedido incomum pra dizer o mínimo -
 e
  na verdade eu só fui nas docs pra confirmar, eu já tinha um feeling
  de que isso seria limitação (conhecendo o nosso amigo PL/SQL, que
  nada mais é do que uma série de structs C com alguns programinhas
 que
  os acessam, e sabendo que muitos desses caras foram limitados em 32
  Kb - que é o valor máximo pra vários compiladores C em ambiente 32
  bits - , eu já imaginava que devia ter esse limite Quanto à
  utl_file.put_raw, não sei se funcionaria, já que a própria chamada
  inicial obrigatória do utl_file.fopen tem o limite, é testar
 
  []s
 
  Chiappa
  --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Marcio Portes
  portes.marcio@ escreveu
  
   Pra ser sincero, nem fui lá nos docs. ;-) Obrigado.
   Nunca precisei ir tão longe com a linha, ou seja, 32k é byte pra
  dedeu.
   Outra possibilidade além de rotina externa, poderia ser gravar
 isso
  em blob,
   usando o put_raw. (mas é chute, não testei...)
  
   On 4/10/07, jlchiappa jlchiappa@ wrote:
   
Márcio, ao que eu entendi o cara quer ler/gravar arquivo
 texto
  com
linhas maiores que 32767 bytes,né ? Aí não é limitação de SO, é
limitação da própria UTL_FILE, o manual Oracle(r) Database
 PL/SQL
Packages and Types Reference no capítulo sobre a UTL_FILE já
 nos
  diz
(grifo com *s meu) :
   

UTL_FILEFOPEN Function
This function opens a file. You can specify the maximum line
 size
  and
have a maximum of 50 files open simultaneously. See also
  FOPEN_NCHAR
Function.
   
Syntax
   
UTL_FILE.FOPEN (
location IN VARCHAR2,
filename IN VARCHAR2,
open_mode IN VARCHAR2,
max_linesize IN BINARY_INTEGER)
RETURN file_type;
   
Parameters
   
... blablabla ...
   
max_linesize Maximum number of characters for each line,
 including
the newline character, for this file (minimum value 1, 
  maximum
value 32767  ). If unspecified, Oracle supplies a default
  value
of 1024.

   
=== então com utl_file essa (estranha!!) requisição de
 ler/gravar
arquivo com linhas maiores que isso não rola, extrapola o
 limite
  da
utl_file - digo estranha porque muitas vezes nem editores de
 texto
especializados manipulam arquiivos com linhas to largas, é
incomum pra dizer o mínimo Pra essa necessidade então o
 colega
terá que escrever uma rotina EXTERNA ao PL/SQL (em C ou Java,
provavelmente) e a chamar do PL/SQL via external proc ou java
  proc.
   
[]s
   
Chiappa
   
--- Em oracle_br@yahoogrupos.com.br 
oracle_br%40yahoogrupos.com.broracle_br%
  40yahoogrupos.com.br,
Marcio Portes
portes.marcio@ escreveu

 Já verificou como está na origem. Passando os olhos no seu
  código,
não vejo
 nenhum problema.
 Voce usa o utl_file.put() que prepara a linha e não gera
 um \n
(new line).
 Mas nunca fiz um arquivo texto que tivesse mais de 32k no
 longo
  da
linha,
 não sei se é permitido no sistema opernacional.


 On 4/10/07, a_coelho59 acoelho@ wrote:
 
  Marcio, agora tenho outro problema:
  O ficheiro está completo mas, parte a linha quando atinge
  32767
  bytes e coloca o ficheiro xml mal estruturado, conforme o
  exemplo.
 
  PartsInvoiceLine type=invoice
  Part PartNu
  mber=139427 FranchiseName=OPEL IsFranchise=false/
  Quantity1/Quantity
  UnitCost31.15/UnitCost
  UnitPrice62.3/UnitPrice
  UnitListPrice62.3/UnitListPrice
  Purchase Source=Manufacturer/
  /PartsInvoiceLine
 
  Quem puder agradeço
 
  --- Em 
  oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.broracle_br%
  40yahoogrupos.com.broracle_br%
40yahoogrupos.com.br,
   
  Marcio Portes
  portes.marcio@ escreveu
  
   Voce está dentro de um looping e sabe quem está te
 jogando
  fora
não?
   Quando voce usa o dbms_lob.read, na última passagem ele
  joga o
  no_data_found
   e manda o ponteiro pra fora do looping. Faltou na sua
  lógica o
  tratamento do
   no_data_found para gravar o resto.
  
   Acho que um bom inicio seria:
  
   ...
   EXCEPTION
   when no_data_found

Re: [oracle_br] Join

2007-04-10 Por tôpico Marcio Portes
Fabio,
Se não colocar nada no relacionamento, a query retorna PRODUTO CARTESIANO.
Portanto, em sua sugestão, a segunda query vai provocar produto cartesiano,
não full outer join. Ex. se a t1 tem 10 linhas e a t2 tem 10, a segunda
query vai trazer 100 linhas (10x10). Dá para reproduzir facilmente.

ops$marcio:LX10G create table t1 as select rownum id from all_users where
rownum = 10;

Table created.

ops$marcio:LX10G create table t2 as select (rownum+5) id from all_users
where rownum = 10;

Table created.

ops$marcio:LX10G
ops$marcio:LX10G select * from t1 full outer join t2 on ( t1.id = t2.id )
order by 1;

   IDID
- -
1
2
3
4
5
6 6
7 7
8 8
9 9
   1010
 14
 13
 15
 12
 11

15 rows selected.

ops$marcio:LX10G
ops$marcio:LX10G select count(*) from t1, t2;

 COUNT(*)
-
  100

1 row selected.

ops$marcio:LX10G
ops$marcio:LX10G select * from t1, t2 where t1.id = t2.id (+)
  2  union all
  3  select * from t1, t2 where t1.id (+) = t2.id and t1.id is null
  4  order by 1
  5  /

   IDID
- -
1
2
3
4
5
6 6
7 7
8 8
9 9
   1010
 11
 12
 13
 14
 15

15 rows selected.


On 4/10/07, Fabio Santos [EMAIL PROTECTED] wrote:

   Qual a versão do oracle?

 Se for 9i, pode fazer com full outer join. Se for 8i eh so nao colocar
 nada no relacionamento

 select t1.c1, t2.c1
 from t1
 full outer join t2
 on t1.c1 = t2.c1;

 ou

 select t1.c1, t2.c1
 from t1, t2;



 -Mensagem original-
 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 Cristiano Mascarenhas da Silva
 Enviada em: segunda-feira, 9 de abril de 2007 10:00
 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Assunto: [oracle_br] Join

 Prezados, bom dia,

 Fazendo um join no oracle, não é aceito colocar o sinal (+) dos dois
 lados, exemplo:

 where
 a.campo (+) = b.campo (+)

 Então como fazemos essa consulta com outer join nas duas tabelas?

 Sds,

 Cristiano Mascarenhas da Silva

 --
 Internal Virus Database is out-of-date.
 Checked by AVG Free Edition.
 Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
 3/4/2007 12:48

 --
 Internal Virus Database is out-of-date.
 Checked by AVG Free Edition.
 Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
 3/4/2007 12:48


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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Re: Envio de uma clob com + de 32767 caracteres - OFF TOPIC

2007-04-10 Por tôpico Marcio Portes
Aqui na lista, ainda não tinha divulgado. Aquele dia foi muito engraçado...
O pior é que tudo aquilo aconteceu!! É verídico.
Obrigado pelo feedback. Abraços,

On 4/10/07, FERNANDES Marco A SOFTTEK [EMAIL PROTECTED]
wrote:

   Fala Márcio, beleza ?

 Vc já deve ter publicado isso aqui na lista mas como aproveitei
 pra vasculhar seu blog eu achei essa preciosidade !!! risos
 http://mportes.blogspot.com/2005/07/dba-de-peso.html

 Muito bom ! Acho que muitos aqui vão gostar ! risos
 Nada como encarar a vida de bom humor ! parabéns !

 Valeu pela contribuição do clob ! matou a pau !

 abraço,
 Marco.
 

 From: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br[mailto:
 oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br] On Behalf
 Of PUB: Marcio Portes
 Sent: terça-feira, 10 de abril de 2007 11:38
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Subject: Re: [oracle_br] Re: Envio de uma clob com + de 32767 caracteres -
 URGENTE

 A curiosidade matou o gato.

 Fiz o exemplo e postei no blog.
 http://mportes.blogspot.com/2007/04/dbmslob-10g.html 
 http://mportes.blogspot.com/2007/04/dbmslob-10g.html

 Funciona, mas é preciso abrir o arquivo com 'wb' senão ele continua
 limitando em 32k.

 On 4/10/07, jlchiappa [EMAIL PROTECTED] jlchiappa%40yahoo.com.brmailto:
 jlchiappa% jlchiappa%2540yahoo.com.br  wrote:
 
  Só complementando - agora, pensando mais friamente, acho que o
  put_raw vai funcionar sim : o limite existe MAS como o raw não
  adiciona nem procura por caracter eol, o cara vai poder ler a linha
  lá grandona MAS em vários pedaços de 32767 bytes, como mostrado em
  http://www.oracle-base.com/articles/9i/ExportBlob9i.php 
 http://www.oracle-base.com/articles/9i/ExportBlob9i.php , sim...
 
  []s
 
  Chiappa
  --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
  jlchiappa [EMAIL PROTECTED]
  escreveu
 
  
   Pois é, é byte pra dedéu, é um pedido incomum pra dizer o mínimo -
  e
   na verdade eu só fui nas docs pra confirmar, eu já tinha um feeling
   de que isso seria limitação (conhecendo o nosso amigo PL/SQL, que
   nada mais é do que uma série de structs C com alguns programinhas
  que
   os acessam, e sabendo que muitos desses caras foram limitados em 32
   Kb - que é o valor máximo pra vários compiladores C em ambiente 32
   bits - , eu já imaginava que devia ter esse limite Quanto à
   utl_file.put_raw, não sei se funcionaria, já que a própria chamada
   inicial obrigatória do utl_file.fopen tem o limite, é testar
  
   []s
  
   Chiappa
   --- Em oracle_br@yahoogrupos.com.br 
   oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
  Marcio Portes
   portes.marcio@ escreveu
   
Pra ser sincero, nem fui lá nos docs. ;-) Obrigado.
Nunca precisei ir tão longe com a linha, ou seja, 32k é byte pra
   dedeu.
Outra possibilidade além de rotina externa, poderia ser gravar
  isso
   em blob,
usando o put_raw. (mas é chute, não testei...)
   
On 4/10/07, jlchiappa jlchiappa@ wrote:

 Márcio, ao que eu entendi o cara quer ler/gravar arquivo
  texto
   com
 linhas maiores que 32767 bytes,né ? Aí não é limitação de SO, é
 limitação da própria UTL_FILE, o manual Oracle(r) Database
  PL/SQL
 Packages and Types Reference no capítulo sobre a UTL_FILE já
  nos
   diz
 (grifo com *s meu) :

 
 UTL_FILEFOPEN Function
 This function opens a file. You can specify the maximum line
  size
   and
 have a maximum of 50 files open simultaneously. See also
   FOPEN_NCHAR
 Function.

 Syntax

 UTL_FILE.FOPEN (
 location IN VARCHAR2,
 filename IN VARCHAR2,
 open_mode IN VARCHAR2,
 max_linesize IN BINARY_INTEGER)
 RETURN file_type;

 Parameters

 ... blablabla ...

 max_linesize Maximum number of characters for each line,
  including
 the newline character, for this file (minimum value 1, 
   maximum
 value 32767  ). If unspecified, Oracle supplies a default
   value
 of 1024.
 

 === então com utl_file essa (estranha!!) requisição de
  ler/gravar
 arquivo com linhas maiores que isso não rola, extrapola o
  limite
   da
 utl_file - digo estranha porque muitas vezes nem editores de
  texto
 especializados manipulam arquiivos com linhas to largas, é
 incomum pra dizer o mínimo Pra essa necessidade então o
  colega
 terá que escrever uma rotina EXTERNA ao PL/SQL (em C ou Java,
 provavelmente) e a chamar do PL/SQL via external proc ou java
   proc.

 []s

 Chiappa

 --- Em 
 oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com
 .broracle_br%
   40yahoogrupos.com.br,
 Marcio Portes
 portes.marcio@ escreveu
 
  Já verificou

Re: [oracle_br] Re: ERRO ao instalar o Workflow 2.6.3

2007-04-09 Por tôpico Marcio Portes
Mais um chute ae... acho que a versão do WF 2.6.3 não instala no 10gR2. Os
binários são construídos na versão 10.1.0.3
Então voce vai ter que patchear o WF. Acho que por isso que ele reclama do
Home. Mas é puro chute!!

On 4/9/07, jlchiappa [EMAIL PROTECTED] wrote:

   Não trabalho com esse produto, mas a msg parece ser BEM clara :

 Este não é um ORACLE_HOME do
 10g.

 == ou seja, vc tem na mesma máquina algum produto Oracle (banco,
 cliente, o que for), de versão INFERIOR à 10g, e o tal Workflow **
 exige ** que seja instalado numa oracle home (diretório) versão 10g,
 informe outra oracle_home em outro diretório na instalação...

 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Marcos Macedo
 [EMAIL PROTECTED] escreveu
 
  Olá pessoal, estou tentando instalar o Workflow Server Builder
 2.6.3. Só que apresenta o seguinte erro ao tentar instalar: Este
 não é um ORACLE_HOME do 10g. Interompa a instalação.
 
  Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
  PL/SQL Release 10.2.0.1.0 - Production
  CORE 10.2.0.1.0 Production
  TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
  NLSRTL Version 10.2.0.1.0 - Production
 
 
  O Universal Installer é a versão 10.1.0.2.0, Não sei se a versão do
 installer faz diferença.
 
  OBS: O Workflow Server Builder foi baixado do site da oracle.com
 
  Marcos Adriano Macedo
 
  __
  Fale com seus amigos de graça com o novo Yahoo! Messenger
  http://br.messenger.yahoo.com/
 
  [As partes desta mensagem que não continham texto foram removidas]
 

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Envio de uma clob com + de 32767 caracteres

2007-04-09 Por tôpico Marcio Portes
Voce está dentro de um looping e sabe quem está te jogando fora não?
Quando voce usa o dbms_lob.read, na última passagem ele joga o no_data_found
e manda o ponteiro pra fora do looping. Faltou na sua lógica o tratamento do
no_data_found para gravar o resto.

Acho que um bom inicio seria:

...
EXCEPTION
  when no_data_found then
utl_file.put(v_file, v_buffer);
utl_file.fflush( v_file );
utl_fclose( v_file );
END ENVIA_XML;

Eu tirei o WHEN OTHERS de propósito... evite usá-lo.
Quando tiver um tempo, dá uma lidinho em
http://mportes.blogspot.com/2005/07/boas-prticas-de-programao-when-others.html


On 4/9/07, a_coelho59 [EMAIL PROTECTED] wrote:

   Caros amigos;
 Se me puderem ajudar agradeço.
 Tenho uma Clob com mais 32767 caracteres.
 Tenho este procedure para gerar um file.
 Mas não sei como fazer o output da clob com todos os caracteres para
 o file.
 O procedimento é este, se alguem me puder ajudar agradeço:

 PROCEDURE ENVIA_XML IS
 V_DIR VARCHAR2(7) := 'http://aplfms:/dload';
 V_NOME VARCHAR2(15) := 'VD_PECAS_PQ.xml';
 V_FILE UTL_FILE.FILE_TYPE ;
 V_CLOB CLOB ;
 V_BUFFER_SIZE VARCHAR2(32767) ;
 V_BUFFER VARCHAR2(32767) ;
 V_AMOUNT BINARY_INTEGER := 32767 ;
 V_POS INTEGER := 1 ;
 BEGIN

 SELECT p.lin.getClobVal()
 INTO V_CLOB
 FROM PC_PQ_LIN_XML1 p
 WHERE p.sqfile = 1 ;

 V_FILE := UTL_FILE.fopen(V_DIR, V_NOME , 'W', V_BUFFER_SIZE);
 LOOP
 DBMS_LOB.READ(V_CLOB, V_AMOUNT, V_POS, V_BUFFER);
 UTL_FILE.put(V_FILE, V_BUFFER);
 V_POS := V_POS + V_AMOUNT;
 END LOOP;
 EXCEPTION WHEN OTHERS THEN
 DBMS_OUTPUT.put_line(SQLERRM);
 UTL_FILE.fclose(V_FILE);
 END ENVIA_XML;

 Obrigado

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Atualizar tabela com dados de outra

2007-04-07 Por tôpico Marcio Portes
Uma trigger chamando uma package, sim, seria uma opção.
Agora, é difícil opinar sem conhecer ao menos um exemplo do que é a
aplicação.

On 4/7/07, Igor Laguardia [EMAIL PROTECTED] wrote:

   Voce dize eu fazer uma trigger na tabela principal?
 Sao sistemas diferentes e não é uma tabela é uma View.

 Em 06/04/07, Marcio Portes [EMAIL PROTECTED]portes.marcio%40gmail.com
 escreveu:
 
  O processo que atualiza a primeira tabela não pode atualizar a segunda?
  Por
  que há necessidade de um processo batch para atualização? Pergunto isso,
  porque um job de 2 em 2 minutos não tem muito sentido (para este caso).
 
  On 4/6/07, Igor Laguardia [EMAIL PROTECTED] 
  igorlf%40gmail.comigorlf%40gmail.com wrote:
  
   Prezados,
  
   Quero atualizar os dados de uma tabela, com as informações de outra
   tabela.
   O cenário é que tenho uma tabela que possui praticamente os mesmos
 dados
   que
   outra, e tenho um job que de 2 em 2 min atualiza os dados de uma na
  outra.
   Eu faço de uma maneira muito lenta, atualizo registro por registro,
  porem
   as
   tabelas possuiem a chave primaria identica, eu queria fazer algo mais
   dinamico, alguem pode me ajudar?
  
   --
   [ ]'s
   Igor Laguardia
   -
   Pedras no caminho?Guardo todas, um dia vou construir um castelo.
   (Fernando Pessoa)
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
 
  --
  Marcio Portes
  Material Tecnico em Portugues - http://mportes.blogspot.com
  Practical Learning Oracle -
  http://mportes.blogspot.com/2006/02/practical-learning-oracle.html
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 --
 [ ]'s
 Igor Laguardia
 -
 Pedras no caminho?Guardo todas, um dia vou construir um castelo.
 (Fernando Pessoa)

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Duvida em Select com Index

2007-04-06 Por tôpico Marcio Portes
O que acontece é que: quando os dados são conhecidos pelo Oracle, através
das estatísticas, o otimizador, por meio de cálculos aritméticos (isso pode
ser visto com o dump 10053) decide qual a melhor forma de trazer os dados,
que é a parte mais difícil, digamos, da execução da query. Obviamente, o
otimizador conhece a ordem se seus dados através do CLUSTERING_FACTOR na
DBA_INDEXES, quanto mais próximo essa valor estiver do número de blocos,
mais organizado estão seus dados em relação a seu índice e, portanto,
menos trabalho com o ORDER BY ele vai ter.

Também comecei minha jornada na decada de 80, mas com o COBOL. A diferença
entre o Oracle e os demais bancos é a forma otimizada de realizar os
trabalhos de busca de dados. Já trabalhei com Sybase e vi bem pouco de SQL
Server, e não sei se hoje em dia eles trabalham com algo semelhante a
recuperação de dados baseado em estatística. No Sybase, havia um tal índice
clusterizado, que era mais ou menos a IOT no Oracle, que trazia os dados de
forma ordenada ao índice, entretanto, mesmo tabelas do tipo IOT do Oracle,
não garantem que a ordem seja a da primary key, depende do plano que
otimizador escolhe - é lógico que se o ORDER BY for da primary key da IOT e
somente ela estiver envolvida no SELECT, o otimizador evita o SORT ORDER BY,
porém, uma vez envolvida em uma query com outras tabelas, o otimizador volta
a fazer o SORT ORDER BY por último.

Quanto ao hint, tente descobrir, através dos planos de execução, porque voce
TEVE que hintar a query. Pode ser problema de estatística antiga, má
configuração de alguns parâmetros do CBO, como por ex.,
OPTIMIZER_INDEX_CACHING, OPTIMIZER_INDEX_COST_ADJ,
DB_FILE_MULTIBLOCK_READ_COUNT, também, se alguma tabela envolvida na sua
query não tenha estatística, o oracle usa estatística inventada e isso não
leva o otimizador a tomar a decisão correta (no default statitics, por ex.,
numero de bloco é 1, média do tamanho da linha é 100 bytes, etc), enfim,
voce precisa investigar porque teve que usar hint. E provavelmente, em uma
migração ou upgrade futuro, terá impacto com esse hint.


On 4/5/07, Arnaldo Vicente Scarin [EMAIL PROTECTED] wrote:

   Obrigado Marcio, mas gostaria de falar mais a respeito.

 Quando eu começei a trabalhar com Informática, na década de 80, utilizei
 conceitos como Banco de Dados xBase.
 Um indice servia para acelerar um pesquisa além de organizar os dados de
 acordo com a chave indicada para aquele indice. Dessa forma, quando se fazia
 uma consulta atraves de um Seek e armazenava-se o resultado, esse resultado
 estava indexado da forma com que seria necessário.

 A minha duvida paira exatamente nisso. Um banco de dados tão poderoso como
 o Oracle, utilizar um indice somente para acelerar uma consulta me parece
 uma coisa descabida, uma vez que ele guarda o timestamp da linha para
 formar a ordenação no indice, uma visualização desse table na ordem da chave
 do indice não seria nada dificil de ser feita. Nessa minha forma de análise,
 o Otimizador (desculpe a confusão com o parser) não precisaria ter o segundo
 trabalho de re-ordernar os dados, uma vez que eles já estariam na ordem
 correta.

 Não sei se outros bancos de dados trabalham da mesma forma que o Oracle,
 mas eu trabalhei com SQL-Server e se eu não me engano, ele retorna os dados
 de acordo com o Index utilizado.

 Quanto a utilização de Hint, eu fiz uma analisa atraves do Pl/Sql
 Developer, e para o mesmo select o tempo de resposta utilizando o Hint está
 cerca de 60% mais rápido do que a utilização sem ele.

 Mais uma vez obrigado,

 - Mensagem original 
 De: Marcio Portes [EMAIL PROTECTED] portes.marcio%40gmail.com
 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Enviadas: Quinta-feira, 5 de Abril de 2007 19:24:20
 Assunto: Re: [oracle_br] Duvida em Select com Index

 Arnaldo,

 Se voce quer que seu result set venha em alguma ordem, voce NECESSITA usar
 o
 ORDER BY. É obrigatório e amplamente discutido na internet, inclusive o
 Jonathan Lewis escreveu uma artigo excelente sobre esse tema.

 http://jonathanlewi s.wordpress. com/2007/ 03/05/ordering/

 Outra coisa, hint de indice não é uma boa idéia, fiz um pequeno artigo
 sobre
 índices um tempinho atrás.
 http://mportes. blogspot. com/2005/ 05/ndices- falando-livremen te.html

 No seu caso, (se estiver na versão 10g) um hint interessante para ser
 usado
 com ORDER BY seria o /*+ FIRST_ROWS(n) */ onde n é o número de linhas
 esperado para a consulta.

 Não há movimentação de parse quando o order by é usado, acho que voce quis
 dizer otimizador. O order by acontece na sua porção de memória (PGA) e,
 portanto, longe do parse. A última operação, na execução da query, é a
 ordenação.

 On 4/4/07, Arnaldo V. Scarin [EMAIL PROTECTED] com.br wrote:
 
  Boa tarde a Todos,
 
  Sou novo no grupo e não sou DBA, sou Analista de Sistemas.
 
  Hoje eu estava debatendo com outras pessoas e me disseram que um
 Select
  feito com hint (forçando o Indice) pode não retornar o ResultSet

Re: [oracle_br] Atualizar tabela com dados de outra

2007-04-06 Por tôpico Marcio Portes
O processo que atualiza a primeira tabela não pode atualizar a segunda? Por
que há necessidade de um processo batch para atualização? Pergunto isso,
porque um job de 2 em 2 minutos não tem muito sentido (para este caso).

On 4/6/07, Igor Laguardia [EMAIL PROTECTED] wrote:

   Prezados,

 Quero atualizar os dados de uma tabela, com as informações de outra
 tabela.
 O cenário é que tenho uma tabela que possui praticamente os mesmos dados
 que
 outra, e tenho um job que de 2 em 2 min atualiza os dados de uma na outra.
 Eu faço de uma maneira muito lenta, atualizo registro por registro, porem
 as
 tabelas possuiem a chave primaria identica, eu queria fazer algo mais
 dinamico, alguem pode me ajudar?

 --
 [ ]'s
 Igor Laguardia
 -
 Pedras no caminho?Guardo todas, um dia vou construir um castelo.
 (Fernando Pessoa)

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Dúvida SQL Loader

2007-04-05 Por tôpico Marcio Portes
Qual a versão do banco???

On 4/5/07, Clayton Rocha [EMAIL PROTECTED] wrote:

   Boa tarde a todos,

 Tenho um arquivo de texto mais ou menos no seguinte padrão:

 DATAINICIO DATAFIM HORAINICIO HORAFIM

 01/03/2007 10/03/2007 10:00 9:00

 01/02/2007 15/02/2007 15:00 16:30

 01/01/2007 01/03/2007 12:00 11:00

 Preciso fazer um sqlloader desse arquivo e como vou utilizar o tipo DATE
 para as datas, pensei em utilizar a própria coluna para as horas, mas para
 isso precisaria concatenar de alguma forma no processo.

 Alguém tem uma idéia de como posso fazer isso pelo loader? Pensei em algo
 do
 tipo:

 Arquivo CTL:

 APPEND

 (datainicio position((01:09)||position(xx_horainicio:yy_horainicio)) date,

 datafim position((xx_datafim:yy_datafim)||position(xx_horafim:yy_horafim))
 date)

 Alguém saberia me dizer se é possivel algo assim, ou teria uma outra
 idéia?

 Grato,

 Clayton Rocha

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Duvida em Select com Index

2007-04-05 Por tôpico Marcio Portes
Arnaldo,

Se voce quer que seu result set venha em alguma ordem, voce NECESSITA usar o
ORDER BY. É obrigatório e amplamente discutido na internet, inclusive o
Jonathan Lewis escreveu uma artigo excelente sobre esse tema.

http://jonathanlewis.wordpress.com/2007/03/05/ordering/

Outra coisa, hint de indice não é uma boa idéia, fiz um pequeno artigo sobre
índices um tempinho atrás.
http://mportes.blogspot.com/2005/05/ndices-falando-livremente.html
No seu caso, (se estiver na versão 10g) um hint interessante para ser usado
com ORDER BY seria o /*+ FIRST_ROWS(n) */ onde n é o número de linhas
esperado para a consulta.

Não há movimentação de parse quando o order by é usado, acho que voce quis
dizer otimizador. O order by acontece na sua porção de memória (PGA) e,
portanto, longe do parse. A última operação, na execução da query, é a
ordenação.

On 4/4/07, Arnaldo V. Scarin [EMAIL PROTECTED] wrote:

   Boa tarde a Todos,

 Sou novo no grupo e não sou DBA, sou Analista de Sistemas.

 Hoje eu estava debatendo com outras pessoas e me disseram que um Select
 feito com hint (forçando o Indice) pode não retornar o ResultSet em ordem
 se
 eu não usar um Order by, ou seja, se eu fizer o seguinte select:

 Select /*+ INDEX ( ENTIDADE PK_ENTIDADE4 ) */ cpfcgc, nome, apelido,
 datacadastro
 from entidade
 where cpfcgc between '2' and '2z'

 onde PK_Entidade4 é um indice somente do campo CPFCGC, poderá sair fora da
 ordem?

 A priori acho isso estranho, pois o indice (se eu não me engano o Oracle
 usa
 o formato b-tree), organiza as linhas de acordo com o campo indicado
 como
 chave do indice, e consequentemente o resultset sairia em ordem, mas em
 contra partida, se eu tenho que usar um order by eu estou forçando o
 parser do banco criar uma tabela temporaria para descarregar todos os
 resultados e depois executar um sort nesse resultset.

 Não seria um contrasenso isso?


 Obrigado,

 Arnaldo


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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] bug... help

2007-04-03 Por tôpico Marcio Portes
O que o alert diz?

On 4/2/07, zero_br_2002 [EMAIL PROTECTED] wrote:

   Uso a query abaixo para trazer os dados de venda... ela funcionava
 sem nenhum problema até eu atualizar minha versao para 10.2.0.1.0,
 uso Oracle 64 no SLes 10 x86_64. Quando executo a query ele derruba
 minha conexao.. ORA-03114 alguem ja teve esse tipo de problema? O
 pior eh q nao posso fazer downgrade...

 select decode(grouping(pr.pro_descricao),1,'Total',n.nfs_numero_nota)
 as nfs_numero_nota,
 it.mov_sequencial,
 decode(grouping(pr.pro_descricao),0,pr.pro_descricao) as
 pro_descricao,
 decode(grouping(pr.uni_codg),0,pr.uni_codg) as uni_codg,
 decode(grouping(it.mov_qtdade),0,it.mov_qtdade) as mov_qtdade,
 round(decode(grouping(decode
 (n.nfs_modulo_origem_nota,'TRANSFERENCIA',it.mov_preco_unitario,

 it.mov_preco_unitario - it.mov_desconto_unitario) / decode
 (n.nfs_modulo_origem_nota,'VENDA COLIGADA',1.10,1.25)) * 0.88) /
 0.93))),0,

 decode
 (n.nfs_modulo_origem_nota,'TRANSFERENCIA',it.mov_preco_unitario,

 it.mov_preco_unitario - it.mov_desconto_unitario) / decode
 (n.nfs_modulo_origem_nota,'VENDA COLIGADA',1.10,1.25)) * 0.88) /
 0.93))),2) as mov_custo_medio_atu,
 sum(decode(n.nfs_modulo_origem_nota,'TRANSFERENCIA',
 (it.mov_preco_unitario * it.mov_qtdade),

 ((round(it.mov_preco_unitario - it.mov_desconto_unitario) /
 decode(n.nfs_modulo_origem_nota,'VENDA COLIGADA',1.10,1.25)) *
 0.88) / 0.93),2)* it.mov_qtdade Custo_medio

 from itens_nota it,
 notas_de_saida n,
 produto pr,
 sufixo s,
 empresa e
 where it.pro_codg_interno = pr.pro_codg_interno
 and pr.suf_codg = s.suf_codg
 and it.nfs_sequencial = n.nfs_sequencial
 and it.mov_tipo_movto not in ('CM','DC','CA','RD','RO')
 and n.nfs_status in('N')
 and it.cst_codg in (select distinct t.cst_codg
 from tributacoes t
 where t.emp_codg = e.emp_codg
 and t.tri_aliq_final_subs != 0
 and t.tri_agrega_ao_total_nf = 'N')
 and n.nfs_uf != e.emp_uf
 and n.nfs_dta_emissao_nota between :DATA_INICIAL and :DATA_FINAL
 and e.emp_codg = n.emp_codg
 and e.emp_codg = :EMP_CODG
 and n.cno_codg_natureza = :CNO_CODG

 group by rollup (n.nfs_numero_nota,
 it.mov_sequencial,pr.pro_descricao,pr.uni_codg,it.mov_qtdade,decode
 (n.nfs_modulo_origem_nota,'TRANSFERENCIA',it.mov_preco_unitario,


 it.mov_preco_unitario - it.mov_desconto_unitario) / decode
 (n.nfs_modulo_origem_nota,'VENDA COLIGADA',1.10,1.25)) * 0.88) /
 0.93)))
 having (grouping(pr.uni_codg)) != 1
 and (grouping(it.mov_qtdade)) != 1
 and (grouping(pr.pro_descricao)) != 1
 and (grouping(decode
 (n.nfs_modulo_origem_nota,'TRANSFERENCIA',it.mov_preco_unitario,

 it.mov_preco_unitario - it.mov_desconto_unitario) / decode
 (n.nfs_modulo_origem_nota,'VENDA COLIGADA',1.10,1.25)) * 0.88) /
 0.93 != 1
 or ((grouping(it.mov_sequencial)) = 1)
 -- or ((grouping(n.nfs_numero_nota)) = 0)

 order by n.nfs_numero_nota

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



  1   2   3   4   5   >