[oracle_br] Re: Redução de tablespace - Oracle 8.1.7

2007-05-03 Por tôpico jlchiappa
Marcel, não tem aonde trancar, LOBs são um conceito comum no banco 
Oracle, mas se vc ainda tem dúvidas nele eu recomendaria fortemente 
um bom estudo do manual Oracle8i Application Developer's Guide - 
Large Objects (LOBs) e do Concepts, absolutamente tudo o que vc 
precisa saber sobre LOBs está lá...
 No caso em questão : primeiro vc precisa saber o que é esse segmento 
SYS_LOBnnn que vc tem, consulte a DBA_SEGMENTS :

[EMAIL PROTECTED]:SQLselect * from dba_segments where 
segment_name='SYS_LOB017499C2$$';

OWNERSEGMENT_NAME
PARTITION_NAME SEGMENT_TYPE   
TABLESPACE_NAME   HEADER_FILE   
HEADER_BLOCK  BYTES BLOCKS
EXTENTS INITIAL_EXTENTNEXT_EXTENT
MIN_EXTENTSMAX_EXTENTS   PCT_INCREASE  
FREELISTSFREELIST_GROUPS   RELATIVE_FNO BUFFER_
 --- -
- -- -- --
 -- -- --
 -- -- -- 
-- -- -- -- --
 -- ---
SCOTTSYS_LOB017499C2
$$  LOBSEGMENT 
USERS   7  
34689 163840 20  
1 163840 163840  1 
2147483645  0  1  
1  7 DEFAULT

== já que é um lob segment, vc consulta a DBA_LOBS pra saber quem é 
o dono, em qual tabela ele reside e qual é a coluna que é LOB :

[EMAIL PROTECTED]:SQLselect * from dba_lobs where 
segment_name='SYS_LOB017499C2$$';

OWNERTABLE_NAME 
COLUMN_NAMESEGMENT_NAME
INDEX_NAME  CHUNK 
PCTVERSION  RETENTION  FREEPOOLS CACHE  LOGGING 
IN_
 -- --
 --- -
- -- -- -- ---
--- -- --- ---
SCOTTTB_LOB 
C2 SYS_LOB017499C2$$   
SYS_IL017499C2$$ 8192 
10  10800NO YES YES

== ok, no meu caso era a coluna C2 da tabela TB_LOB, como vc viu na 
DBA_SEGMENTS hoje esse segmento está na tablespace USERS, vou mover :

[EMAIL PROTECTED]:SQLalter table scott.TB_LOB move lob (C2) store as 
(tablespace TS_LMT_UNIF);

Tabela alterada.

== a coluna continua existindo, normal...

[EMAIL PROTECTED]:SQLselect * from dba_lobs where 
segment_name='SYS_LOB017499C2$$';

OWNERTABLE_NAME 
COLUMN_NAMESEGMENT_NAME
INDEX_NAME  CHUNK 
PCTVERSION  RETENTION  FREEPOOLS CACHE  LOGGING 
IN_
 -- --
 --- -
- -- -- -- ---
--- -- --- ---
SCOTTTB_LOB 
C2 SYS_LOB017499C2$$   
SYS_IL017499C2$$ 8192 
10  10800NO YES YES

== mas o segmento foi pra outra tablespace :

[EMAIL PROTECTED]:SQLselect * from dba_segments where 
segment_name='SYS_LOB017499C2$$';

OWNERSEGMENT_NAME
PARTITION_NAME SEGMENT_TYPE   
TABLESPACE_NAME   HEADER_FILE   
HEADER_BLOCK  BYTES BLOCKS
EXTENTS INITIAL_EXTENTNEXT_EXTENT
MIN_EXTENTSMAX_EXTENTS   PCT_INCREASE  
FREELISTSFREELIST_GROUPS   RELATIVE_FNO BUFFER_
 --- -
- -- -- --
 -- -- --
 -- -- -- 
-- -- -- -- --
 -- ---
SCOTTSYS_LOB017499C2
$$  LOBSEGMENT 
TS_LMT_UNIF26
2651048576128  
1 

[oracle_br] Re: Recuperar tablespace

2007-05-03 Por tôpico Aleksandro
Sim, esta em archive,
A dúvida era a seguinte, se dá para voltar uma tablespace dropada. Não
tenho a intenção de voltar utilizando o RMAN.
Faltou um comando que não tinha colocado, antes de colocar em online
utilizei o recover datafile. As tabelas não voltaram.
Com isso faço uma pergunta. Na criação de uma tablespace o comando
reuse serve somente para aproveitar a configuração da tablespace que
foi apagada ?.
O que gostaria de fazer é isso mesmo que nosso colega publicou, dropar
uma tablespace, criar uma outra com o mesmo nome utilizando o mesmo
datafile, e com isso as informações voltarem para o local de origem.



--- Em oracle_br@yahoogrupos.com.br, Gustavo Venturini de Lima
[EMAIL PROTECTED] escreveu

 Vamos lá...
 Este banco está em modo ARCHIVE?
 Qual o último backup full/incremental?
 A princípio vc terá que voltar os arquivos do seu backup e de posse
de todos
 os archives desde seu último backup fazer um:
 
 RECOVER TABLESPACE XXX;
 
 E depois:
 
 ALTER TABLESPACE XXX ONLINE
 
 Vc acha mais informações no *Oracle(r) Database Backup and Recovery
Quick
 Start Guide*
 
 
 Em 02/05/07, Aleksandro [EMAIL PROTECTED] escreveu:
 
Veja se é isso :
 
  alter database datafile 'd:\oracle\producao01.dbf' offline;
 
  Depois
  ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCAO01.DBF' ONLINE;
 
  Se for só isso não rolou não.
 
  --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
  Gustavo Venturini de Lima
  gventurini@ escreveu
  
   Mas não vai voltar mesmo...
   Você tem que fazer um recover da tablespace total... com ela
offline...
  
   Em 02/05/07, Aleksandro aleksandrosouza@ escreveu:
   
Boa tarde,
Eu também fiz esse teste de criar uma tablespace, adicionar
dados e
depois dropar a tablespace mais mantando o datafile.
Quando recriei a tablespace utilizando reuse, as informações não
voltaram não.
A versão que utilizo é a 10g.
   
--- Em oracle_br@yahoogrupos.com.br
oracle_br%40yahoogrupos.com.broracle_br%40yahoog
  rupos.com.br,
 
Anderson Haertel Rodrigues
ahr@ escreveu

 Marco,

 Houve inserções/alterações no DataBase?

 Se houve, será necessária a recuperação incompleta do Banco de
  Dados do
 Banco de Dados, se não houve, não fiz o teste, mas, talvez
  funcione algo
 como:

 CREATE TABLESPACE ahr
 ADD DATAFILE 'localizacao/nome' SIZE X . REUSE;

 ou

 CREATE TABLESPACE ahr
 ADD DATAFILE 'datafilenovo' SIZE X ...
 e após, adicionar o DataFile existente a essa tablespace:
 ALTER TABLESPACE ahr
 ADD DATAFILE 'localizacao/nome' SIZE X . REUSE;

 Atenciosamente,

 Anderson Haertel Rodrigues
 Administrador de Banco de Dados
 Oracle 9i Database Administrator Certified
 Microsoft Certified Professional SQL Server 2000
 Florianópolis/SC

 - Original Message -
 From: MARCO ANTONIO marcogru@
 To: ORACLE_BR
  oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  oracle_br%40yahoogrupos.com.br

 Sent: Wednesday, July 27, 2005 12:52 PM
 Subject: [oracle_br] Recuperar tablespace


 Boa tarde a todos!

 Se uma tablespace for dropada e o datafile correspondente for
mantido em
 disco, existe alguma maneira de se recuperar (recriar) esta
  tablespace
 reutilizando e recuperando este datafile?

 Um abraço!

 Marco Antonio


 -
 Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o
discador
agora!

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



 __

 Histórico:
http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 Falar com os
 
Moderadores:([EMAIL PROTECTED]oracle_br-owner%40yahoogrupos.com.br
  oracle_br-owner%40yahoogrupos.com.br
)
 Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar
 __
 Links do Yahoo! Grupos

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





[oracle_br] Re: Importação alterando acentuação de campos VARCHAR.

2007-05-03 Por tôpico jlchiappa
Colega, já mais de uma vez foi dito isto aqui no grupo (uma das 
últimas vezes foi na msg http://www.mail-
archive.com/oracle_br@yahoogrupos.com.br/msg16393.html ), mas o fato 
é : as variáveis NLS do banco , que controlam Globalização (tal como 
NLS_LANG, que é a principal) são  DEFAULTs, ie, só entram em ação SE 
e APENAS SE o cliente não especifica nada, o comportamento que vc 
relata indica totalmente que ou vc não tem o default do banco setado 
ou (o mais provábvel) o teu cliente (import no caso) TEM SIM NLSs 
setadas mas estão erradas Como o import é um programa de linha de 
comando, eu diria pra vc setar as variáveis de NLS como variáveis de 
ambiente, via .profile ou similar se for unix-like, via SET se for 
windows o SO do teu cliente. Dá uma lida mo teu manual de 
Globalization que vc acha as refs apropriadas.

[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, Bia Fitzgerald [EMAIL PROTECTED] 
escreveu

 Senhores,
 
 Quando faço uma importação de tabelas com coluna VARCHAR2, perco 
todas as acentuações dos dados. Tipo Atenção vira aten~cao. 
Alguém sabe o motivo?
 
 Obrigada,
 Bia.
 
 __
 Fale com seus amigos  de graça com o novo Yahoo! Messenger 
 http://br.messenger.yahoo.com/ 
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: RES: [oracle_br] Calculo volumetrico

2007-05-03 Por tôpico jlchiappa
Ajudaria bastante se o colega lá q perguntou definisse EXATAMENTE o 
que ele quer com esse cálculo volumétrico : ele quer saber o espaço 
ocupado por um objeto hoje ??? Quer calcular o espaço necessário pro 
futuro próximo ?? Ou o que ??? 
 dependendo do que for, respostas diferentes terão que ser 
aplicadas...

[]s

 Chiappa
--- Em oracle_br@yahoogrupos.com.br, Rafael Milanez [EMAIL PROTECTED] 
escreveu

 Talvez isso te ajude
 
  
 
 http://www.psoug.org/reference/dbms_space.html
 
  
 
  
 
 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] Em nome de Marcos Pereira - 
Confederação SICREDI
 Enviada em: quarta-feira, 2 de maio de 2007 17:03
 Para: oracle_br@yahoogrupos.com.br
 Assunto: [oracle_br] Calculo volumetrico
 
  
 
 
 Boa tarde Senhores,
 
 Necessito realizar o calculo volumétrico do Banco de dados , me foi 
dado
 como auxilio para utilizar package DBMS_SPACE , alguém poderia me 
ajudar?
 
 Obrigado
 
 Marcos Pereira
 Administração de Dados  Objetos
 Confederação SICREDI - Porto Alegre
 Fone: (51) 3358-4700 - Ramal: 6179
 www.sicredi.com.br
 
 As informacoes contidas neste e-mail e nos arquivos anexados podem 
ser informacoes confidenciais ou privilegiadas. Caso voce nao seja o 
destinatario correto, apague o conteudo desta mensagem e notifique o 
remetente imediatamente.
 
 [As partes desta mensagem que não continham texto foram removidas]
 
  
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]





RES: RES: [oracle_br] Calculo volumetrico

2007-05-03 Por tôpico Marcos Pereira - Confederação SICREDI

O usuário operador da ferramenta irá informar para cada tabela:
Número estimado de linhas iniciais
Taxa de crescimento esperada por ano
Tempo de retenção dos dados em anos
Para cada coluna:
*   Se for o caso, o tamanho médio estimado desta coluna 
para as linhas da
tabela
*   Se for o caso, o percentual de linhas com NULL

Ao serem informados estes dados , terei que realizar o calculo volumétrico
em cima da tabela.

Espero ter melhorado minha pergunta .

Obrigado.

---

Ajudaria bastante se o colega lá q perguntou definisse EXATAMENTE o
que ele quer com esse cálculo volumétrico : ele quer saber o espaço
ocupado por um objeto hoje ??? Quer calcular o espaço necessário pro
futuro próximo ?? Ou o que ???
dependendo do que for, respostas diferentes terão que ser
aplicadas...

[]s

Chiappa
--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
, Rafael Milanez [EMAIL PROTECTED]
escreveu

 Talvez isso te ajude



 http://www.psoug.org/reference/dbms_space.html
http://www.psoug.org/reference/dbms_space.html





 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
[mailto: oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br ] Em nome de Marcos Pereira -
Confederação SICREDI
 Enviada em: quarta-feira, 2 de maio de 2007 17:03
 Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
 Assunto: [oracle_br] Calculo volumetrico




 Boa tarde Senhores,

 Necessito realizar o calculo volumétrico do Banco de dados , me foi
dado
 como auxilio para utilizar package DBMS_SPACE , alguém poderia me
ajudar?

 Obrigado

 Marcos Pereira
 Administração de Dados  Objetos
 Confederação SICREDI - Porto Alegre
 Fone: (51) 3358-4700 - Ramal: 6179
 www.sicredi.com.br

 As informacoes contidas neste e-mail e nos arquivos anexados podem
ser informacoes confidenciais ou privilegiadas. Caso voce nao seja o
destinatario correto, apague o conteudo desta mensagem e notifique o
remetente imediatamente.

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





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




As informacoes contidas neste e-mail e nos arquivos anexados podem ser 
informacoes confidenciais ou privilegiadas. Caso voce nao seja o destinatario 
correto, apague o conteudo desta mensagem e notifique o remetente imediatamente.

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



[oracle_br] Script para monitorar index...

2007-05-03 Por tôpico Luciano Lacerda
*Bom dia a todos.*
* Estou querendo saber se existe algum script que monitore a utilização de
todos os indices de um determinado OWNER.*
*Onde eu crio uma tabela em meu banco para ter os seguintes dados do indice,
quantidade de utilização em um determinado período. (dia, hora, etc.).*
**
*Obs: Banco de dados Oracle 9.2.0.1.0*

-- 
Luciano Lacerda
ORACLE DBA/ATG
[EMAIL PROTECTED]
[EMAIL PROTECTED]


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



[oracle_br] Re: Problemas na formatação

2007-05-03 Por tôpico jlchiappa
Por partes aí : PRIMEIRO DE TUDO, nós todos (imagino) aprendemos a 
duras penas que pra se definir um ano corretamente, sem chance de 
falhas, nós TEMOS QUE TER 4 dígitos, sem choro nem vela - o rr usa um 
algoritmo que nem sempre é infalível. Por exemplo, suponha que a data 
seja uma data de nascimento, como o meu pai que nasceu em 1949, se 
fosse entrado com rr no seu sitema olha lá o que teríamos :

[EMAIL PROTECTED]:SQLselect to_char(to_date
('23/06/49', 'dd/mm/rr'), 'dd/mm/ hh24:mi:ss') from dual;

TO_CHAR(TO_DATE('23
---
23/06/2049 00:00:00

coitada, a pessoa só vai nascer NO FUTURO!!! É de dar nó na cuca, e 
ele já me mostrou umas tantas quantas correspondências enviadas por 
mala direta assim, é de doer, não faça isso please...

Ponto principal : já foi dito algumas vezes e repito agora, as 
variáveis NLS_xx que vc seta no banco (incluindo NLS_DATE_FORMAT) , 
** NÂO SÃO ** coisa nenhuma padrão, elas são DEFAULTs, e como 
todo e qquer default só entram em açao SE e APENAS SE não é fornecido 
nenhum valor... No banco Oracle, quem MANDA em configs de 
globalização (seja pra EXIBIR, seja pra GRAVAR) é SEMPRE O CLIENTE, 
os valores do banco só são usados se o cliente não passar nada...
 Pelo jeito que vc diz, na máquina de desenvolvimento OU não foi 
fornecido nada para NLS (e aí  o default do banco é acionado) ou em 
desenv as vars NLS estão setadas corretamente, e em produção não 
A recomendação é uma só portanto, CONFIGURE CORRETAMENTE AS VARS 
NLS_xx OS SEUS CLIENTES, é isso. No seu caso em especial, iirc o .net 
aciona o banco via driver .net, e esse driver é incapaz de o fazer 
diretamente, ele PRECISA que o software client Oracle esteja 
presente, então vc terá que configurar o client Oracle no mínimo - 
como não desenvolvo em .net, não sei se além disso há config no 
driver e no ambiente...
 
 Complemento : quando se fala de datas, eu sempre, totalmente, 
absolutamente, RECOMENDO QUE vc  NUNCA CONFIE em settings, e sempre 
forneça exatamente o formato que vc quer - assim, se hoje vc tem no 
seu programa uma variável string V_DATA com o valor '01/12/2007' 
digamos, hoje vc deve estar fazendo na aplicação algo tipo :
 
 INSERT INTO nomedatabela (..., colunatipoDATE)  VALUES(..., 
v_data)
 
 ou seja, vc CONFIA no nls_date, é prática assegurada de programação 
DEFENSIVA vc codificar :
 
 INSERT INTO nomedatabela (..., colunatipoDATE)  VALUES(..., 
TO_DATE(v_data, 'dd/mm/') )
 
 yes  
 
 []s
 
  Chiappa
  
--- Em oracle_br@yahoogrupos.com.br, Carlos Henrique Correa 
[EMAIL PROTECTED] escreveu

 Boa tarde, estamos com uma dúvida que já procuramos na net e não 
encontrmos ainda uma solução completa.

   Temos uma aplicação .Net que rodando via micro de desenvovlimento 
nos conseguimos gravar os dados em uma tabela específica normalmente, 
mas quando publicamos a aplicação no servidor de aplicações e fazemos 
o teste, recebemos uma mensagem de erro no formato da data dizendo 
que o mês está inválido. Nossa dúvida é ao rodar a aplicação da 
máquina de desenvovlimento conseguimos gravar a data e do servidor de 
aplicação não conseguimos??? Já verificamos os formatos de data no 
banco e estão configurados para o padrão DD/MM/RR e mesmo assim não 
conseguimos gravar os dados do servidor de aplicação.

   Dados do Ambiente:

   Serv. Aplicação
   win 2003 + Cliente Oracle 10.2.0.1

   Serv. Desenvolvimento:
win XP + Cliente Oracle 10.2.0.1

   Serv. Banco:
   Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Prod
 PL/SQL Release 10.1.0.2.0 - Production
 CORE10.1.0.2.0  Production
 TNS for 32-bit Windows: Version 10.1.0.2.0 - Production
 NLSRTL Version 10.1.0.2.0 - Production
   Oracle Linux

   Atenciosamente,

   Carlos Henrique
   Prefeitura de Resende
 
  __
 Fale com seus amigos  de graça com o novo Yahoo! Messenger 
 http://br.messenger.yahoo.com/ 
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: RES: RES: [oracle_br] Calculo volumetrico

2007-05-03 Por tôpico jlchiappa
OK, vc quer estimar o futuro : de forma alguma isso estava claro na 
expressão cálculo volumétrico... Muito bem, o bd Oracle sempre 
armazena as linhas duma tabela em blocos Oracle, e quantas linhas 
caberão por bloco não depende só das características das colunas, ele 
depende  também FUNDAMENTALMENTE das cláusulas de STORAGE, tal como 
PCTFREE, PCTUSED, FREELISTs, FREELIST GROUPS E é claro, o bd 
Oracle aloca espaço em disco POR EXTENTs, assim se um dado objeto tem 
initail extent de 10 Mb (digamos), ele SEMPRE ocupará no mínimo 10 Mb 
ainda que vazio de dados. E não nos esqueçamos que a tabela PODE 
TER ÍNDICES, pode ter partições, pode ter LOBs, esses caras todos 
ocupam espaço, também. Há MONTES de planilhas e textos pelaí na net 
que tentam estimar isso só baseado na info das colunas, mas TODOAS AS 
QUE VI ATÉ HOJE erram muito muito feio, por não preverem essas coisas 
todas que citei...
  Por causa disso tudo, imho a melhor e mais precisa maneira de 
estimar a alocação futura é CRIAR mesmo a tal tabela fisicamente, com 
o storage que ele terá, com o extent size real, o tipo de tablespace 
que será mesmo usado (normalmente LMT), as constraints e índices que 
ela ira ter mesmo, E inserir dados (dinamicamente, em modo 
programado),  numa quantidade razoável de acordo com as 
especificações (ie, respeitando o tamanho médio de cada coluna, 
nulls, etc) , analisar com DBMS_SPACE e fazer a regra de três : se 
para x linhas ocupou n bytes, para o total desejado ocupará y bytes.
  
  
  []s
  
   Chiappa
   
--- Em oracle_br@yahoogrupos.com.br, Marcos Pereira - Confederação 
SICREDI [EMAIL PROTECTED] escreveu

 
 O usuário operador da ferramenta irá informar para cada tabela:
 Número estimado de linhas iniciais
 Taxa de crescimento esperada por ano
 Tempo de retenção dos dados em anos
 Para cada coluna:
   *   Se for o caso, o tamanho médio estimado desta 
coluna para as linhas da
 tabela
   *   Se for o caso, o percentual de linhas com NULL
 
 Ao serem informados estes dados , terei que realizar o calculo 
volumétrico
 em cima da tabela.
 
 Espero ter melhorado minha pergunta .
 
 Obrigado.
 
 ---
 
 Ajudaria bastante se o colega lá q perguntou definisse EXATAMENTE o
 que ele quer com esse cálculo volumétrico : ele quer saber o 
espaço
 ocupado por um objeto hoje ??? Quer calcular o espaço necessário pro
 futuro próximo ?? Ou o que ???
 dependendo do que for, respostas diferentes terão que ser
 aplicadas...
 
 []s
 
 Chiappa
 --- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br
 , Rafael Milanez rmilanez@
 escreveu
 
  Talvez isso te ajude
 
 
 
  http://www.psoug.org/reference/dbms_space.html
 http://www.psoug.org/reference/dbms_space.html
 
 
 
 
 
  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br
 [mailto: oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br ] Em nome de Marcos 
Pereira -
 Confederação SICREDI
  Enviada em: quarta-feira, 2 de maio de 2007 17:03
  Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br
  Assunto: [oracle_br] Calculo volumetrico
 
 
 
 
  Boa tarde Senhores,
 
  Necessito realizar o calculo volumétrico do Banco de dados , me 
foi
 dado
  como auxilio para utilizar package DBMS_SPACE , alguém poderia me
 ajudar?
 
  Obrigado
 
  Marcos Pereira
  Administração de Dados  Objetos
  Confederação SICREDI - Porto Alegre
  Fone: (51) 3358-4700 - Ramal: 6179
  www.sicredi.com.br
 
  As informacoes contidas neste e-mail e nos arquivos anexados podem
 ser informacoes confidenciais ou privilegiadas. Caso voce nao seja o
 destinatario correto, apague o conteudo desta mensagem e notifique o
 remetente imediatamente.
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 As informacoes contidas neste e-mail e nos arquivos anexados podem 
ser informacoes confidenciais ou privilegiadas. Caso voce nao seja o 
destinatario correto, apague o conteudo desta mensagem e notifique o 
remetente imediatamente.
 
 [As partes desta mensagem que não continham texto foram removidas]





RES: RES: RES: [oracle_br] Calculo volumetrico

2007-05-03 Por tôpico Marcos Pereira - Confederação SICREDI

Ok , muito obrigado , vou tentar novamente.
Valeu



-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
nome de jlchiappa
Enviada em: quinta-feira, 3 de maio de 2007 09:16
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: RES: [oracle_br] Calculo volumetrico

OK, vc quer estimar o futuro : de forma alguma isso estava claro na
expressão cálculo volumétrico... Muito bem, o bd Oracle sempre
armazena as linhas duma tabela em blocos Oracle, e quantas linhas
caberão por bloco não depende só das características das colunas, ele
depende também FUNDAMENTALMENTE das cláusulas de STORAGE, tal como
PCTFREE, PCTUSED, FREELISTs, FREELIST GROUPS E é claro, o bd
Oracle aloca espaço em disco POR EXTENTs, assim se um dado objeto tem
initail extent de 10 Mb (digamos), ele SEMPRE ocupará no mínimo 10 Mb
ainda que vazio de dados. E não nos esqueçamos que a tabela PODE
TER ÍNDICES, pode ter partições, pode ter LOBs, esses caras todos
ocupam espaço, também. Há MONTES de planilhas e textos pelaí na net
que tentam estimar isso só baseado na info das colunas, mas TODOAS AS
QUE VI ATÉ HOJE erram muito muito feio, por não preverem essas coisas
todas que citei...
Por causa disso tudo, imho a melhor e mais precisa maneira de
estimar a alocação futura é CRIAR mesmo a tal tabela fisicamente, com
o storage que ele terá, com o extent size real, o tipo de tablespace
que será mesmo usado (normalmente LMT), as constraints e índices que
ela ira ter mesmo, E inserir dados (dinamicamente, em modo
programado), numa quantidade razoável de acordo com as
especificações (ie, respeitando o tamanho médio de cada coluna,
nulls, etc) , analisar com DBMS_SPACE e fazer a regra de três : se
para x linhas ocupou n bytes, para o total desejado ocupará y bytes.


[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
, Marcos Pereira - Confederação
SICREDI [EMAIL PROTECTED] escreveu


 O usuário operador da ferramenta irá informar para cada tabela:
 Número estimado de linhas iniciais
 Taxa de crescimento esperada por ano
 Tempo de retenção dos dados em anos
 Para cada coluna:
 * Se for o caso, o tamanho médio estimado desta
coluna para as linhas da
 tabela
 * Se for o caso, o percentual de linhas com NULL

 Ao serem informados estes dados , terei que realizar o calculo
volumétrico
 em cima da tabela.

 Espero ter melhorado minha pergunta .

 Obrigado.

 ---

 Ajudaria bastante se o colega lá q perguntou definisse EXATAMENTE o
 que ele quer com esse cálculo volumétrico : ele quer saber o
espaço
 ocupado por um objeto hoje ??? Quer calcular o espaço necessário pro
 futuro próximo ?? Ou o que ???
 dependendo do que for, respostas diferentes terão que ser
 aplicadas...

 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
40yahoogrupos.com.br
 , Rafael Milanez rmilanez@
 escreveu
 
  Talvez isso te ajude
 
 
 
  http://www.psoug.org/reference/dbms_space.html
http://www.psoug.org/reference/dbms_space.html
  http://www.psoug.org/reference/dbms_space.html
http://www.psoug.org/reference/dbms_space.html 
 
 
 
 
 
  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
mailto:oracle_br%
40yahoogrupos.com.br
 [mailto: oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br ] Em nome de Marcos
Pereira -
 Confederação SICREDI
  Enviada em: quarta-feira, 2 de maio de 2007 17:03
  Para: oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
40yahoogrupos.com.br
  Assunto: [oracle_br] Calculo volumetrico
 
 
 
 
  Boa tarde Senhores,
 
  Necessito realizar o calculo volumétrico do Banco de dados , me
foi
 dado
  como auxilio para utilizar package DBMS_SPACE , alguém poderia me
 ajudar?
 
  Obrigado
 
  Marcos Pereira
  Administração de Dados  Objetos
  Confederação SICREDI - Porto Alegre
  Fone: (51) 3358-4700 - Ramal: 6179
  www.sicredi.com.br
 
  As informacoes contidas neste e-mail e nos arquivos anexados podem
 ser informacoes confidenciais ou privilegiadas. Caso voce nao seja o
 destinatario correto, apague o conteudo desta mensagem e notifique o
 remetente imediatamente.
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 



 As informacoes contidas neste e-mail e nos arquivos anexados podem
ser informacoes confidenciais ou privilegiadas. Caso voce nao seja o
destinatario correto, apague o conteudo desta mensagem e notifique o
remetente imediatamente.

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




As informacoes contidas neste e-mail e nos arquivos anexados podem ser 
informacoes confidenciais ou privilegiadas. Caso voce nao seja o destinatario 
correto, apague o conteudo desta mensagem e notifique o remetente imediatamente.

[As partes 

[oracle_br] HCheck Version 8i/1.2

2007-05-03 Por tôpico antonio galery
Srs., estou com o seguinte problema abaixo :

HCheck Version 8i/1.29
Problem:  SUM$ entry missing for container table
TAB$ OBJ#=6580 ADMCIT.SNAP$_ALOCAC_CARTAO_RES01
TAB$ OBJ#=225986 ADMCIT.SNAP$_AUTORIZACOES77
TAB$ OBJ#=679113 ADMCIT.CARTOES_SEM_PEDIDO_CAB_SITE

Estou com um chamado aberto na Oracle mas gostaria de conhecer as experiências 
de quem passou pelo problema. Com certeza se eu fizer um export e import o 
problema existente desaparecerá mas o importante é a causa pois, em uma 
observação anterior existia uma mview nesta situação que foi corrigido com 
export/drop/import. Após este fato e continuando a monitorar me surgiram as 
mviews registradas acima, portanto, a pergunta é : o que está causando isto ? 
Analisando a package o trecho onde esta inconsistência no DD é encontrado é o 
seguinte :

procedure MissingSum$ is
   Cursor cBad is
 select t.obj#,o.owner#,o.name
  from tab$ t, obj$ o, sum$ s
 where bitand(t.flags,262144)=262144  /* Container table */
   and o.obj#=t.obj#
   and s.containerobj#(+)=t.obj#
and s.containerobj# is null
 ;
   tag varchar2(80):=chr(10)||
 'Problem:  SUM$ entry missing for container table';
  Begin
   for R in cBad
   loop
 if (tag is not null) then hout.put_line(tag); tag:=null; end if;
 hout.put_line(' TAB$ OBJ#='||R.OBJ#||' '||Owner(R.owner#)||'.'||R.name);
 Fatal:=Fatal+1;
   end loop;
  End;
 
A versão do BD é 9.2.0.7. Nota Oracle sobre a package 136697.1
Agradeço a ajuda.

Galery.

__
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]



[oracle_br] Criar Job - Oracle 9i

2007-05-03 Por tôpico Miguel Alessandro May
Bom dia pessoal.

 

Gostaria de saber como faço para criar um job no banco de dados para rodar
de hora em hora.

 

Aguardo.

 

Obrigado.

 

Atenciosamente,

 

Miguel Alessandro May

Analista de Suporte

Gestão de Sistemas e Informações

 

Marcegaglia do Brasil Ltda.

 mailto:[EMAIL PROTECTED] [EMAIL PROTECTED]

Tel.: (47) 3431 64 67 / Fax: 3431 64 44

Visite nosso site:  http://www.marcegaglia.com.br/ www.marcegaglia.com.br

 

As informações contidas neste e-mail e os eventuais documentos anexos podem
conter informações confidenciais, destinados somente para a(s) pessoa(s) a
quem é dirigida. Caso você a tenha recebido por engano, informamos que a sua
divulgação, utilização, reprodução ou distribuição deste e-mail é
estritamente proibida, por favor, notifique o remetente e elimine a mensagem
original.

Todas as opiniões e declarações destinadas a entidades externas a esta
empresa, somente serão consideradas oficiais quando efetivamente confirmadas
por escrito por um representante legal desta empresa. Obrigado.

 

Le informazioni contenute in questa comunicazione e gli eventuali documenti
allegati hanno carattere confidenziale, sono tutelate dal segreto
professionale e sono ad uso esclusivo del destinatario. Nel caso questa
comunicazione Vi sia pervenuta per errore, Vi informiamo che la sua
diffusione e riproduzione è contraria alla legge e preghiamo di darci
prontamente avviso e di cancellare quanto ricevuto.

Tutte le opinioni e declarazioni destinate a entità esterne a questa
impresa, sarano considerate officiali soltanto quando effetivamente
confirmate per scritto da un rappresentante legale di questa impresa.
Grazie.

 

This e-mail message and any files transmitted attached may contain
confidential information intended only for the person(s) to whom it is
addressed. If you are not the intended recipient, you are hereby notified
that any use or distribution of this e-mail is strictly prohibited: please
notify the sender and delete the original message. 

 

All opinions and statements, directed to firms, people or companies outside
this organization, will be considered official when they are effectively
confirmed in writing by any legal representative of our organization. Thank
you.

 

 

 

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Marcos Pereira - Confederação SICREDI
Enviada em: quinta-feira, 3 de maio de 2007 09:28
Para: oracle_br@yahoogrupos.com.br
Assunto: RES: RES: RES: [oracle_br] Calculo volumetrico

 


Ok , muito obrigado , vou tentar novamente.
Valeu

-Mensagem original-
De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
[mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
]Em
nome de jlchiappa
Enviada em: quinta-feira, 3 de maio de 2007 09:16
Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
Assunto: Re: RES: RES: [oracle_br] Calculo volumetrico

OK, vc quer estimar o futuro : de forma alguma isso estava claro na
expressão cálculo volumétrico... Muito bem, o bd Oracle sempre
armazena as linhas duma tabela em blocos Oracle, e quantas linhas
caberão por bloco não depende só das características das colunas, ele
depende também FUNDAMENTALMENTE das cláusulas de STORAGE, tal como
PCTFREE, PCTUSED, FREELISTs, FREELIST GROUPS E é claro, o bd
Oracle aloca espaço em disco POR EXTENTs, assim se um dado objeto tem
initail extent de 10 Mb (digamos), ele SEMPRE ocupará no mínimo 10 Mb
ainda que vazio de dados. E não nos esqueçamos que a tabela PODE
TER ÍNDICES, pode ter partições, pode ter LOBs, esses caras todos
ocupam espaço, também. Há MONTES de planilhas e textos pelaí na net
que tentam estimar isso só baseado na info das colunas, mas TODOAS AS
QUE VI ATÉ HOJE erram muito muito feio, por não preverem essas coisas
todas que citei...
Por causa disso tudo, imho a melhor e mais precisa maneira de
estimar a alocação futura é CRIAR mesmo a tal tabela fisicamente, com
o storage que ele terá, com o extent size real, o tipo de tablespace
que será mesmo usado (normalmente LMT), as constraints e índices que
ela ira ter mesmo, E inserir dados (dinamicamente, em modo
programado), numa quantidade razoável de acordo com as
especificações (ie, respeitando o tamanho médio de cada coluna,
nulls, etc) , analisar com DBMS_SPACE e fazer a regra de três : se
para x linhas ocupou n bytes, para o total desejado ocupará y bytes.

[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br
, Marcos Pereira - Confederação
SICREDI [EMAIL PROTECTED] escreveu


 O usuário operador da ferramenta irá informar para cada tabela:
 Número estimado de linhas iniciais
 Taxa de crescimento esperada por ano
 Tempo de retenção dos dados em anos
 Para cada coluna:
 * Se for o caso, o tamanho médio estimado desta
coluna para as linhas da
 tabela
 * Se for o caso, o percentual de linhas com NULL

 Ao serem informados estes dados , terei que realizar o calculo

Re: [oracle_br] Criar Job - Oracle 9i

2007-05-03 Por tôpico Rafael Alexandre Schmitt
Olá,

Acredito que você possa usar a dbms_job.submit para isso.

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

  - Original Message - 
  From: Miguel Alessandro May 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 9:39 AM
  Subject: [oracle_br] Criar Job - Oracle 9i


  Bom dia pessoal.

  Gostaria de saber como faço para criar um job no banco de dados para rodar
  de hora em hora.

  Aguardo.

  Obrigado.

  Atenciosamente,

  Miguel Alessandro May

  Analista de Suporte

  Gestão de Sistemas e Informações

  Marcegaglia do Brasil Ltda.

  mailto:[EMAIL PROTECTED] [EMAIL PROTECTED]

  Tel.: (47) 3431 64 67 / Fax: 3431 64 44

  Visite nosso site: http://www.marcegaglia.com.br/ www.marcegaglia.com.br

  As informações contidas neste e-mail e os eventuais documentos anexos podem
  conter informações confidenciais, destinados somente para a(s) pessoa(s) a
  quem é dirigida. Caso você a tenha recebido por engano, informamos que a sua
  divulgação, utilização, reprodução ou distribuição deste e-mail é
  estritamente proibida, por favor, notifique o remetente e elimine a mensagem
  original.

  Todas as opiniões e declarações destinadas a entidades externas a esta
  empresa, somente serão consideradas oficiais quando efetivamente confirmadas
  por escrito por um representante legal desta empresa. Obrigado.

  Le informazioni contenute in questa comunicazione e gli eventuali documenti
  allegati hanno carattere confidenziale, sono tutelate dal segreto
  professionale e sono ad uso esclusivo del destinatario. Nel caso questa
  comunicazione Vi sia pervenuta per errore, Vi informiamo che la sua
  diffusione e riproduzione è contraria alla legge e preghiamo di darci
  prontamente avviso e di cancellare quanto ricevuto.

  Tutte le opinioni e declarazioni destinate a entità esterne a questa
  impresa, sarano considerate officiali soltanto quando effetivamente
  confirmate per scritto da un rappresentante legale di questa impresa.
  Grazie.

  This e-mail message and any files transmitted attached may contain
  confidential information intended only for the person(s) to whom it is
  addressed. If you are not the intended recipient, you are hereby notified
  that any use or distribution of this e-mail is strictly prohibited: please
  notify the sender and delete the original message. 

  All opinions and statements, directed to firms, people or companies outside
  this organization, will be considered official when they are effectively
  confirmed in writing by any legal representative of our organization. Thank
  you.

  De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
  nome de Marcos Pereira - Confederação SICREDI
  Enviada em: quinta-feira, 3 de maio de 2007 09:28
  Para: oracle_br@yahoogrupos.com.br
  Assunto: RES: RES: RES: [oracle_br] Calculo volumetrico

  Ok , muito obrigado , vou tentar novamente.
  Valeu

  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
  [mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
  ]Em
  nome de jlchiappa
  Enviada em: quinta-feira, 3 de maio de 2007 09:16
  Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
  Assunto: Re: RES: RES: [oracle_br] Calculo volumetrico

  OK, vc quer estimar o futuro : de forma alguma isso estava claro na
  expressão cálculo volumétrico... Muito bem, o bd Oracle sempre
  armazena as linhas duma tabela em blocos Oracle, e quantas linhas
  caberão por bloco não depende só das características das colunas, ele
  depende também FUNDAMENTALMENTE das cláusulas de STORAGE, tal como
  PCTFREE, PCTUSED, FREELISTs, FREELIST GROUPS E é claro, o bd
  Oracle aloca espaço em disco POR EXTENTs, assim se um dado objeto tem
  initail extent de 10 Mb (digamos), ele SEMPRE ocupará no mínimo 10 Mb
  ainda que vazio de dados. E não nos esqueçamos que a tabela PODE
  TER ÍNDICES, pode ter partições, pode ter LOBs, esses caras todos
  ocupam espaço, também. Há MONTES de planilhas e textos pelaí na net
  que tentam estimar isso só baseado na info das colunas, mas TODOAS AS
  QUE VI ATÉ HOJE erram muito muito feio, por não preverem essas coisas
  todas que citei...
  Por causa disso tudo, imho a melhor e mais precisa maneira de
  estimar a alocação futura é CRIAR mesmo a tal tabela fisicamente, com
  o storage que ele terá, com o extent size real, o tipo de tablespace
  que será mesmo usado (normalmente LMT), as constraints e índices que
  ela ira ter mesmo, E inserir dados (dinamicamente, em modo
  programado), numa quantidade razoável de acordo com as
  especificações (ie, respeitando o tamanho médio de cada coluna,
  nulls, etc) , analisar com DBMS_SPACE e fazer a regra de três : se
  para x linhas ocupou n bytes, para o total desejado ocupará y bytes.

  []s

  Chiappa

  --- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
  

Re: [oracle_br] Re: Recuperar tablespace

2007-05-03 Por tôpico Gustavo Venturini de Lima
Vamos por partes...
Está havendo uma confusão de conceitos aqui...
O REUSE NÃO é uma forma de salvar ou recuperar o que estava num
datafile... Ele apenas serve para que SE no caso de existir o arquivo no
local onde deseja criar este novo datafile, o mesmo será SOBRESCRITO! e não
RE-LIDO ok???
Então, é impossível que vc faça o que está querendo... Criar uma tablespace
nova e esperar que o Oracle advinhe o que estava dentro de um datafile.
Como dito no capítulo de Managing Datafiles and Tempfiles do Administrator
Guide de sua documentação:
If you add new datafiles to a tablespace and do not fully specify the
filenames, the database creates the datafiles in the default database
directory or the current directory, depending upon your operating system.
Oracle recommends you always specify a fully qualified name for a datafile.
Unless you want to reuse existing files, make sure the new filenames do not
conflict with other files. Old files that have been previously dropped will
be overwritten.
Não tem como vc voltar uma tablespace dropada sem ser via alguma metodologia
de backup... Ou via RMAN ou via begin backup, etc...


Em 03/05/07, Aleksandro [EMAIL PROTECTED] escreveu:

   Sim, esta em archive,
 A dúvida era a seguinte, se dá para voltar uma tablespace dropada. Não
 tenho a intenção de voltar utilizando o RMAN.
 Faltou um comando que não tinha colocado, antes de colocar em online
 utilizei o recover datafile. As tabelas não voltaram.
 Com isso faço uma pergunta. Na criação de uma tablespace o comando
 reuse serve somente para aproveitar a configuração da tablespace que
 foi apagada ?.
 O que gostaria de fazer é isso mesmo que nosso colega publicou, dropar
 uma tablespace, criar uma outra com o mesmo nome utilizando o mesmo
 datafile, e com isso as informações voltarem para o local de origem.

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Gustavo Venturini de Lima
 [EMAIL PROTECTED] escreveu
 
  Vamos lá...
  Este banco está em modo ARCHIVE?
  Qual o último backup full/incremental?
  A princípio vc terá que voltar os arquivos do seu backup e de posse
 de todos
  os archives desde seu último backup fazer um:
 
  RECOVER TABLESPACE XXX;
 
  E depois:
 
  ALTER TABLESPACE XXX ONLINE
 
  Vc acha mais informações no *Oracle(r) Database Backup and Recovery
 Quick
  Start Guide*
 
 
  Em 02/05/07, Aleksandro [EMAIL PROTECTED] escreveu:
  
   Veja se é isso :
  
   alter database datafile 'd:\oracle\producao01.dbf' offline;
  
   Depois
   ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCAO01.DBF' ONLINE;
  
   Se for só isso não rolou não.
  
   --- Em oracle_br@yahoogrupos.com.br 
   oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.br,
   Gustavo Venturini de Lima
   gventurini@ escreveu
   
Mas não vai voltar mesmo...
Você tem que fazer um recover da tablespace total... com ela
 offline...
   
Em 02/05/07, Aleksandro aleksandrosouza@ escreveu:

 Boa tarde,
 Eu também fiz esse teste de criar uma tablespace, adicionar
 dados e
 depois dropar a tablespace mais mantando o datafile.
 Quando recriei a tablespace utilizando reuse, as informações não
 voltaram não.
 A versão que utilizo é a 10g.

 --- Em oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.br
 oracle_br%40yahoogrupos.com.broracle_br%40yahoog

   rupos.com.br,
  
 Anderson Haertel Rodrigues
 ahr@ escreveu
 
  Marco,
 
  Houve inserções/alterações no DataBase?
 
  Se houve, será necessária a recuperação incompleta do Banco de
   Dados do
  Banco de Dados, se não houve, não fiz o teste, mas, talvez
   funcione algo
  como:
 
  CREATE TABLESPACE ahr
  ADD DATAFILE 'localizacao/nome' SIZE X . REUSE;
 
  ou
 
  CREATE TABLESPACE ahr
  ADD DATAFILE 'datafilenovo' SIZE X ...
  e após, adicionar o DataFile existente a essa tablespace:
  ALTER TABLESPACE ahr
  ADD DATAFILE 'localizacao/nome' SIZE X . REUSE;
 
  Atenciosamente,
 
  Anderson Haertel Rodrigues
  Administrador de Banco de Dados
  Oracle 9i Database Administrator Certified
  Microsoft Certified Professional SQL Server 2000
  Florianópolis/SC
 
  - Original Message -
  From: MARCO ANTONIO marcogru@
  To: ORACLE_BR
   oracle_br@yahoogrupos.com.br 
   oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.br
   oracle_br%40yahoogrupos.com.br
 
  Sent: Wednesday, July 27, 2005 12:52 PM
  Subject: [oracle_br] Recuperar tablespace
 
 
  Boa tarde a todos!
 
  Se uma tablespace for dropada e o datafile correspondente for
 mantido em
  disco, existe alguma maneira de se recuperar (recriar) esta
   tablespace
  reutilizando e recuperando este datafile?
 
  Um abraço!
 
  Marco Antonio
 
 
  -
  Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o
 discador
 agora!
 

Re: [oracle_br] Script para monitorar index...

2007-05-03 Por tôpico Gustavo Venturini de Lima
Posso estar enganado... mas já precisei disso e para conseguir estes
detalhes (pois o alter index XXX monitoring apenas diz se ele foi ou não
utilizado) só consegui um script no Metalink que fica varrendo a SGA e
coletando estas informações de TUDO o que passa por lá...
Desisti de implementar pelo alto custo de processamento...
Se desejar mesmo assim, dá uma olhada lá no Metalink que vc vai encontrá-lo
em:
https://metalink.oracle.com/metalink/plsql/f?p=130:14:7988589913324293215p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,1033478.6,1,0,1,helvetica
https://metalink.oracle.com/metalink/plsql/f?p=130:14:7988589913324293215p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,144070.1,1,1,1,helvetica

[]'s

Em 03/05/07, Luciano Lacerda [EMAIL PROTECTED] escreveu:

   *Bom dia a todos.*
 * Estou querendo saber se existe algum script que monitore a utilização de
 todos os indices de um determinado OWNER.*
 *Onde eu crio uma tabela em meu banco para ter os seguintes dados do
 indice,
 quantidade de utilização em um determinado período. (dia, hora, etc.).*
 **
 *Obs: Banco de dados Oracle 9.2.0.1.0*

 --
 Luciano Lacerda
 ORACLE DBA/ATG
 [EMAIL PROTECTED] llacerda.dba%40gmail.com
 [EMAIL PROTECTED] lucianolacerda29%40gmail.com

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

  



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



Res: [oracle_br] Re: Importação alterando ac entuação de campos VARCHAR.

2007-05-03 Por tôpico Bia Fitzgerald
Obrigada a todos pelas respostas. Eu vou verificar.
[]s,
Fabiana

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

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



Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Andre Santos
Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
para insert, obtendo o valor da sequence (dessa forma ficaria bem
semelhante ao uma coluna do tipo autonumeração).

[ ]'s

André


Em 02/05/07, FERNANDES Marco A SOFTTEK 
[EMAIL PROTECTED] escreveu:

   Renan,
 pequeno detalhe no seu select vc não usa mais a sequence !
 Use-a apenas no insert.

 O currentval da sequence não é o que vc procura.
 Vc precisa especificar o código na busca e não o valor da sequence.
 Como te disse, a sequence não tem relação com a tabela. É apenas um
 artifício para controlar um sequencia numérica.

 Portanto, não use o currentval no select, pois ele não serve para isso.

 Caso vc queira consultar o último registro inserido utilize a cláusula
 where usando max(campo_id).

 valeu, 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: Renan Nucci - CSM Soft
 Sent: quarta-feira, 2 de maio de 2007 17:52
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
 gerado..

 Criei conforme vossa orientação, mas nao consigo selecionar o que foi
 inserido..
 O que esta errado no que fiz abaixo??

 /*cria a sequencia*/
 create sequence produtos_codigo increment by 1 minvalue 1 nomaxvalue start
 with 1
 commit

 /*tenta nserir usando sequence*/
 ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD' /*altera formato da
 sessao*/
 insert into Produtos values(produtos_codigo.NEXTVAL, 'produto1', 5, 2,
 '2001-01-01') ;
 commit;
 /*seleciona o que foi inserido*/
 select * from produtos where codigo = produtos_codigo.CURRVAL;

 
 * Renan S. Nucci *
 * Desenvolvedor *
 * CSM Software *
 
 - Original Message -
 From: FERNANDES Marco A SOFTTEK
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br mailto:
 oracle_br%40yahoogrupos.com.br
 Sent: Wednesday, May 02, 2007 5:10 PM
 Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor
 gerado..

 Renan, a tabela não tem ligação direta com a sequence.
 A tabela tem uma coluna tipo Number normal.
 O vínculo estará apenas no insert na tabela da seguinte forma:

 insert into tabela (coluna_ID, coluna_2, coluna_3)
 values (nome_sequence.nextval(), valor_2, valor_3);

 A sequence quando criada vc especifica o valor inicial, incremento,
 máximo, ciclicidade, etc.
 Portanto, vc deve iniciar com 1 e máximo de 9 onde o número de noves
 depende do
 tamanho do seu number... se for number(3) o máximo é 999 o incremento
 põe 1, ou seja,
 soma sempre 1 (incremento normalmente usado).

 Ou seja, na criação da tabela não tem segredo... cria ela normal.
 Aí nos inserts tem que tratar... não é recomendado reaproveitamento de
 chave nesse
 caso pois vc teria que tratar também a sequence.

 Eu já vi muita gente usar sequence mas tbem já vi muita gente usar o
 select max + 1.

 Abraço,
 Marco.

 

 From: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br 
 [mailto:oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br ] On Behalf Of PUB: Renan Nucci - CSM Soft
 Sent: quarta-feira, 2 de maio de 2007 16:45
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br mailto:
 oracle_br%40yahoogrupos.com.br
 Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
 gerado..

 O que me impediu de criar a sequence eh o primeiro valor, pois nas minhas
 tentativas estavao dando erros. lembro de ter lido que para usar uma
 sequence o campo deve ter o valor gerado pela sequence.. :/

 eh por isso q pedi um exemplo que me mostrasse a traducao de uma tabela
 do ss para o oracle..

 
 * Renan S. Nucci *
 * Desenvolvedor *
 * CSM Software *
 
 - Original Message -
 From: FERNANDES Marco A SOFTTEK
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br mailto:
 oracle_br%40yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
 Sent: Wednesday, May 02, 2007 4:04 PM
 Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor
 gerado..

 Para se encriptar uma procedure é necessário o uso da ferramenta WRAP
 existente no oracle... cada versão de banco tem sua própria ferramenta
 wrap.

 Dá uma olhada no Help desse cara pra pegar os detalhes.

 Abraço,
 Marco.

 

 From: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
 [mailto:oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br ]
 On Behalf Of PUB: Rafael 

RES: [oracle_br] Criar Job - Oracle 9i

2007-05-03 Por tôpico Miguel Alessandro May
Ok,

mas quais os argumentos que devo passar para criar o job?

 

Obrigado.

 

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Rafael Alexandre Schmitt
Enviada em: quinta-feira, 3 de maio de 2007 10:26
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Criar Job - Oracle 9i

 

Olá,

Acredito que você possa usar a dbms_job.submit para isso.

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

- Original Message - 
From: Miguel Alessandro May 
To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
Sent: Thursday, May 03, 2007 9:39 AM
Subject: [oracle_br] Criar Job - Oracle 9i

Bom dia pessoal.

Gostaria de saber como faço para criar um job no banco de dados para rodar
de hora em hora.

Aguardo.

Obrigado.

Atenciosamente,

Miguel Alessandro May

Analista de Suporte

Gestão de Sistemas e Informações

Marcegaglia do Brasil Ltda.

mailto:[EMAIL PROTECTED] mailto:miguel%40marcegaglia.com.br 
[EMAIL PROTECTED] mailto:miguel%40marcegaglia.com.br 

Tel.: (47) 3431 64 67 / Fax: 3431 64 44

Visite nosso site: http://www.marcegaglia.com.br/ www.marcegaglia.com.br

As informações contidas neste e-mail e os eventuais documentos anexos podem
conter informações confidenciais, destinados somente para a(s) pessoa(s) a
quem é dirigida. Caso você a tenha recebido por engano, informamos que a sua
divulgação, utilização, reprodução ou distribuição deste e-mail é
estritamente proibida, por favor, notifique o remetente e elimine a mensagem
original.

Todas as opiniões e declarações destinadas a entidades externas a esta
empresa, somente serão consideradas oficiais quando efetivamente confirmadas
por escrito por um representante legal desta empresa. Obrigado.

Le informazioni contenute in questa comunicazione e gli eventuali documenti
allegati hanno carattere confidenziale, sono tutelate dal segreto
professionale e sono ad uso esclusivo del destinatario. Nel caso questa
comunicazione Vi sia pervenuta per errore, Vi informiamo che la sua
diffusione e riproduzione è contraria alla legge e preghiamo di darci
prontamente avviso e di cancellare quanto ricevuto.

Tutte le opinioni e declarazioni destinate a entità esterne a questa
impresa, sarano considerate officiali soltanto quando effetivamente
confirmate per scritto da un rappresentante legale di questa impresa.
Grazie.

This e-mail message and any files transmitted attached may contain
confidential information intended only for the person(s) to whom it is
addressed. If you are not the intended recipient, you are hereby notified
that any use or distribution of this e-mail is strictly prohibited: please
notify the sender and delete the original message. 

All opinions and statements, directed to firms, people or companies outside
this organization, will be considered official when they are effectively
confirmed in writing by any legal representative of our organization. Thank
you.

De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
[mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
] Em
nome de Marcos Pereira - Confederação SICREDI
Enviada em: quinta-feira, 3 de maio de 2007 09:28
Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
Assunto: RES: RES: RES: [oracle_br] Calculo volumetrico

Ok , muito obrigado , vou tentar novamente.
Valeu

-Mensagem original-
De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br
[mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br
]Em
nome de jlchiappa
Enviada em: quinta-feira, 3 de maio de 2007 09:16
Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br 
Assunto: Re: RES: RES: [oracle_br] Calculo volumetrico

OK, vc quer estimar o futuro : de forma alguma isso estava claro na
expressão cálculo volumétrico... Muito bem, o bd Oracle sempre
armazena as linhas duma tabela em blocos Oracle, e quantas linhas
caberão por bloco não depende só das características das colunas, ele
depende também FUNDAMENTALMENTE das cláusulas de STORAGE, tal como
PCTFREE, PCTUSED, FREELISTs, FREELIST GROUPS E é claro, o bd
Oracle aloca espaço em disco POR EXTENTs, assim se um dado objeto tem
initail extent de 10 Mb (digamos), ele SEMPRE ocupará no mínimo 10 Mb
ainda que vazio de dados. E não nos esqueçamos que a tabela PODE
TER ÍNDICES, pode ter partições, pode ter LOBs, esses caras todos
ocupam espaço, também. Há MONTES de planilhas e textos pelaí na net
que tentam estimar isso só baseado na info das colunas, mas TODOAS AS
QUE VI ATÉ HOJE erram muito muito feio, por não preverem essas coisas
todas que citei...
Por causa disso tudo, imho a melhor e mais precisa maneira de
estimar a alocação futura é CRIAR mesmo a tal tabela fisicamente, com
o storage que ele terá, com o extent size real, o tipo de 

Re: [oracle_br] Criar Job - Oracle 9i

2007-05-03 Por tôpico Rafael Alexandre Schmitt
O job, o código (pl/sql ), próxima data de execução, intervalo, e um boolean 
relativo a quando deve ser feito o parse.Google is your friend.--Rafael 
Alexandre [EMAIL PROTECTED]  ||  www.hbtec.com.brBlumenau - Santa Catarina
  - Original Message - 
  From: Miguel Alessandro May 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 11:17 AM
  Subject: RES: [oracle_br] Criar Job - Oracle 9i


  Ok,

  mas quais os argumentos que devo passar para criar o job?

  Obrigado.

  De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
  nome de Rafael Alexandre Schmitt
  Enviada em: quinta-feira, 3 de maio de 2007 10:26
  Para: oracle_br@yahoogrupos.com.br
  Assunto: Re: [oracle_br] Criar Job - Oracle 9i

  Olá,

  Acredito que você possa usar a dbms_job.submit para isso.

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

  - Original Message - 
  From: Miguel Alessandro May 
  To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 9:39 AM
  Subject: [oracle_br] Criar Job - Oracle 9i

  Bom dia pessoal.

  Gostaria de saber como faço para criar um job no banco de dados para rodar
  de hora em hora.

  Aguardo.

  Obrigado.

  Atenciosamente,

  Miguel Alessandro May

  Analista de Suporte

  Gestão de Sistemas e Informações

  Marcegaglia do Brasil Ltda.

  mailto:[EMAIL PROTECTED] mailto:miguel%40marcegaglia.com.br 
  [EMAIL PROTECTED] mailto:miguel%40marcegaglia.com.br 

  Tel.: (47) 3431 64 67 / Fax: 3431 64 44

  Visite nosso site: http://www.marcegaglia.com.br/ www.marcegaglia.com.br

  As informações contidas neste e-mail e os eventuais documentos anexos podem
  conter informações confidenciais, destinados somente para a(s) pessoa(s) a
  quem é dirigida. Caso você a tenha recebido por engano, informamos que a sua
  divulgação, utilização, reprodução ou distribuição deste e-mail é
  estritamente proibida, por favor, notifique o remetente e elimine a mensagem
  original.

  Todas as opiniões e declarações destinadas a entidades externas a esta
  empresa, somente serão consideradas oficiais quando efetivamente confirmadas
  por escrito por um representante legal desta empresa. Obrigado.

  Le informazioni contenute in questa comunicazione e gli eventuali documenti
  allegati hanno carattere confidenziale, sono tutelate dal segreto
  professionale e sono ad uso esclusivo del destinatario. Nel caso questa
  comunicazione Vi sia pervenuta per errore, Vi informiamo che la sua
  diffusione e riproduzione è contraria alla legge e preghiamo di darci
  prontamente avviso e di cancellare quanto ricevuto.

  Tutte le opinioni e declarazioni destinate a entità esterne a questa
  impresa, sarano considerate officiali soltanto quando effetivamente
  confirmate per scritto da un rappresentante legale di questa impresa.
  Grazie.

  This e-mail message and any files transmitted attached may contain
  confidential information intended only for the person(s) to whom it is
  addressed. If you are not the intended recipient, you are hereby notified
  that any use or distribution of this e-mail is strictly prohibited: please
  notify the sender and delete the original message. 

  All opinions and statements, directed to firms, people or companies outside
  this organization, will be considered official when they are effectively
  confirmed in writing by any legal representative of our organization. Thank
  you.

  De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
  [mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
  ] Em
  nome de Marcos Pereira - Confederação SICREDI
  Enviada em: quinta-feira, 3 de maio de 2007 09:28
  Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
  Assunto: RES: RES: RES: [oracle_br] Calculo volumetrico

  Ok , muito obrigado , vou tentar novamente.
  Valeu

  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br
  [mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br
  ]Em
  nome de jlchiappa
  Enviada em: quinta-feira, 3 de maio de 2007 09:16
  Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br 
  Assunto: Re: RES: RES: [oracle_br] Calculo volumetrico

  OK, vc quer estimar o futuro : de forma alguma isso estava claro na
  expressão cálculo volumétrico... Muito bem, o bd Oracle sempre
  armazena as linhas duma tabela em blocos Oracle, e quantas linhas
  caberão por bloco não depende só das características das colunas, ele
  depende também FUNDAMENTALMENTE das cláusulas de STORAGE, tal como
  PCTFREE, PCTUSED, FREELISTs, FREELIST GROUPS E é claro, o bd
  Oracle aloca espaço em disco POR EXTENTs, assim se um dado objeto tem
  initail extent de 10 Mb (digamos), ele 

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Renan Nucci - CSM Soft
Blz,, agradeço as respostas,, 
agora sinceramente, acho o cumulo o banco de dados mais utilizado do mundo nao 
ter uma maneira mais facil para esse tipo de problemas

Um outro ponto que eu nao estou acertando eh em relacao a procedures.. 

Pois se tenhu que fazer um select dentro de uma procedure eu preciso declarar 
um vetor ou jogar o resultado do select em uma variavel???

como faço pra declarar uma variavel pra acertar a procedure abaixo?

create procedure teste (:cod in varchar)
is
begin
select * from tabela where codigo = :cod;
end



* Renan S. Nucci *
* Desenvolvedor *
* CSM Software *

  - Original Message - 
  From: Andre Santos 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 11:02 AM
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..


  Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
  para insert, obtendo o valor da sequence (dessa forma ficaria bem
  semelhante ao uma coluna do tipo autonumeração).

  [ ]'s

  André

  Em 02/05/07, FERNANDES Marco A SOFTTEK 
  [EMAIL PROTECTED] escreveu:

   Renan,
   pequeno detalhe no seu select vc não usa mais a sequence !
   Use-a apenas no insert.
  
   O currentval da sequence não é o que vc procura.
   Vc precisa especificar o código na busca e não o valor da sequence.
   Como te disse, a sequence não tem relação com a tabela. É apenas um
   artifício para controlar um sequencia numérica.
  
   Portanto, não use o currentval no select, pois ele não serve para isso.
  
   Caso vc queira consultar o último registro inserido utilize a cláusula
   where usando max(campo_id).
  
   valeu, 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: Renan Nucci - CSM Soft
   Sent: quarta-feira, 2 de maio de 2007 17:52
   To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
   Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
   gerado..
  
   Criei conforme vossa orientação, mas nao consigo selecionar o que foi
   inserido..
   O que esta errado no que fiz abaixo??
  
   /*cria a sequencia*/
   create sequence produtos_codigo increment by 1 minvalue 1 nomaxvalue start
   with 1
   commit
  
   /*tenta nserir usando sequence*/
   ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD' /*altera formato da
   sessao*/
   insert into Produtos values(produtos_codigo.NEXTVAL, 'produto1', 5, 2,
   '2001-01-01') ;
   commit;
   /*seleciona o que foi inserido*/
   select * from produtos where codigo = produtos_codigo.CURRVAL;
  
   
   * Renan S. Nucci *
   * Desenvolvedor *
   * CSM Software *
   
   - Original Message -
   From: FERNANDES Marco A SOFTTEK
   To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br mailto:
   oracle_br%40yahoogrupos.com.br
   Sent: Wednesday, May 02, 2007 5:10 PM
   Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor
   gerado..
  
   Renan, a tabela não tem ligação direta com a sequence.
   A tabela tem uma coluna tipo Number normal.
   O vínculo estará apenas no insert na tabela da seguinte forma:
  
   insert into tabela (coluna_ID, coluna_2, coluna_3)
   values (nome_sequence.nextval(), valor_2, valor_3);
  
   A sequence quando criada vc especifica o valor inicial, incremento,
   máximo, ciclicidade, etc.
   Portanto, vc deve iniciar com 1 e máximo de 9 onde o número de noves
   depende do
   tamanho do seu number... se for number(3) o máximo é 999 o incremento
   põe 1, ou seja,
   soma sempre 1 (incremento normalmente usado).
  
   Ou seja, na criação da tabela não tem segredo... cria ela normal.
   Aí nos inserts tem que tratar... não é recomendado reaproveitamento de
   chave nesse
   caso pois vc teria que tratar também a sequence.
  
   Eu já vi muita gente usar sequence mas tbem já vi muita gente usar o
   select max + 1.
  
   Abraço,
   Marco.
  
   
  
   From: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
   oracle_br%40yahoogrupos.com.br 
[mailto:oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.brmailto:
   oracle_br%40yahoogrupos.com.br ] On Behalf Of PUB: Renan Nucci - CSM Soft
   Sent: quarta-feira, 2 de maio de 2007 16:45
   To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br mailto:
   oracle_br%40yahoogrupos.com.br
   Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
   gerado..
  
   O que me impediu de criar a sequence eh o primeiro valor, pois nas minhas
   tentativas estavao dando erros. lembro de ter lido que para usar uma
   sequence o campo deve ter o valor gerado pela sequence.. :/
  
   eh por isso q pedi um exemplo que 

[oracle_br] Re: Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico jlchiappa
Colega, fácil é relativo, tudo que vc sabe é fácil, o que vc não 
sabe é difícil - eu sempre usei as sequences, não vejo assim 
taaanta dificuldade... E cito também que necessariamente, Oracle é 
DIFERENTE de SQLServer, MUITOS dos conceitos que vc tem em um não são 
os mesmos no outro, até porque o perfil de utilização, os volumes 
típicos, etc, são diferente... No caso em questão, inclusive, é o que 
ocorre, o Oracle implementa sequences porque as sequences podem ser 
cacheadas E não implicam em nenhum tipo de enqueue para se assegurar 
ausência de duplicidade, implica em performance superior via de regra 
cfrme citado em http://asktom.oracle.com/pls/asktom/f?
p=100:11:0P11_QUESTION_ID:6575961912937#6597836737589 . 

Quanto à pergunta de retorno de resultset via procedure, REF CURSOR é 
a resposta, em http://asktom.oracle.com/tkyte/ResultSets/index.html 
vc tem um exemplo, mas novamente o CONCEITO aqui é diferente, 
novamente , Oracle  SQLServer Eu recomendaria fortemente que vc 
estudasse os manuais de Concepts e o Guia de Desenvolvedores Oracle, 
** justamente ** para que vc fique conhecendo os conceitos e 
recomendações da Oracle para se desenvolver em banco Oracle, 
necessariamente MUITO, mas MUITO MESMO do que vc já usa e conhece em 
SQLServer vai ser diferente Pra complementar os manuais, eu 
recomendo os livros Expert Oracle Database Architecture: 9i and 10g 
Programming Techniques and Solutions, e o Effective Oracle by 
Design , ambos do autor Thomas Kyte, vão ser inestimáveis no seu dia 
a dia, se o teu objetivo é construir uma aplicação eficiente com o bd 
Oracle.

[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, Renan Nucci - CSM Soft 
[EMAIL PROTECTED] escreveu

 Blz,, agradeço as respostas,, 
 agora sinceramente, acho o cumulo o banco de dados mais utilizado 
do mundo nao ter uma maneira mais facil para esse tipo de 
problemas
 
 Um outro ponto que eu nao estou acertando eh em relacao a 
procedures.. 
 
 Pois se tenhu que fazer um select dentro de uma procedure eu 
preciso declarar um vetor ou jogar o resultado do select em uma 
variavel???
 
 como faço pra declarar uma variavel pra acertar a procedure abaixo?
 
 create procedure teste (:cod in varchar)
 is
 begin
 select * from tabela where codigo = :cod;
 end
 
 
 
 * Renan S. Nucci *
 * Desenvolvedor *
 * CSM Software *
 
   - Original Message - 
   From: Andre Santos 
   To: oracle_br@yahoogrupos.com.br 
   Sent: Thursday, May 03, 2007 11:02 AM
   Subject: Re: [oracle_br] Criacao de sequence e dar select no novo 
valor gerado..
 
 
   Só acrescentando, ao que o Marco já explicou, é possível criar um 
trigger
   para insert, obtendo o valor da sequence (dessa forma ficaria 
bem
   semelhante ao uma coluna do tipo autonumeração).
 
   [ ]'s
 
   André
 
   Em 02/05/07, FERNANDES Marco A SOFTTEK 
   [EMAIL PROTECTED] escreveu:
 
Renan,
pequeno detalhe no seu select vc não usa mais a sequence !
Use-a apenas no insert.
   
O currentval da sequence não é o que vc procura.
Vc precisa especificar o código na busca e não o valor da 
sequence.
Como te disse, a sequence não tem relação com a tabela. É 
apenas um
artifício para controlar um sequencia numérica.
   
Portanto, não use o currentval no select, pois ele não serve 
para isso.
   
Caso vc queira consultar o último registro inserido utilize a 
cláusula
where usando max(campo_id).
   
valeu, 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: Renan Nucci - CSM Soft
Sent: quarta-feira, 2 de maio de 2007 17:52
To: oracle_br@yahoogrupos.com.br oracle_br%
40yahoogrupos.com.br
Subject: Re: [oracle_br] Criacao de sequence e dar select no 
novo valor
gerado..
   
Criei conforme vossa orientação, mas nao consigo selecionar o 
que foi
inserido..
O que esta errado no que fiz abaixo??
   
/*cria a sequencia*/
create sequence produtos_codigo increment by 1 minvalue 1 
nomaxvalue start
with 1
commit
   
/*tenta nserir usando sequence*/
ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD' /*altera formato 
da
sessao*/
insert into Produtos values
(produtos_codigo.NEXTVAL, 'produto1', 5, 2,
'2001-01-01') ;
commit;
/*seleciona o que foi inserido*/
select * from produtos where codigo = produtos_codigo.CURRVAL;
   

* Renan S. Nucci *
* Desenvolvedor *
* CSM Software *

- Original Message -
From: FERNANDES Marco A SOFTTEK
To: oracle_br@yahoogrupos.com.br oracle_br%
40yahoogrupos.com.br mailto:
oracle_br%40yahoogrupos.com.br
Sent: Wednesday, May 02, 2007 5:10 PM

Re: RES: [oracle_br] Criar Job - Oracle 9i

2007-05-03 Por tôpico Roberto Amorim
CREATE OR REPLACE PROCEDURE pr01_job_calculo(p_param NUMBER ) AS
jobno  NUMBER;
BEGIN
DBMS_JOB.SUBMIT(jobno,'PR02_CALCULO(' || p_param ||');', sysdate, null);
END prsbd_job_calculo;

Isso dispara na hora,

DBMS_JOB.SUBMIT(job OUT BINARY_INTEGER,
whatIN  VARCHAR2,
next_date   IN  DATE DEFAULT SYSDATE,
intervalIN  VARCHAR2 DEFAULT 'null',
no_parseIN  BOOLEAN DEFAULT FALSE)

onde:
 job é um número que ele mesmo cria
what é o código a executar
next_date é para quando ele será executado
interval é uma função que calcula a data da próxima execução ou gera nulo
no_parse é falso (se for true é porque ela não dá para ser compilada 
agora, só no futuro, mas mesmo assim você já quer submeter o job)
Oracle 8i

Miguel Alessandro May escreveu:
 Ok,

 mas quais os argumentos que devo passar para criar o job?

  

 Obrigado.

  

 De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
 nome de Rafael Alexandre Schmitt
 Enviada em: quinta-feira, 3 de maio de 2007 10:26
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] Criar Job - Oracle 9i

  

 Olá,

 Acredito que você possa usar a dbms_job.submit para isso.

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

 - Original Message - 
 From: Miguel Alessandro May 
 To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
 Sent: Thursday, May 03, 2007 9:39 AM
 Subject: [oracle_br] Criar Job - Oracle 9i

 Bom dia pessoal.

 Gostaria de saber como faço para criar um job no banco de dados para rodar
 de hora em hora.

 Aguardo.

 Obrigado.

 Atenciosamente,

 Miguel Alessandro May

 Analista de Suporte

 Gestão de Sistemas e Informações

 Marcegaglia do Brasil Ltda.

 mailto:[EMAIL PROTECTED] mailto:miguel%40marcegaglia.com.br 
 [EMAIL PROTECTED] mailto:miguel%40marcegaglia.com.br 

 Tel.: (47) 3431 64 67 / Fax: 3431 64 44

 Visite nosso site: http://www.marcegaglia.com.br/ www.marcegaglia.com.br

 As informações contidas neste e-mail e os eventuais documentos anexos podem
 conter informações confidenciais, destinados somente para a(s) pessoa(s) a
 quem é dirigida. Caso você a tenha recebido por engano, informamos que a sua
 divulgação, utilização, reprodução ou distribuição deste e-mail é
 estritamente proibida, por favor, notifique o remetente e elimine a mensagem
 original.

 Todas as opiniões e declarações destinadas a entidades externas a esta
 empresa, somente serão consideradas oficiais quando efetivamente confirmadas
 por escrito por um representante legal desta empresa. Obrigado.

 Le informazioni contenute in questa comunicazione e gli eventuali documenti
 allegati hanno carattere confidenziale, sono tutelate dal segreto
 professionale e sono ad uso esclusivo del destinatario. Nel caso questa
 comunicazione Vi sia pervenuta per errore, Vi informiamo che la sua
 diffusione e riproduzione è contraria alla legge e preghiamo di darci
 prontamente avviso e di cancellare quanto ricevuto.

 Tutte le opinioni e declarazioni destinate a entità esterne a questa
 impresa, sarano considerate officiali soltanto quando effetivamente
 confirmate per scritto da un rappresentante legale di questa impresa.
 Grazie.

 This e-mail message and any files transmitted attached may contain
 confidential information intended only for the person(s) to whom it is
 addressed. If you are not the intended recipient, you are hereby notified
 that any use or distribution of this e-mail is strictly prohibited: please
 notify the sender and delete the original message. 

 All opinions and statements, directed to firms, people or companies outside
 this organization, will be considered official when they are effectively
 confirmed in writing by any legal representative of our organization. Thank
 you.

 De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
 [mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
 ] Em
 nome de Marcos Pereira - Confederação SICREDI
 Enviada em: quinta-feira, 3 de maio de 2007 09:28
 Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
 Assunto: RES: RES: RES: [oracle_br] Calculo volumetrico

 Ok , muito obrigado , vou tentar novamente.
 Valeu

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 [mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 ]Em
 nome de jlchiappa
 Enviada em: quinta-feira, 3 de maio de 2007 09:16
 Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br 
 Assunto: Re: RES: RES: [oracle_br] Calculo volumetrico

 OK, vc quer estimar o futuro : de forma alguma isso estava claro na
 expressão cálculo volumétrico... Muito bem, o bd Oracle sempre
 armazena as linhas 

Re: [oracle_br] Criar Job - Oracle 9i

2007-05-03 Por tôpico Rafael Merlin
,next_date  = to_date('03/05/2007 10:27:40','dd/mm/ hh24:mi:ss') 
ISSO SIGNIFICA É A DATA QUE VAI COMEÇAR AS EXECUÇÕES
,interval   = 'SYSDATE+30/1440 '  ISSO SIGNIFICA QUE É DE 30 EM 30
MINUTOS.

 ,what   = 'UPDATE POCAPESS SET APELPESS = 'APELIDO'' WHERE
CODIPESS = 99;'  COMANDO A SER EXECUTADOR

BEGIN
  SYS.DBMS_JOB.CHANGE
(
  job= 21
 ,what   = 'UPDATE POCAPESS SET APELPESS = 'APELIDO'' WHERE
CODIPESS = 99;'
 ,next_date  = to_date('03/05/2007 10:27:40','dd/mm/ hh24:mi:ss')
 ,interval   = 'SYSDATE+30/1440 '
);
END;


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



RE: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico FERNANDES Marco A SOFTTEK
André, vc poderia dar um exemplo disso pra ficar mais claro ?



From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of PUB: 
Andre Santos
Sent: quinta-feira, 3 de maio de 2007 11:02
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..



Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
para insert, obtendo o valor da sequence (dessa forma ficaria bem
semelhante ao uma coluna do tipo autonumeração).

[ ]'s

André

Em 02/05/07, FERNANDES Marco A SOFTTEK 
[EMAIL PROTECTED] mailto:mfernandes%40fornecedores.confab.com.br  escreveu:

 Renan,
 pequeno detalhe no seu select vc não usa mais a sequence !
 Use-a apenas no insert.

 O currentval da sequence não é o que vc procura.
 Vc precisa especificar o código na busca e não o valor da sequence.
 Como te disse, a sequence não tem relação com a tabela. É apenas um
 artifício para controlar um sequencia numérica.

 Portanto, não use o currentval no select, pois ele não serve para isso.

 Caso vc queira consultar o último registro inserido utilize a cláusula
 where usando max(campo_id).

 valeu, abraço,
 Marco.

 

 From: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
 oracle_br%40yahoogrupos.com.br[mailto:
 oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
 oracle_br%40yahoogrupos.com.br] On Behalf
 Of PUB: Renan Nucci - CSM Soft
 Sent: quarta-feira, 2 de maio de 2007 17:52
 To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
 oracle_br%40yahoogrupos.com.br
 Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
 gerado..

 Criei conforme vossa orientação, mas nao consigo selecionar o que foi
 inserido..
 O que esta errado no que fiz abaixo??

 /*cria a sequencia*/
 create sequence produtos_codigo increment by 1 minvalue 1 nomaxvalue start
 with 1
 commit

 /*tenta nserir usando sequence*/
 ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD' /*altera formato da
 sessao*/
 insert into Produtos values(produtos_codigo.NEXTVAL, 'produto1', 5, 2,
 '2001-01-01') ;
 commit;
 /*seleciona o que foi inserido*/
 select * from produtos where codigo = produtos_codigo.CURRVAL;

 
 * Renan S. Nucci *
 * Desenvolvedor *
 * CSM Software *
 
 - Original Message -
 From: FERNANDES Marco A SOFTTEK
 To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
 oracle_br%40yahoogrupos.com.br mailto:
 oracle_br%40yahoogrupos.com.br
 Sent: Wednesday, May 02, 2007 5:10 PM
 Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor
 gerado..

 Renan, a tabela não tem ligação direta com a sequence.
 A tabela tem uma coluna tipo Number normal.
 O vínculo estará apenas no insert na tabela da seguinte forma:

 insert into tabela (coluna_ID, coluna_2, coluna_3)
 values (nome_sequence.nextval(), valor_2, valor_3);

 A sequence quando criada vc especifica o valor inicial, incremento,
 máximo, ciclicidade, etc.
 Portanto, vc deve iniciar com 1 e máximo de 9 onde o número de noves
 depende do
 tamanho do seu number... se for number(3) o máximo é 999 o incremento
 põe 1, ou seja,
 soma sempre 1 (incremento normalmente usado).

 Ou seja, na criação da tabela não tem segredo... cria ela normal.
 Aí nos inserts tem que tratar... não é recomendado reaproveitamento de
 chave nesse
 caso pois vc teria que tratar também a sequence.

 Eu já vi muita gente usar sequence mas tbem já vi muita gente usar o
 select max + 1.

 Abraço,
 Marco.

 

 From: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
 oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br 
 mailto:oracle_br%40yahoogrupos.com.br 
 oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br ] On Behalf Of PUB: Renan Nucci - CSM Soft
 Sent: quarta-feira, 2 de maio de 2007 16:45
 To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
 oracle_br%40yahoogrupos.com.br mailto:
 oracle_br%40yahoogrupos.com.br
 Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
 gerado..

 O que me impediu de criar a sequence eh o primeiro valor, pois nas minhas
 tentativas estavao dando erros. lembro de ter lido que para usar uma
 sequence o campo deve ter o valor gerado pela sequence.. :/

 eh por isso q pedi um exemplo que me mostrasse a traducao de uma tabela
 do ss para o oracle..

 
 * Renan S. Nucci *
 * Desenvolvedor *
 * CSM Software *
 
 - Original Message -
 From: FERNANDES Marco A SOFTTEK
 To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
 oracle_br%40yahoogrupos.com.br mailto:
 oracle_br%40yahoogrupos.com.br 

Re: [oracle_br] Criar Job - Oracle 9i

2007-05-03 Por tôpico Rafael Merlin
Executa exatamente isso;
so muda o sql de execução...
que vai cria o job

DECLARE
  X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
( job   = X
 ,what  = 'UPDATE POCAAUXI SET CODIAUXI = 1;'
 ,next_date = to_date('03/05/2007 11:37:23','dd/mm/ hh24:mi:ss')
 ,interval  = 'SYSDATE+30/1440 '
 ,no_parse  = TRUE
);
  SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
END;
/

commit;


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



Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Andre Santos
Renan

Mas não é difícil criar um trigger para fazer essa amarração.
Vide o exemplo que acabei de mandar em resposta ao Marco.

Há outros BD's que trabalham com o conceito de sequence também... DB2 (da
IBM), Postgre...
Inclusive, se não me engano, tanto SEQUENCE, como colunas IDENTITY, fazem
parte do padrão ANSI.
Claro que uma coluna identity poderia facilitar em alguns casos... mas,
pessoalmente, eu prefiro as sequences.

Além do que o mestre Chiappa já mencionou, há coisas que você pode com
sequences que não poderiam ser realizadas com identity.
Por exemplo, tabelas diferentes seguindo uma mesma seqüência.

A procedure que você exemplificou, ficaria +/- assim no Oracle (versão 9i ou
superior):

CREATE OR REPLACE PROCEDURE sp_teste
(
   cod IN VARCHAR2,
   consulta OUT SYS_REFCURSOR
)
AS
BEGIN
   OPEN consulta FOR
   SELECT * FROM tabela WHERE codigo = :cod;
END sp_teste;
/

[ ]'s

André


Em 03/05/07, Renan Nucci - CSM Soft [EMAIL PROTECTED] escreveu:

   Blz,, agradeço as respostas,,
 agora sinceramente, acho o cumulo o banco de dados mais utilizado do mundo
 nao ter uma maneira mais facil para esse tipo de problemas

 Um outro ponto que eu nao estou acertando eh em relacao a procedures..

 Pois se tenhu que fazer um select dentro de uma procedure eu preciso
 declarar um vetor ou jogar o resultado do select em uma variavel???

 como faço pra declarar uma variavel pra acertar a procedure abaixo?

 create procedure teste (:cod in varchar)
 is
 begin
 select * from tabela where codigo = :cod;
 end

 
 * Renan S. Nucci *
 * Desenvolvedor *
 * CSM Software *
 
 - Original Message -
 From: Andre Santos
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Sent: Thursday, May 03, 2007 11:02 AM
 Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
 gerado..

 Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
 para insert, obtendo o valor da sequence (dessa forma ficaria bem
 semelhante ao uma coluna do tipo autonumeração).

 [ ]'s

 André

 Em 02/05/07, FERNANDES Marco A SOFTTEK 
 [EMAIL PROTECTED]mfernandes%40fornecedores.confab.com.br
 escreveu:

  Renan,
  pequeno detalhe no seu select vc não usa mais a sequence !
  Use-a apenas no insert.
 
  O currentval da sequence não é o que vc procura.
  Vc precisa especificar o código na busca e não o valor da sequence.
  Como te disse, a sequence não tem relação com a tabela. É apenas um
  artifício para controlar um sequencia numérica.
 
  Portanto, não use o currentval no select, pois ele não serve para isso.
 
  Caso vc queira consultar o último registro inserido utilize a cláusula
  where usando max(campo_id).
 
  valeu, abraço,
  Marco.
 
  
 
  From: oracle_br@yahoogrupos.com.br 
  oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.br[mailto:
  oracle_br@yahoogrupos.com.br 
  oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.br] On Behalf
  Of PUB: Renan Nucci - CSM Soft
  Sent: quarta-feira, 2 de maio de 2007 17:52
  To: oracle_br@yahoogrupos.com.br 
  oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.br
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
  gerado..
 
  Criei conforme vossa orientação, mas nao consigo selecionar o que foi
  inserido..
  O que esta errado no que fiz abaixo??
 
  /*cria a sequencia*/
  create sequence produtos_codigo increment by 1 minvalue 1 nomaxvalue
 start
  with 1
  commit
 
  /*tenta nserir usando sequence*/
  ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD' /*altera formato da
  sessao*/
  insert into Produtos values(produtos_codigo.NEXTVAL, 'produto1', 5, 2,
  '2001-01-01') ;
  commit;
  /*seleciona o que foi inserido*/
  select * from produtos where codigo = produtos_codigo.CURRVAL;
 
  
  * Renan S. Nucci *
  * Desenvolvedor *
  * CSM Software *
  
  - Original Message -
  From: FERNANDES Marco A SOFTTEK
  To: oracle_br@yahoogrupos.com.br 
  oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.br mailto:
  oracle_br%40yahoogrupos.com.br
  Sent: Wednesday, May 02, 2007 5:10 PM
  Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor
  gerado..
 
  Renan, a tabela não tem ligação direta com a sequence.
  A tabela tem uma coluna tipo Number normal.
  O vínculo estará apenas no insert na tabela da seguinte forma:
 
  insert into tabela (coluna_ID, coluna_2, coluna_3)
  values (nome_sequence.nextval(), valor_2, valor_3);
 
  A sequence quando criada vc especifica o valor inicial, incremento,
  máximo, ciclicidade, etc.
  Portanto, vc deve iniciar com 1 e máximo de 9 onde o número de noves
  depende do
  tamanho do seu number... se for number(3) o máximo é 999 o
 incremento
  põe 1, ou seja,
  soma sempre 1 (incremento normalmente usado).
 
  Ou seja, na criação 

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Renan Nucci - CSM Soft
Agradeco a todos que responderam em especial ao Andre que mandou esse exemplo 
tosco de procedure q vai me ajuda a esclarecer muita coisa.. 

Vou tentar seguir as recomendacoes de leitura do Chiappa, q entende bastante do 
assunto, vi muita coisa sua na net.. 

Agora soh mais uma duvida tosca.. 

Como que eu chamo essa procedure, ,pois nao sei o que passar no segundo 
parametro...

call sp_teste('20',???); 


[]s



* Renan S. Nucci *
* Desenvolvedor *

  - Original Message - 
  From: Andre Santos 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 2:15 PM
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..


  Renan

  Mas não é difícil criar um trigger para fazer essa amarração.
  Vide o exemplo que acabei de mandar em resposta ao Marco.

  Há outros BD's que trabalham com o conceito de sequence também... DB2 (da
  IBM), Postgre...
  Inclusive, se não me engano, tanto SEQUENCE, como colunas IDENTITY, fazem
  parte do padrão ANSI.
  Claro que uma coluna identity poderia facilitar em alguns casos... mas,
  pessoalmente, eu prefiro as sequences.

  Além do que o mestre Chiappa já mencionou, há coisas que você pode com
  sequences que não poderiam ser realizadas com identity.
  Por exemplo, tabelas diferentes seguindo uma mesma seqüência.

  A procedure que você exemplificou, ficaria +/- assim no Oracle (versão 9i ou
  superior):

  CREATE OR REPLACE PROCEDURE sp_teste
  (
  cod IN VARCHAR2,
  consulta OUT SYS_REFCURSOR
  )
  AS
  BEGIN
  OPEN consulta FOR
  SELECT * FROM tabela WHERE codigo = :cod;
  END sp_teste;
  /

  [ ]'s

  André

  Em 03/05/07, Renan Nucci - CSM Soft [EMAIL PROTECTED] escreveu:
  
   Blz,, agradeço as respostas,,
   agora sinceramente, acho o cumulo o banco de dados mais utilizado do mundo
   nao ter uma maneira mais facil para esse tipo de problemas
  
   Um outro ponto que eu nao estou acertando eh em relacao a procedures..
  
   Pois se tenhu que fazer um select dentro de uma procedure eu preciso
   declarar um vetor ou jogar o resultado do select em uma variavel???
  
   como faço pra declarar uma variavel pra acertar a procedure abaixo?
  
   create procedure teste (:cod in varchar)
   is
   begin
   select * from tabela where codigo = :cod;
   end
  
   
   * Renan S. Nucci *
   * Desenvolvedor *
   * CSM Software *
   
   - Original Message -
   From: Andre Santos
   To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
   Sent: Thursday, May 03, 2007 11:02 AM
   Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
   gerado..
  
   Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
   para insert, obtendo o valor da sequence (dessa forma ficaria bem
   semelhante ao uma coluna do tipo autonumeração).
  
   [ ]'s
  
   André
  
   Em 02/05/07, FERNANDES Marco A SOFTTEK 
   [EMAIL PROTECTED]mfernandes%40fornecedores.confab.com.br
   escreveu:
  
Renan,
pequeno detalhe no seu select vc não usa mais a sequence !
Use-a apenas no insert.
   
O currentval da sequence não é o que vc procura.
Vc precisa especificar o código na busca e não o valor da sequence.
Como te disse, a sequence não tem relação com a tabela. É apenas um
artifício para controlar um sequencia numérica.
   
Portanto, não use o currentval no select, pois ele não serve para isso.
   
Caso vc queira consultar o último registro inserido utilize a cláusula
where usando max(campo_id).
   
valeu, abraço,
Marco.
   

   
From: oracle_br@yahoogrupos.com.br 
oracle_br%40yahoogrupos.com.broracle_br%40yahoog
   rupos.com.br[mailto:
oracle_br@yahoogrupos.com.br 
oracle_br%40yahoogrupos.com.broracle_br%40yahoog
   rupos.com.br] On Behalf
Of PUB: Renan Nucci - CSM Soft
Sent: quarta-feira, 2 de maio de 2007 17:52
To: oracle_br@yahoogrupos.com.br 
oracle_br%40yahoogrupos.com.broracle_br%40yahoog
   rupos.com.br
Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
gerado..
   
Criei conforme vossa orientação, mas nao consigo selecionar o que foi
inserido..
O que esta errado no que fiz abaixo??
   
/*cria a sequencia*/
create sequence produtos_codigo increment by 1 minvalue 1 nomaxvalue
   start
with 1
commit
   
/*tenta nserir usando sequence*/
ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD' /*altera formato da
sessao*/
insert into Produtos values(produtos_codigo.NEXTVAL, 'produto1', 5, 2,
'2001-01-01') ;
commit;
/*seleciona o que foi inserido*/
select * from produtos where codigo = produtos_codigo.CURRVAL;
   

* Renan S. Nucci *
* Desenvolvedor *
* CSM Software *

RE: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico FERNANDES Marco A SOFTTEK
Rafael,
desculpe mas essa história de cursor explícito é mais rápido é balela num é não 
? risos
Alguém pode esclarecer isso.
Já fiz trocentos testes e nunca vi diferença alguma entre os dois.
Acho que é mais um mito oracleano !
Rola alguém dar uma colher de chá pra lista ?
 
André, eu tinha pedido exemplo daquela trigger que cria a sequencia.
Vc mandou ela em outro email ?
No seu email só vi o exemplo do refcursor.
 
valeu,
Marco.



From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of PUB: 
Rafael Alexandre Schmitt
Sent: quinta-feira, 3 de maio de 2007 14:51
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..



Eu faria :

Declare
cursor x is 

select t.campo1, t.campo2...from table t
where t.codigo = parâmetro;

begin

for c1 in x loop

-- faça alguma coisa... 

end loop;

end;

Lembrando que não há motivo para selecionar todos os campos se você não irá 
utilizá-los.
De preferência use sempre cursores explícitos, segundo a documentação isto 
melhora a perfomance.

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

- Original Message - 
From: FERNANDES Marco A SOFTTEK 
To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
Sent: Thursday, May 03, 2007 11:35 AM
Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

Renan,
concordo com seu argumento sobre a coluna identidade... acredito que seria no 
mínimo útil
que se tivesse criado isso no oracle como existe em outros bancos. Mas enfim, 
isso não é
o fim do mundo pois é facilmente contornável !

Com relação à procedure que retorna resultset eu já discordo em parte... acho 
que a forma
de trabalhar no oracle é diferente dos outros bancos e acredito que não se faz 
necessário
o uso desse tipo de procedure no oracle pelo uso de cursores ! os cursores são 
muito
úteis e fáceis de se trabalhar. Tão simples como o próprio SELECT da sua proc 
!!!
Se vc precisa por exemplo varrer o resultset pode fazer assim:

for c_sql in ( select * from tabela where codigo = 'XXX')
loop
-- aqui vc coloca seu código
end loop;

Concordo se formos pensar que é de interesse da Oracle apresentar um BD que é 
compatível
com outros bancos e facilidade para migração de banco (de banco XYZ para 
Oracle).

Bom, se puder mostrar em que pontos de sua aplicação vc faz uso dessas 
procedures a
gente pode te ajudar a adaptar da melhor forma dentro do oracle.

Abraço,
Marco.



From: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
[mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br ] 
On Behalf Of PUB: Renan Nucci - CSM Soft
Sent: quinta-feira, 3 de maio de 2007 11:19
To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

Blz,, agradeço as respostas,, 
agora sinceramente, acho o cumulo o banco de dados mais utilizado do mundo nao 
ter uma maneira mais facil para esse tipo de problemas

Um outro ponto que eu nao estou acertando eh em relacao a procedures.. 

Pois se tenhu que fazer um select dentro de uma procedure eu preciso declarar 
um vetor ou jogar o resultado do select em uma variavel???

como faço pra declarar uma variavel pra acertar a procedure abaixo?

create procedure teste (:cod in varchar)
is
begin
select * from tabela where codigo = :cod;
end


* Renan S. Nucci *
* Desenvolvedor *
* CSM Software *

- Original Message - 
From: Andre Santos 
To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
mailto:oracle_br%40yahoogrupos.com.br 
Sent: Thursday, May 03, 2007 11:02 AM
Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
para insert, obtendo o valor da sequence (dessa forma ficaria bem
semelhante ao uma coluna do tipo autonumeração).

[ ]'s

André

Em 02/05/07, FERNANDES Marco A SOFTTEK 
[EMAIL PROTECTED] mailto:mfernandes%40fornecedores.confab.com.br  
mailto:mfernandes%40fornecedores.confab.com.br  escreveu:

 Renan,
 pequeno detalhe no seu select vc não usa mais a sequence !
 Use-a apenas no insert.

 O currentval da sequence não é o que vc procura.
 Vc precisa especificar o código na busca e não o valor da sequence.
 Como te disse, a sequence não tem relação com a tabela. É apenas um
 artifício para controlar um sequencia numérica.

 Portanto, não use o currentval no select, pois ele não serve para isso.

 Caso vc queira consultar o último registro inserido utilize a cláusula
 where usando max(campo_id).

 valeu, abraço,
 Marco.

 

 From: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
 

[oracle_br] Re: Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico jlchiappa
http://asktom.oracle.com/pls/asktom/f?
p=100:11:0P11_QUESTION_ID:1544606261686 e 
http://asktom.oracle.com/pls/asktom/f?
p=100:11:0P11_QUESTION_ID:1205168148688#1205970300992 são os 
testes e discussões a respeito, mas acrescento que pra performance o 
que diferencia explícito de implícito é que um vc faz 
open/fetch/close na mão, e outro vc usa dentro dum FOR que já faz 
tudo automaticamente, então o exemplo do colega lá está dentro dum 
FOR, portanto é SIm pra todos os efeitos que interessam implícito, é 
o banco que o controle automaticamente, é portanto algo mais 
eficiente que o explícito (ie, o que tem open/fetch/close). A 
diferença normalmente não é tão enorme mas existe sim...

[]s

 Chiappa
--- Em oracle_br@yahoogrupos.com.br, FERNANDES Marco ASOFTTEK 
[EMAIL PROTECTED] escreveu

 Rafael,
 desculpe mas essa história de cursor explícito é mais rápido é 
balela num é não ? risos
 Alguém pode esclarecer isso.
 Já fiz trocentos testes e nunca vi diferença alguma entre os dois.
 Acho que é mais um mito oracleano !
 Rola alguém dar uma colher de chá pra lista ?
  
 André, eu tinha pedido exemplo daquela trigger que cria a sequencia.
 Vc mandou ela em outro email ?
 No seu email só vi o exemplo do refcursor.
  
 valeu,
 Marco.
 
 
 
 From: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] On Behalf Of PUB: Rafael 
Alexandre Schmitt
 Sent: quinta-feira, 3 de maio de 2007 14:51
 To: oracle_br@yahoogrupos.com.br
 Subject: Re: [oracle_br] Criacao de sequence e dar select no novo 
valor gerado..
 
 
 
 Eu faria :
 
 Declare
 cursor x is 
 
 select t.campo1, t.campo2...from table t
 where t.codigo = parâmetro;
 
 begin
 
 for c1 in x loop
 
 -- faça alguma coisa... 
 
 end loop;
 
 end;
 
 Lembrando que não há motivo para selecionar todos os campos se você 
não irá utilizá-los.
 De preferência use sempre cursores explícitos, segundo a 
documentação isto melhora a perfomance.
 
 --
 Rafael Alexandre Schmitt
 [EMAIL PROTECTED] mailto:rafael%40hbtec.com.br  || www.hbtec.com.br
 Blumenau - Santa Catarina
 
 - Original Message - 
 From: FERNANDES Marco A SOFTTEK 
 To: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br  
 Sent: Thursday, May 03, 2007 11:35 AM
 Subject: RE: [oracle_br] Criacao de sequence e dar select no novo 
valor gerado..
 
 Renan,
 concordo com seu argumento sobre a coluna identidade... acredito 
que seria no mínimo útil
 que se tivesse criado isso no oracle como existe em outros bancos. 
Mas enfim, isso não é
 o fim do mundo pois é facilmente contornável !
 
 Com relação à procedure que retorna resultset eu já discordo em 
parte... acho que a forma
 de trabalhar no oracle é diferente dos outros bancos e acredito que 
não se faz necessário
 o uso desse tipo de procedure no oracle pelo uso de cursores ! os 
cursores são muito
 úteis e fáceis de se trabalhar. Tão simples como o próprio SELECT 
da sua proc !!!
 Se vc precisa por exemplo varrer o resultset pode fazer assim:
 
 for c_sql in ( select * from tabela where codigo = 'XXX')
 loop
 -- aqui vc coloca seu código
 end loop;
 
 Concordo se formos pensar que é de interesse da Oracle apresentar 
um BD que é compatível
 com outros bancos e facilidade para migração de banco (de banco XYZ 
para Oracle).
 
 Bom, se puder mostrar em que pontos de sua aplicação vc faz uso 
dessas procedures a
 gente pode te ajudar a adaptar da melhor forma dentro do oracle.
 
 Abraço,
 Marco.
 
 
 
 From: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br  [mailto:oracle_br@yahoogrupos.com.br 
mailto:oracle_br%40yahoogrupos.com.br ] On Behalf Of PUB: Renan 
Nucci - CSM Soft
 Sent: quinta-feira, 3 de maio de 2007 11:19
 To: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br 
 Subject: Re: [oracle_br] Criacao de sequence e dar select no novo 
valor gerado..
 
 Blz,, agradeço as respostas,, 
 agora sinceramente, acho o cumulo o banco de dados mais utilizado 
do mundo nao ter uma maneira mais facil para esse tipo de 
problemas
 
 Um outro ponto que eu nao estou acertando eh em relacao a 
procedures.. 
 
 Pois se tenhu que fazer um select dentro de uma procedure eu 
preciso declarar um vetor ou jogar o resultado do select em uma 
variavel???
 
 como faço pra declarar uma variavel pra acertar a procedure abaixo?
 
 create procedure teste (:cod in varchar)
 is
 begin
 select * from tabela where codigo = :cod;
 end
 
 
 * Renan S. Nucci *
 * Desenvolvedor *
 * CSM Software *
 
 - Original Message - 
 From: Andre Santos 
 To: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br  mailto:oracle_br%40yahoogrupos.com.br 
 Sent: Thursday, May 03, 2007 11:02 AM
 Subject: Re: [oracle_br] Criacao de sequence e dar select no novo 
valor gerado..
 
 Só acrescentando, ao que o Marco já explicou, é possível criar um 
trigger
 para 

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Rafael Alexandre Schmitt
Olá,

Não sei se é balela, nunca usei nenhum método científico para chegar a essa 
conclusão. O que sei é  que a 
Oracle recomenda o uso de cursores explícitos que , pelo menos em teoria, são 
mais eficientes.

Um cursor implícito é executado como uma instrução segundo o padrão sql ansi.
Segundo esse padrão, para retornar apenas uma linha são feitas duas operações: 
a primeira para retornar o registro
em si e a segunda para verificar se irá retornar mais uma linha ( o que iria 
cair na exceptio too_many_rows ). 
Então, um cursor implícito sempre irá fazer no mínimo dois fetches. Também sei 
que isso foi otimizado a partir da 
versão 2.3 do pl/sql, e o que eu falei acima está na documentação não é uma 
conclusão pessoal.

Acredito que além da questão perfomance o uso de cursores também é recomendado 
pela sua clareza e pela sua reusabilidade, você terá que escrever mais código 
mas o resultado é infinitamente superior.
Um monte de select´s perdidos no meio do código é o que existe de pior, mas 
isto é a minha opinião pessoal.

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


  - Original Message - 
  From: FERNANDES Marco A SOFTTEK 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 3:01 PM
  Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..


  Rafael,
  desculpe mas essa história de cursor explícito é mais rápido é balela num é 
não ? risos
  Alguém pode esclarecer isso.
  Já fiz trocentos testes e nunca vi diferença alguma entre os dois.
  Acho que é mais um mito oracleano !
  Rola alguém dar uma colher de chá pra lista ?

  André, eu tinha pedido exemplo daquela trigger que cria a sequencia.
  Vc mandou ela em outro email ?
  No seu email só vi o exemplo do refcursor.

  valeu,
  Marco.

  

  From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
PUB: Rafael Alexandre Schmitt
  Sent: quinta-feira, 3 de maio de 2007 14:51
  To: oracle_br@yahoogrupos.com.br
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..

  Eu faria :

  Declare
  cursor x is 

  select t.campo1, t.campo2...from table t
  where t.codigo = parâmetro;

  begin

  for c1 in x loop

  -- faça alguma coisa... 

  end loop;

  end;

  Lembrando que não há motivo para selecionar todos os campos se você não irá 
utilizá-los.
  De preferência use sempre cursores explícitos, segundo a documentação isto 
melhora a perfomance.

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

  - Original Message - 
  From: FERNANDES Marco A SOFTTEK 
  To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 11:35 AM
  Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..

  Renan,
  concordo com seu argumento sobre a coluna identidade... acredito que seria no 
mínimo útil
  que se tivesse criado isso no oracle como existe em outros bancos. Mas enfim, 
isso não é
  o fim do mundo pois é facilmente contornável !

  Com relação à procedure que retorna resultset eu já discordo em parte... acho 
que a forma
  de trabalhar no oracle é diferente dos outros bancos e acredito que não se 
faz necessário
  o uso desse tipo de procedure no oracle pelo uso de cursores ! os cursores 
são muito
  úteis e fáceis de se trabalhar. Tão simples como o próprio SELECT da sua proc 
!!!
  Se vc precisa por exemplo varrer o resultset pode fazer assim:

  for c_sql in ( select * from tabela where codigo = 'XXX')
  loop
  -- aqui vc coloca seu código
  end loop;

  Concordo se formos pensar que é de interesse da Oracle apresentar um BD que é 
compatível
  com outros bancos e facilidade para migração de banco (de banco XYZ para 
Oracle).

  Bom, se puder mostrar em que pontos de sua aplicação vc faz uso dessas 
procedures a
  gente pode te ajudar a adaptar da melhor forma dentro do oracle.

  Abraço,
  Marco.

  

  From: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
[mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br ] 
On Behalf Of PUB: Renan Nucci - CSM Soft
  Sent: quinta-feira, 3 de maio de 2007 11:19
  To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..

  Blz,, agradeço as respostas,, 
  agora sinceramente, acho o cumulo o banco de dados mais utilizado do mundo 
nao ter uma maneira mais facil para esse tipo de problemas

  Um outro ponto que eu nao estou acertando eh em relacao a procedures.. 

  Pois se tenhu que fazer um select dentro de uma procedure eu preciso declarar 
um vetor ou jogar o resultado do select em uma variavel???

  como faço pra declarar uma variavel pra acertar a procedure abaixo?

  create procedure teste (:cod in varchar)
  is
  

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Andre Santos
Renan

Hahaha... Nesse agradecimento do exemplo tosco, pareceu que você estava me
escorraçando.  =^)

Para saber como fazer a chamada da procedure, precisamos saber qual a
linguagem que você utiliza para isso... VB com ADO? PL/SQL ?...

[ ]

André


Em 03/05/07, Renan Nucci - CSM Soft [EMAIL PROTECTED] escreveu:

   Agradeco a todos que responderam em especial ao Andre que mandou esse
 exemplo tosco de procedure q vai me ajuda a esclarecer muita coisa..

 Vou tentar seguir as recomendacoes de leitura do Chiappa, q entende
 bastante do assunto, vi muita coisa sua na net..

 Agora soh mais uma duvida tosca..

 Como que eu chamo essa procedure, ,pois nao sei o que passar no segundo
 parametro...

 call sp_teste('20',???);

 
 []s

 
 * Renan S. Nucci *
 * Desenvolvedor *
 
 - Original Message -
 From: Andre Santos
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Sent: Thursday, May 03, 2007 2:15 PM
 Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
 gerado..

 Renan

 Mas não é difícil criar um trigger para fazer essa amarração.
 Vide o exemplo que acabei de mandar em resposta ao Marco.

 Há outros BD's que trabalham com o conceito de sequence também... DB2
 (da
 IBM), Postgre...
 Inclusive, se não me engano, tanto SEQUENCE, como colunas IDENTITY, fazem
 parte do padrão ANSI.
 Claro que uma coluna identity poderia facilitar em alguns casos... mas,
 pessoalmente, eu prefiro as sequences.

 Além do que o mestre Chiappa já mencionou, há coisas que você pode com
 sequences que não poderiam ser realizadas com identity.
 Por exemplo, tabelas diferentes seguindo uma mesma seqüência.

 A procedure que você exemplificou, ficaria +/- assim no Oracle (versão 9i
 ou
 superior):

 CREATE OR REPLACE PROCEDURE sp_teste
 (
 cod IN VARCHAR2,
 consulta OUT SYS_REFCURSOR
 )
 AS
 BEGIN
 OPEN consulta FOR
 SELECT * FROM tabela WHERE codigo = :cod;
 END sp_teste;
 /

 [ ]'s

 André

 Em 03/05/07, Renan Nucci - CSM Soft [EMAIL 
 PROTECTED]nucci.csm%40terra.com.br
 escreveu:
 
  Blz,, agradeço as respostas,,
  agora sinceramente, acho o cumulo o banco de dados mais utilizado do
 mundo
  nao ter uma maneira mais facil para esse tipo de problemas
 
  Um outro ponto que eu nao estou acertando eh em relacao a procedures..
 
  Pois se tenhu que fazer um select dentro de uma procedure eu preciso
  declarar um vetor ou jogar o resultado do select em uma variavel???
 
  como faço pra declarar uma variavel pra acertar a procedure abaixo?
 
  create procedure teste (:cod in varchar)
  is
  begin
  select * from tabela where codigo = :cod;
  end
 
  
  * Renan S. Nucci *
  * Desenvolvedor *
  * CSM Software *
  
  - Original Message -
  From: Andre Santos
  To: oracle_br@yahoogrupos.com.br 
  oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.br
  Sent: Thursday, May 03, 2007 11:02 AM
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
  gerado..
 
  Só acrescentando, ao que o Marco já explicou, é possível criar um
 trigger
  para insert, obtendo o valor da sequence (dessa forma ficaria bem
  semelhante ao uma coluna do tipo autonumeração).
 
  [ ]'s
 
  André
 
  Em 02/05/07, FERNANDES Marco A SOFTTEK 
  [EMAIL PROTECTED]mfernandes%40fornecedores.confab.com.br
 mfernandes%40fornecedores.confab.com.br
  escreveu:
 
   Renan,
   pequeno detalhe no seu select vc não usa mais a sequence !
   Use-a apenas no insert.
  
   O currentval da sequence não é o que vc procura.
   Vc precisa especificar o código na busca e não o valor da sequence.
   Como te disse, a sequence não tem relação com a tabela. É apenas um
   artifício para controlar um sequencia numérica.
  
   Portanto, não use o currentval no select, pois ele não serve para
 isso.
  
   Caso vc queira consultar o último registro inserido utilize a cláusula
   where usando max(campo_id).
  
   valeu, abraço,
   Marco.
  
   
  
   From: oracle_br@yahoogrupos.com.br 
   oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.broracle_br%40yahoog
  rupos.com.br[mailto:
   oracle_br@yahoogrupos.com.br 
   oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.broracle_br%40yahoog
  rupos.com.br] On Behalf
   Of PUB: Renan Nucci - CSM Soft
   Sent: quarta-feira, 2 de maio de 2007 17:52
   To: oracle_br@yahoogrupos.com.br 
   oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.broracle_br%40yahoog
  rupos.com.br
   Subject: Re: [oracle_br] Criacao de sequence e dar select no novo
 valor
   gerado..
  
   Criei conforme vossa orientação, mas nao consigo selecionar o que foi
   inserido..
   O que esta errado no que fiz abaixo??
  
   /*cria a sequencia*/
   create sequence produtos_codigo increment by 1 minvalue 1 nomaxvalue
  start
   with 1
   commit
  
   /*tenta nserir usando 

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Renan Nucci - CSM Soft
hahahaha  Andre,, 
eu quis dizer tosco pq pra vcs devem ser tosco de tao facil, mas pra mim tem 
muita importancia,, foi isso que quis dizer nao ia te escurraça, pq vc me 
mostrou o q realmente eu tava procurando.. 

Eh o seguinte para eu ter independencia de banco estou pensando em criar 
procedures nos meus dois bancos (Oracle e SS) pq imagino q a chamada para os 
dois bancos sejam iguais,.. o q muda eh o corpo da procedure.. Portando ja 
criei as procedures no SS e agora chegou a hora de crialas  no oracle.. e ae q 
ta o problema.. 

Estou utilizando o Oracle 10 e utilizando ADO (namespace oracle client no C#).

bom quem puder me adicionar no msn pra me ajudar, sera bem vindo.. 
[EMAIL PROTECTED]



* Renan S. Nucci *
* Desenvolvedor *

  - Original Message - 
  From: Andre Santos 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 4:03 PM
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..


  Renan

  Hahaha... Nesse agradecimento do exemplo tosco, pareceu que você estava me
  escorraçando. =^)

  Para saber como fazer a chamada da procedure, precisamos saber qual a
  linguagem que você utiliza para isso... VB com ADO? PL/SQL ?...

  [ ]

  André

  Em 03/05/07, Renan Nucci - CSM Soft [EMAIL PROTECTED] escreveu:
  
   Agradeco a todos que responderam em especial ao Andre que mandou esse
   exemplo tosco de procedure q vai me ajuda a esclarecer muita coisa..
  
   Vou tentar seguir as recomendacoes de leitura do Chiappa, q entende
   bastante do assunto, vi muita coisa sua na net..
  
   Agora soh mais uma duvida tosca..
  
   Como que eu chamo essa procedure, ,pois nao sei o que passar no segundo
   parametro...
  
   call sp_teste('20',???);
  
   
   []s
  
   
   * Renan S. Nucci *
   * Desenvolvedor *
   
   - Original Message -
   From: Andre Santos
   To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
   Sent: Thursday, May 03, 2007 2:15 PM
   Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
   gerado..
  
   Renan
  
   Mas não é difícil criar um trigger para fazer essa amarração.
   Vide o exemplo que acabei de mandar em resposta ao Marco.
  
   Há outros BD's que trabalham com o conceito de sequence também... DB2
   (da
   IBM), Postgre...
   Inclusive, se não me engano, tanto SEQUENCE, como colunas IDENTITY, fazem
   parte do padrão ANSI.
   Claro que uma coluna identity poderia facilitar em alguns casos... mas,
   pessoalmente, eu prefiro as sequences.
  
   Além do que o mestre Chiappa já mencionou, há coisas que você pode com
   sequences que não poderiam ser realizadas com identity.
   Por exemplo, tabelas diferentes seguindo uma mesma seqüência.
  
   A procedure que você exemplificou, ficaria +/- assim no Oracle (versão 9i
   ou
   superior):
  
   CREATE OR REPLACE PROCEDURE sp_teste
   (
   cod IN VARCHAR2,
   consulta OUT SYS_REFCURSOR
   )
   AS
   BEGIN
   OPEN consulta FOR
   SELECT * FROM tabela WHERE codigo = :cod;
   END sp_teste;
   /
  
   [ ]'s
  
   André
  
   Em 03/05/07, Renan Nucci - CSM Soft [EMAIL 
PROTECTED]nucci.csm%40terra.com.br
   escreveu:
   
Blz,, agradeço as respostas,,
agora sinceramente, acho o cumulo o banco de dados mais utilizado do
   mundo
nao ter uma maneira mais facil para esse tipo de problemas
   
Um outro ponto que eu nao estou acertando eh em relacao a procedures..
   
Pois se tenhu que fazer um select dentro de uma procedure eu preciso
declarar um vetor ou jogar o resultado do select em uma variavel???
   
como faço pra declarar uma variavel pra acertar a procedure abaixo?
   
create procedure teste (:cod in varchar)
is
begin
select * from tabela where codigo = :cod;
end
   

* Renan S. Nucci *
* Desenvolvedor *
* CSM Software *

- Original Message -
From: Andre Santos
To: oracle_br@yahoogrupos.com.br 
oracle_br%40yahoogrupos.com.broracle_br%40yahoog
   rupos.com.br
Sent: Thursday, May 03, 2007 11:02 AM
Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
gerado..
   
Só acrescentando, ao que o Marco já explicou, é possível criar um
   trigger
para insert, obtendo o valor da sequence (dessa forma ficaria bem
semelhante ao uma coluna do tipo autonumeração).
   
[ ]'s
   
André
   
Em 02/05/07, FERNANDES Marco A SOFTTEK 
[EMAIL PROTECTED]mfernandes%40fornecedores.confab.com.br
   mfernandes%40fornecedores.confab.com.br
escreveu:
   
 Renan,
 pequeno detalhe no seu select vc não usa mais a sequence !
 Use-a apenas no insert.

 O currentval da sequence não é o que vc procura.
 Vc precisa especificar o código na 

[oracle_br] Re: Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Aleksandro
Utilize também dessa forma caso ache que é mais prático

Depois que criar uma sequence faça o seguinte

INSERT INTO TABELA (NUMERO,CAMPO1,CAMPO2)
VALUES (NOME_DA_SEQUENCE.NEXTVAL,'BLABLA','TESTE','SEQUENCE')


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

 Só acrescentando, ao que o Marco já explicou, é possível criar um
trigger
 para insert, obtendo o valor da sequence (dessa forma ficaria bem
 semelhante ao uma coluna do tipo autonumeração).
 
 [ ]'s
 
 André
 
 
 Em 02/05/07, FERNANDES Marco A SOFTTEK 
 [EMAIL PROTECTED] escreveu:
 
Renan,
  pequeno detalhe no seu select vc não usa mais a sequence !
  Use-a apenas no insert.
 
  O currentval da sequence não é o que vc procura.
  Vc precisa especificar o código na busca e não o valor da sequence.
  Como te disse, a sequence não tem relação com a tabela. É apenas um
  artifício para controlar um sequencia numérica.
 
  Portanto, não use o currentval no select, pois ele não serve para
isso.
 
  Caso vc queira consultar o último registro inserido utilize a cláusula
  where usando max(campo_id).
 
  valeu, 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: Renan Nucci - CSM Soft
  Sent: quarta-feira, 2 de maio de 2007 17:52
  To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo
valor
  gerado..
 
  Criei conforme vossa orientação, mas nao consigo selecionar o que foi
  inserido..
  O que esta errado no que fiz abaixo??
 
  /*cria a sequencia*/
  create sequence produtos_codigo increment by 1 minvalue 1
nomaxvalue start
  with 1
  commit
 
  /*tenta nserir usando sequence*/
  ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD' /*altera formato da
  sessao*/
  insert into Produtos values(produtos_codigo.NEXTVAL, 'produto1', 5, 2,
  '2001-01-01') ;
  commit;
  /*seleciona o que foi inserido*/
  select * from produtos where codigo = produtos_codigo.CURRVAL;
 
  
  * Renan S. Nucci *
  * Desenvolvedor *
  * CSM Software *
  
  - Original Message -
  From: FERNANDES Marco A SOFTTEK
  To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
mailto:
  oracle_br%40yahoogrupos.com.br
  Sent: Wednesday, May 02, 2007 5:10 PM
  Subject: RE: [oracle_br] Criacao de sequence e dar select no novo
valor
  gerado..
 
  Renan, a tabela não tem ligação direta com a sequence.
  A tabela tem uma coluna tipo Number normal.
  O vínculo estará apenas no insert na tabela da seguinte forma:
 
  insert into tabela (coluna_ID, coluna_2, coluna_3)
  values (nome_sequence.nextval(), valor_2, valor_3);
 
  A sequence quando criada vc especifica o valor inicial, incremento,
  máximo, ciclicidade, etc.
  Portanto, vc deve iniciar com 1 e máximo de 9 onde o número de
noves
  depende do
  tamanho do seu number... se for number(3) o máximo é 999 o
incremento
  põe 1, ou seja,
  soma sempre 1 (incremento normalmente usado).
 
  Ou seja, na criação da tabela não tem segredo... cria ela normal.
  Aí nos inserts tem que tratar... não é recomendado reaproveitamento de
  chave nesse
  caso pois vc teria que tratar também a sequence.
 
  Eu já vi muita gente usar sequence mas tbem já vi muita gente usar o
  select max + 1.
 
  Abraço,
  Marco.
 
  
 
  From: oracle_br@yahoogrupos.com.br
oracle_br%40yahoogrupos.com.brmailto:
  oracle_br%40yahoogrupos.com.br
[mailto:oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.brmailto:
  oracle_br%40yahoogrupos.com.br ] On Behalf Of PUB: Renan Nucci -
CSM Soft
  Sent: quarta-feira, 2 de maio de 2007 16:45
  To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
mailto:
  oracle_br%40yahoogrupos.com.br
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo
valor
  gerado..
 
  O que me impediu de criar a sequence eh o primeiro valor, pois nas
minhas
  tentativas estavao dando erros. lembro de ter lido que para usar uma
  sequence o campo deve ter o valor gerado pela sequence.. :/
 
  eh por isso q pedi um exemplo que me mostrasse a traducao de uma
tabela
  do ss para o oracle..
 
  
  * Renan S. Nucci *
  * Desenvolvedor *
  * CSM Software *
  
  - Original Message -
  From: FERNANDES Marco A SOFTTEK
  To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
mailto:
  oracle_br%40yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br
  Sent: Wednesday, May 02, 2007 4:04 PM
  Subject: RE: [oracle_br] Criacao de sequence e dar select no novo
valor
  gerado..
 
  Para se encriptar uma procedure é necessário o uso da ferramenta WRAP
  existente no oracle... cada versão de banco tem sua própria ferramenta
  wrap.
 
  Dá uma 

Re: [oracle_br] Re: Redução de tablespace - Oracle 8.1.7

2007-05-03 Por tôpico Cap Mota

Chiappa, mais uma vez muito obrigado, tanto pelo comando pela 
orientação. Funcionou beleza.

[]'s

Marcel

jlchiappa escreveu:

 Marcel, não tem aonde trancar, LOBs são um conceito comum no banco
 Oracle, mas se vc ainda tem dúvidas nele eu recomendaria fortemente
 um bom estudo do manual Oracle8i Application Developer's Guide -
 Large Objects (LOBs) e do Concepts, absolutamente tudo o que vc
 precisa saber sobre LOBs está lá...
 No caso em questão : primeiro vc precisa saber o que é esse segmento
 SYS_LOBnnn que vc tem, consulte a DBA_SEGMENTS :

 [EMAIL PROTECTED]:SQLselect * from dba_segments where
 segment_name='SYS_LOB017499C2$$';

 OWNER SEGMENT_NAME
 PARTITION_NAME SEGMENT_TYPE
 TABLESPACE_NAME HEADER_FILE
 HEADER_BLOCK BYTES BLOCKS
 EXTENTS INITIAL_EXTENT NEXT_EXTENT
 MIN_EXTENTS MAX_EXTENTS PCT_INCREASE
 FREELISTS FREELIST_GROUPS RELATIVE_FNO BUFFER_
  --- -
 - -- -- --
  -- -- --
 -- -- -- 
 -- -- -- -- --
  -- ---
 SCOTT SYS_LOB017499C2
 $$ LOBSEGMENT
 USERS 7
 34689 163840 20
 1 163840 163840 1
 2147483645 0 1
 1 7 DEFAULT

 == já que é um lob segment, vc consulta a DBA_LOBS pra saber quem é
 o dono, em qual tabela ele reside e qual é a coluna que é LOB :

 [EMAIL PROTECTED]:SQLselect * from dba_lobs where
 segment_name='SYS_LOB017499C2$$';

 OWNER TABLE_NAME
 COLUMN_NAME SEGMENT_NAME
 INDEX_NAME CHUNK
 PCTVERSION RETENTION FREEPOOLS CACHE LOGGING
 IN_
  -- --
  --- -
 - -- -- -- ---
 --- -- --- ---
 SCOTT TB_LOB
 C2 SYS_LOB017499C2$$
 SYS_IL017499C2$$ 8192
 10 10800 NO YES YES

 == ok, no meu caso era a coluna C2 da tabela TB_LOB, como vc viu na
 DBA_SEGMENTS hoje esse segmento está na tablespace USERS, vou mover :

 [EMAIL PROTECTED]:SQLalter table scott.TB_LOB move lob (C2) store as
 (tablespace TS_LMT_UNIF);

 Tabela alterada.

 == a coluna continua existindo, normal...

 [EMAIL PROTECTED]:SQLselect * from dba_lobs where
 segment_name='SYS_LOB017499C2$$';

 OWNER TABLE_NAME
 COLUMN_NAME SEGMENT_NAME
 INDEX_NAME CHUNK
 PCTVERSION RETENTION FREEPOOLS CACHE LOGGING
 IN_
  -- --
  --- -
 - -- -- -- ---
 --- -- --- ---
 SCOTT TB_LOB
 C2 SYS_LOB017499C2$$
 SYS_IL017499C2$$ 8192
 10 10800 NO YES YES

 == mas o segmento foi pra outra tablespace :

 [EMAIL PROTECTED]:SQLselect * from dba_segments where
 segment_name='SYS_LOB017499C2$$';

 OWNER SEGMENT_NAME
 PARTITION_NAME SEGMENT_TYPE
 TABLESPACE_NAME HEADER_FILE
 HEADER_BLOCK BYTES BLOCKS
 EXTENTS INITIAL_EXTENT NEXT_EXTENT
 MIN_EXTENTS MAX_EXTENTS PCT_INCREASE
 FREELISTS FREELIST_GROUPS RELATIVE_FNO BUFFER_
  --- -
 - -- -- --
  -- -- --
 -- -- -- 
 -- -- -- -- --
  -- ---
 SCOTT SYS_LOB017499C2
 $$ LOBSEGMENT
 TS_LMT_UNIF 26
 265 1048576 128
 1 163840 1048576 1
 2147483645 0 1
 1 26 DEFAULT

 []s

 Chiappa



-- 
.
Marcel Francisco MOTA - Cap QCO
Gabinete do Comandante do Exército
Seção de Telemática
Fone: 3415.56.36 RITEX: 860.5636




[oracle_br] Cota em tablespace temporário

2007-05-03 Por tôpico Aleksandro
Boa tarde,

Existe quota para um usuário que esta amarrado com uma determinada
tablespace temporária.

Abaixo segue os comandos que utilizei, a cota unlimited somente
funcionou para tablespaces que não são temporárias, isso quer dizer
que as temporárias não necessitam de cotas definidas ?

Utilizo o oracle 10.2.0.1

Segue os comandos utilizados a a mensagem de erro

SQL 
SQL ALTER USER USUARIO1 TEMPORARY TABLESPACE TMP1;
Usuário alterado.
SQL ALTER USER USUARIO DEFAULT TABLESPACE PERMANENTE1;
Usuário alterado.
SQL ALTER USER USUARIO QUOTA UNLIMITED ON PERMANENTE1;
Usuário alterado.
SQL ALTER USER USUARIO QUOTA UNLIMITED ON TMP1;
ALTER USER USUARIO QUOTA UNLIMITED ON TMP1
*
ERRO na linha 1:
ORA-30041: Cannot grant quota on the tablespace





[oracle_br] Subconjunto de um Banco

2007-05-03 Por tôpico Augusto Cesar
Olá pessoal,

Preciso criar 2 bancos: um para treinamento e outro para desenvolvimento. 
Todos dois receberão dados da produção. Aí está meu problema: quero que 
apenas parte desses dados seja migrada e não 100%. Como posso criar um 
subconjunto (50%-75%) do banco de produção? Existe alguma ferramenta ou 
script para isso?

Obrigado,

_
Augusto César
Analista - DBA Oracle

_
MSN Messenger: converse com os seus amigos online. 
http://messenger.msn.com.br



Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Andre Santos
Marco

Segue um exemplo.
Supondo uma tabela TESTE(com um campo codigo do tipo number) e uma
sequence SQ_TESTE:

CREATE OR REPLACE TRIGGER tr_teste_ins
BEFORE INSERT ON teste
FOR EACH ROW
BEGIN
   SELECT sq_teste.NEXTVAL
   INTO :NEW.codigo
   FROM DUAL;
END;
/

[ ]'s

André


Em 03/05/07, FERNANDES Marco A SOFTTEK 
[EMAIL PROTECTED] escreveu:

   André, vc poderia dar um exemplo disso pra ficar mais claro ?

 

 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: Andre Santos
 Sent: quinta-feira, 3 de maio de 2007 11:02
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
 gerado..

 Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
 para insert, obtendo o valor da sequence (dessa forma ficaria bem
 semelhante ao uma coluna do tipo autonumeração).

 [ ]'s

 André

 Em 02/05/07, FERNANDES Marco A SOFTTEK 
 [EMAIL PROTECTED]mfernandes%40fornecedores.confab.com.brmailto:
 mfernandes% mfernandes%2540fornecedores.confab.com.br  escreveu:

  Renan,
  pequeno detalhe no seu select vc não usa mais a sequence !
  Use-a apenas no insert.
 
  O currentval da sequence não é o que vc procura.
  Vc precisa especificar o código na busca e não o valor da sequence.
  Como te disse, a sequence não tem relação com a tabela. É apenas um
  artifício para controlar um sequencia numérica.
 
  Portanto, não use o currentval no select, pois ele não serve para isso.
 
  Caso vc queira consultar o último registro inserido utilize a cláusula
  where usando max(campo_id).
 
  valeu, abraço,
  Marco.
 
  
 
  From: 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] On
 Behalf
  Of PUB: Renan Nucci - CSM Soft
  Sent: quarta-feira, 2 de maio de 2007 17:52
  To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
  gerado..
 
  Criei conforme vossa orientação, mas nao consigo selecionar o que foi
  inserido..
  O que esta errado no que fiz abaixo??
 
  /*cria a sequencia*/
  create sequence produtos_codigo increment by 1 minvalue 1 nomaxvalue
 start
  with 1
  commit
 
  /*tenta nserir usando sequence*/
  ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD' /*altera formato da
  sessao*/
  insert into Produtos values(produtos_codigo.NEXTVAL, 'produto1', 5, 2,
  '2001-01-01') ;
  commit;
  /*seleciona o que foi inserido*/
  select * from produtos where codigo = produtos_codigo.CURRVAL;
 
  
  * Renan S. Nucci *
  * Desenvolvedor *
  * CSM Software *
  
  - Original Message -
  From: FERNANDES Marco A SOFTTEK
  To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.br mailto:
  oracle_br%40yahoogrupos.com.br
  Sent: Wednesday, May 02, 2007 5:10 PM
  Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor
  gerado..
 
  Renan, a tabela não tem ligação direta com a sequence.
  A tabela tem uma coluna tipo Number normal.
  O vínculo estará apenas no insert na tabela da seguinte forma:
 
  insert into tabela (coluna_ID, coluna_2, coluna_3)
  values (nome_sequence.nextval(), valor_2, valor_3);
 
  A sequence quando criada vc especifica o valor inicial, incremento,
  máximo, ciclicidade, etc.
  Portanto, vc deve iniciar com 1 e máximo de 9 onde o número de noves
  depende do
  tamanho do seu number... se for number(3) o máximo é 999 o
 incremento
  põe 1, ou seja,
  soma sempre 1 (incremento normalmente usado).
 
  Ou seja, na criação da tabela não tem segredo... cria ela normal.
  Aí nos inserts tem que tratar... não é recomendado reaproveitamento de
  chave nesse
  caso pois vc teria que tratar também a sequence.
 
  Eu já vi muita gente usar sequence mas tbem já vi muita gente usar o
  select max + 1.
 
  Abraço,
  Marco.
 
  
 
  From: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
  oracle_br%40yahoogrupos.com.br 
  [mailto:oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
  oracle_br%40yahoogrupos.com.br ] On Behalf Of PUB: Renan Nucci - CSM
 Soft
  Sent: quarta-feira, 2 de maio de 2007 16:45
  To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br 

[oracle_br] ORA-01555 snapshot too old

2007-05-03 Por tôpico Luiz Fernando
Boas pessoal,

rdbms 9i (9.2.0.7 ee)
hp-ux 11.11

seguinte: a alguns dias o alert.log tem mostrado msgs ORA-01555 
(snapshot too old). Como estas msgs começaram a aparecer durante a 
madrugada, onde tbém está rodando o backup online, achei que o 
segmento de Undo havia estourado. Pra não perder muito tempo com 
isso, simplesmente aumentei em 50% a Undo tablespace.

Acontece que os erros continuam a aparecer. Da última vez, estava 
vendo a ocupação da tablespace quando uma nova msg ORA-01555 surgiu 
no alert.log. 

Aí surgiu minha dúvida: no momento da geração do erro, a ocupação da 
Undo estava em 500Mb, que correspondem a apenas 5% da Undo (10Gb). Se 
não está havendo estouro da Undo, o que pode estar gerando esses 
erros?

Desde já, tks!

lfr66