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

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

On 7/25/07, amorrimm <[EMAIL PROTECTED]> wrote:
>
>   Boa tarde pessoal,
>
> Tenho um oracle 9 instalado que possui 3 databases. EStou tentando
> criar um 4 pelo DBCA mas é exibido a seguinte mensage: erro na criação
> do processo d:\oracle\ora92\bin\sqlplus -s/nolog e não consigo de jeito
> algum criar o database.
>
> Tento criar de forma manual, pelo comando create database e me é
> exibido a mensagem de erro: ORA: 01501 create failed / ORA: 01100
> Database Already mounted.
>
> alguem por favor, tem ideia do que possa estar ocorredo ?
>
>  
>



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


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



[oracle_br] Testar o .dmp

2007-07-25 Por tôpico Fábio Gibon - Comex System
Pessoal,
tenho como testar a integridade física do .dmp sem ter que 
importá-lo? (eu já fiz um imp com o parêmetro show=y, mas se tiver algo mais 
agradeço)

abraços
 
Gibon

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



>Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais acesse: http://www.oraclebr.com.br/codigo/ListaCodigo.php 
--
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
>O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/  

  
Links do Yahoo! Grupos

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

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

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

 


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

2007-07-25 Por tôpico Anderson Haertel Rodrigues
Olá Alexandro,

Desculpa a demora. Como o Tio Marcio disse, concentre
os teus esforço no desenho da aplicação (como parece
ser um ponto em comum, deve ser "fácil" encontrar o
problema).

Quanto aos modos passados, tranquilo, é intenção de
lock exclusivo e lock exclusivo propriamente dito.
Investigue o fato de FK envolvidas, transações longas,
etc.

Sucesso,
Anderson

--- alexandro_assencao
<[EMAIL PROTECTED]> escreveu:

> Olá Anderson !!!
> 
> Até identifico em meu banco qual é o tipo de lock
> que estou tendo.
> Os tipos são: 
> 3 - 'Row Exclusive (SX)',
> 6 - 'Exclusive (X)'
> Identifiquei também que os locks estão ocorrendo
> sempre em uma tabela
> em específico, eu chego até matar algumas conexões
> em execução no
> banco que nunca acabam. Quando eu elimino estas
> conexões logo elas
> liberam as sessões em wait porém depois de meia hora
> vem o lock
> novamente e as demais sessões ficam travadas.
> 
> Você tem idéia do que mais preciso saber para
> identificar o problema ?
> 
> Obrigado pela ajuda.
> 
> 
> 
> >Apostilas » Dicas e Exemplos » Funções » Mundo
> Oracle » Package » Procedure » Scripts » Tutoriais
> acesse:
> http://www.oraclebr.com.br/codigo/ListaCodigo.php 
>
--
> >Atenção! As mensagens do grupo ORACLE_BR são de
> acesso público e de inteira responsabilidade de seus
> remetentes.
> Acesse:
>
http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> 
>
--
> >O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
> http://www.oraclebr.com.br/  
>

>  
> Links do Yahoo! Grupos
> 
> 
>  
> 



  Flickr agora em português. Você cria, todo mundo vê.
http://www.flickr.com.br/


[oracle_br] Res:Re: Dúvida quanto a expurgo de dados

2007-07-25 Por tôpico jlchiappa
Muito bem, conceito errôneo não-Oracle jogado na lata de lixo, sobre o
assunto eu ainda tenho o seguinte a dizer :

 1. vc não diz, mas imagino pela sua descrição que PODEM haver
registros que deletaram normalmente e PODEM haver registros que não
possam ser deletados (provavelmente devido à violação de constraints),
certo ? Não lembro se vc citou a versão do seu banco na thread, ** MAS
** Realmente se for banco 9i ou inferior vc está correto em concluir
que um Cursor num LOOP é a opção - apenas no banco 10g é que foi
introduzida a figura do SQL DML Error Logging, que é uma feature aonde
os registros com erros após um DML qquer AUTOMATICAMENTE vão pruma
tabela de log de erros ASSIM, se o seu banco 10g, AINDA é SQL **
direto ** a resposta, ok ?  Só mesmo se vc (tal como eu) ainda estiver
às voltas com banco 9i, aí sim que (infelizmente) um cursor loop vai
ser necessário, nesse caso como eu disse na msg, AO MENOS USE BULK
COLLECT, ok ???
  Note também que eu falei de constraints/validações, SE a tabela não
tiver constraints de dados, OBVIAMENTE em o DELETE sendo atômico (por
definição), NÂO TEM COMO só alguns registros afetados pelo DELETE
falharem, é tudo ou nada - em não havendo constraints na parada, as
razões únicas de falha são banco indisponível, falta/esgotamento de
temp ou undo, coisas do tipo, que fazem o próprio comando DELETE
falhar na íntegra, seriam TODOS os registros do DELETE que falhariam,
yes ?? Então em não havendo constraints vc AINDA pode fazer um único
DELETE, capturando qtdade de linhas com SQL%ROWCOUNT, sim...
  
 2. Vc não é o DBA, mas (presumivelmente) é você quem conhece o
sistema, as tabelas, as regras de negócio, as quantidades de dados
envolvidas, certo ? Em sendo assim então é VOCÊ que tem que avaliar
(junto com o dba) qual a quantidade de registros que será manipulada e
a frequência, pra ver se vale a pena se criar índice  (FBI ou b*tree
comum que seja), ou se vale mais a pena um full table scan rápido e
otimizado...
 
 3. Estruturas : num ambiente onde há cooperação, com certeza o DBA
não te dá acesso avc (desenvolvedor/analista) às views de sistema, **
MAS ** te dá algumas views mais restritas, que te mostrem estruturas
internas, se há partição, de que tipo é o índice criado, quais índices
existem, qual é o esquema de armazenamento físico (extents, cláusula
de STORAGE) usados, OU pelo menos se vc perguntar ele te diz a info..
Isso tudo TEM SIM influência direta na otimização do seu código - se
vc não hoje tem acesso à estas infos (ao menos de forma básica,
parcial e restrita) , vc NÂO PODERÁ criar código o mais otimizado possível
 
 4. finalmente, só pra constar a informação correta , em não sendo DBA
vc não poderá atuar, mas o fato é que FRAGMENTAÇÃO normalmente se
chama a situação em que há espaço LIVRE numa tablespace ** MAS **
quando da inserção de novos dados é impossível o banco re-usar o
espaço livre já existente - tipicamente foram criados na mesma
tablespace vários segmentos que alocam o espaço (via extents) de
tamanhos diferentes, aí SIM quando vc deletou dados no segmento A que
usava extents de tamanho X, COM CERTEZA se um segmento B pedir por
extents de tamanho diferente de X não vai haver, X vai ficar SEM USO,
é este o cenário de fragmentação. O que ocorre é que esse cenário de
fragmentação TEM SIM uma cura imediata e absolutamente EFETIVA, que é
vc usar tablespasces LMT (Local Managed) de tamanho UNIFORME, com isso
fica fisicamente IMPOSSÌVEL haver fragmentação propriamente dita. 
Numa tablespace LMT corretamente criada, o que a sua deleção vai fazer
é liberar espaço na forma de extents livres, que os futuros INSERTs **
FATALMENTE ** vão reusar, evitando crescimento sem necessidade da
ocupação em disco, mas isso *** NÂO È FRAGMENTAÇÂO ***, nem é o DELETE
a cura pra fragmentação, ok ?
 
 []s
 
   Chiappa
   
--- Em oracle_br@yahoogrupos.com.br, "Bruno Maximo"
<[EMAIL PROTECTED]> escreveu
>
> Entendi,
> 
> na verdade, eu tinha essa idéia de dar um expurgo na tabela, utilizando 
> apenas um lock para a tabela inteira, visto que meu conceito é
voltado para 
> o DB2, e lá existe mesmo uma tabela de locks e lockando a tabela
inteira, no 
> Db2 é mais rápido, pensei que o Oracle tivésse um controle parecido de 
> locks, pq se fosse, haveria um overhead desnecessário em se lockar cada 
> linha, visto que o tamanho ocupado por um lock, seja para uma tabela
ou para 
> uma linha da tabela é o mesmo, mas no caso de linha da tabela, é 
> multiplicado pela quantidade de linhas que se quer excluir,
transformando 
> assim em milhões de locks. Na verdade, essa é uma tabela em que ficam 
> registrados todos os erros que houveram no sistema, para histórico,
e ela 
> não tem índices( acredito eu, pois não sou DBA da base), e a
necessidade do 
> PL/Sql, mesmo sendo mais lento ( muito mais ), é porque eles querem
saber 
> exatamente qu

[oracle_br] PROBLEMAS NA CRIAÇÀO DE DATABASE

2007-07-25 Por tôpico amorrimm
Boa tarde pessoal,

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

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

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







[oracle_br] Relatório de disponibilidade e segurança - Oracle

2007-07-25 Por tôpico leo_n_lopes
Olá pessoal!!


Sou novo no fórum e gostaria de uma ajuda se possível.
Temos um banco de dados Oracle 10 aqui na empresa. A empresa 
responsável pelo banco de dados é a mesma que desenvolve nossas 
aplicações. Preciso que essa empresa me forneça, periódicamente, 
informações sobre o estado atual do banco de dados, de forma que eu 
tenha garantias de disponibilidade e segurança nos dados. Daí vem minha 
dúvida: Que tipo de informações eu preciso solicitar a empresa, para 
que eu tenha essas garantias por escrito? (garantia de disponibilidade, 
segurança, etc)


Desde já agradeço a atenção de todos


Leonardo Lopes
LNLSoft.com.br
MundoHost.com.br



[oracle_br] Re: Oracle Windows

2007-07-25 Por tôpico Anderson
Se você estiver usando a versão 10g, você pode 'restaurar um backup'
em uma plataforma diferente com a feature 'transportable tablespace'.

Mas, via RMAN 'puro', como o Gustavo Venturini disse, não é possível.

Outra forma de 'restaurar backups' em plataformas diferentes é com o
uso de datapump ou o exp/imp tradicionais, se é que isso pode ser
considerado uma rotina de backup/recovery.

Anderson Rodrigo Farias


--- Em oracle_br@yahoogrupos.com.br, "Gustavo Venturini de Lima"
<[EMAIL PROTECTED]> escreveu
>
> Não é possível...
> O formato dos arquivos são diferentes...
> 
> Em 23/07/07, lafaietebritto <[EMAIL PROTECTED]> escreveu:
> >
> >   Boa tarde,
> >
> > é possivel restaurar um coldbackup de uma base em sistema operacional
> > windows em sistema operacional HP-UX? caso seja possivel o que devo
> > fazer??
> >
> > Obrigado.
> >
> >  
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




Re: [oracle_br] Validação de master/detail pelo Oracle

2007-07-25 Por tôpico Vitor Hugo Campos
Em 25/07/07, Vitor Hugo Campos<[EMAIL PROTECTED]> escreveu:
> Em 25/07/07, Josinei Barbosa da Silva <[EMAIL PROTECTED]> escreveu:
> > Boa tarde a todos?
> >
> >  Tenho uma tabela de nota fiscal e outra de itens da nota. Como manda
> >  os bons costumes de modelagem, a minha tabela de itens tem um foreign
> >  key para a tabela de nota fiscal. Eu não posso permitir que uma nota
> >  fiscal exista sem itens. Como faço isso?
> >  Meu primeiro impulso foi pensar em uma trigger, mas os itens são
> >  incluídos depois da nota, logo não consigo executar um SELECT na
> >  tabela de itens durante a inclusão de uma nota.
> >
> >  Como eu poderia resolver isso pelo banco de dados?
> >
> >  Desde já, obrigado.
>
> Há um link explicando isso no site do AskTom:
> http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:42170695313022
>
> No seu caso, você poderia criar um campo VALTOTALITENS para isso...
> além de resolver seu problema, você não precisa fazer um join para
> fazer consultas relativas ao total dos itens das notas!! :D
Só explicando melhor o que o artigo sugere: em vez de você fazer uma
constraint "normal" (já que ao inserir a constraint já seria violada
porque seu valor é zero), colocando a constraint como DEFERRED, a
constraint só é verificada na hora do COMMIT, e como a gravação da
nota é atômica (espero eu... :P), na hora em que a constraint for
verificada (ou seja, no COMMIT), o valor já vai ter sido incrementado
pela trigger dos itens.

Essa técnica também é útil para o caso de, por algum motivo, você
precisar mudar o valor de um campo chave de uma tabela que tenha uma
FK relacionada, mas isso também permite algumas bizarrices do tipo
"poder inserir em uma tabela filha antes de inserir na tabela mãe",
enlouquecendo qualquer trigger que dependa que a filha exista antes da
mãe...

-- 
Vitor Hugo Campos
Desenvolvedor/DBA Oracle 10g

E-mail/MSN: [EMAIL PROTECTED]
Telefones: (27) 2121-5531 / 8819-2643
skype:vitorh.campos


Re: [oracle_br] Validação de master/detail pelo Oracle

2007-07-25 Por tôpico Vitor Hugo Campos
Em 25/07/07, Josinei Barbosa da Silva <[EMAIL PROTECTED]> escreveu:
> Boa tarde a todos?
>
>  Tenho uma tabela de nota fiscal e outra de itens da nota. Como manda
>  os bons costumes de modelagem, a minha tabela de itens tem um foreign
>  key para a tabela de nota fiscal. Eu não posso permitir que uma nota
>  fiscal exista sem itens. Como faço isso?
>  Meu primeiro impulso foi pensar em uma trigger, mas os itens são
>  incluídos depois da nota, logo não consigo executar um SELECT na
>  tabela de itens durante a inclusão de uma nota.
>
>  Como eu poderia resolver isso pelo banco de dados?
>
>  Desde já, obrigado.

Há um link explicando isso no site do AskTom:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:42170695313022

No seu caso, você poderia criar um campo VALTOTALITENS para isso...
além de resolver seu problema, você não precisa fazer um join para
fazer consultas relativas ao total dos itens das notas!! :D

-- 
Vitor Hugo Campos
Desenvolvedor/DBA Oracle 10g

E-mail/MSN: [EMAIL PROTECTED]
Telefones: (27) 2121-5531 / 8819-2643
skype:vitorh.campos


[oracle_br] Validação de master/detail pelo Oracle

2007-07-25 Por tôpico Josinei Barbosa da Silva
Boa tarde a todos?

Tenho uma tabela de nota fiscal e outra de itens da nota. Como manda
os bons costumes de modelagem, a minha tabela de itens tem um foreign
key para a tabela de nota fiscal. Eu não posso permitir que uma nota
fiscal exista sem itens. Como faço isso?
Meu primeiro impulso foi pensar em uma trigger, mas os itens são
incluídos depois da nota, logo não consigo executar um SELECT na
tabela de itens durante a inclusão de uma nota.

Como eu poderia resolver isso pelo banco de dados?

Desde já, obrigado.



Re: [oracle_br] Oracle Windows

2007-07-25 Por tôpico Gustavo Venturini de Lima
Não é possível...
O formato dos arquivos são diferentes...

Em 23/07/07, lafaietebritto <[EMAIL PROTECTED]> escreveu:
>
>   Boa tarde,
>
> é possivel restaurar um coldbackup de uma base em sistema operacional
> windows em sistema operacional HP-UX? caso seja possivel o que devo
> fazer??
>
> Obrigado.
>
>  
>


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



[oracle_br] Oracle Windows

2007-07-25 Por tôpico lafaietebritto
Boa tarde,

é possivel restaurar um coldbackup de uma base em sistema operacional 
windows em sistema operacional HP-UX? caso seja possivel o que devo 
fazer??

Obrigado.



[oracle_br] Oracle XML Publisher

2007-07-25 Por tôpico Sônia Regina Silva
Gostaria de saber os passos no EBS para gerar um Concorrente (Report-PDF) em 
Excell.
  Obrigada.
   
  Sônia.
   

   Flickr agora em português. Você cria, todo mundo vê. Saiba mais.

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



[oracle_br] transações com tabelas temporarias

2007-07-25 Por tôpico Feitoza
  Bom dia Amigos...
   
   Tenho uma dúvida e gostaria de uma forcinha do grupo... 
   
  Tenho uma package e presciso criar uma procedure com transações e tabela 
temporaria, sendo que nessa tabela temporaria terá clausula WHILE E CASE. Ainda 
não tenho muita experiencia e não encontrei nenhuma que esteje pronta para eu 
tirar como exemplo ou saber para onde seguir... Teria com me dar um HELP...

   Flickr agora em português. Você cria, todo mundo vê. Saiba mais.

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



[oracle_br] Oracle X SQL Server 2005

2007-07-25 Por tôpico Marcos Soares
Galera,

Alguém teria um material com as diferenças de sintaxe entre o Oracle e o SQL
Server?

Grato,

Marcos


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



[oracle_br] Res:Re: D�vida quanto a expurgo de dados

2007-07-25 Por tôpico Bruno Maximo
Entendi,

na verdade, eu tinha essa idéia de dar um expurgo na tabela, utilizando 
apenas um lock para a tabela inteira, visto que meu conceito é voltado para 
o DB2, e lá existe mesmo uma tabela de locks e lockando a tabela inteira, no 
Db2 é mais rápido, pensei que o Oracle tivésse um controle parecido de 
locks, pq se fosse, haveria um overhead desnecessário em se lockar cada 
linha, visto que o tamanho ocupado por um lock, seja para uma tabela ou para 
uma linha da tabela é o mesmo, mas no caso de linha da tabela, é 
multiplicado pela quantidade de linhas que se quer excluir, transformando 
assim em milhões de locks. Na verdade, essa é uma tabela em que ficam 
registrados todos os erros que houveram no sistema, para histórico, e ela 
não tem índices( acredito eu, pois não sou DBA da base), e a necessidade do 
PL/Sql, mesmo sendo mais lento ( muito mais ), é porque eles querem saber 
exatamente qual linha deu problema para excluir, se pudesse ser excluído 
tudo de uma vez, com certeza eu utilizaria um bloco anônimo de pl/SQL, mas 
deletando todas as linhas ao mesmo tempo, ao invés de uma por uma, e 
utilizaria %rowcount para saber quantos registros foram excluídos daquela 
tabela, mas como eles querem saber exatamente em quais linhas houve o 
problema, eu tive que usar um pl/sql deletando linha a linha do select e 
contando com uma variável. Essas manutenções são efetuadas quando o DBA 
detecta um nível de fragmentação muito alto nas tabelas. Mas acredito que as 
tabelas sejam particionadas sim, é um sistema grande, que envolve 15.000 
pessoas. Abraços e obrigado pela resposta.

Bruno Cantelli da Conceição
IBM DB2 UDB Certified Database Administrator

_
Local listings, incredible imagery, and driving directions - all in one 
place! http://maps.live.com/?wip=69&FORM=MGAC01



>Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais acesse: http://www.oraclebr.com.br/codigo/ListaCodigo.php 
--
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
>O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/  

  
Links do Yahoo! Grupos

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

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

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

 


Re: [oracle_br] Re: Dúvidas com criação de view

2007-07-25 Por tôpico Ronaldo Pinto
Ok Chiappa!

Realmente o privilégio para criar a view está na role CONNECT.
Obrigado pelos esclarecimentos e pelo script também.

Ronaldo

Em 24/07/07, jlchiappa <[EMAIL PROTECTED]> escreveu:
>
>   Colega, seguinte : é falso que um usuário que não tenha priv de CREATE
> VIEW possa criar uma view, exemplo :
>
> [EMAIL PROTECTED]:SQL>create user zemane identified by zemane;
>
> Usuário criado.
>
> [EMAIL PROTECTED]:SQL>grant create session to zemane;
>
> Concessão bem-sucedida.
>
> [EMAIL PROTECTED]:SQL>grant select on scott.dept to zemane;
>
> Concessão bem-sucedida.
> ==> veja que ** REALMENTE ** o usuário não tem o privs de CREATE VIEW :
>
> [EMAIL PROTECTED]:SQL>@privs_by_user
>
> Enter Username : zemane
>
> Roles granted to user
>
> não há linhas selecionadas
>
> Table Privileges granted to a user through roles
>
> não há linhas selecionadas
>
> System Privileges assigned to a user through roles
>
> não há linhas selecionadas
>
> Table privileges assigned directly to a user
>
> OWNER TABLE_NAME PRIVILEGE
> --- -
> -
> SCOTT DEPT SELECT
>
> System privileges assigned directly to a user
>
> PRIVILEGE ADM
> - ---
> CREATE SESSION NO
>
> ==> conectando como esse usuário, testo :
>
> [EMAIL PROTECTED]:SQL>select * from scott.dept where rownum < 3;
>
> DEPTNO DNAME LOC R
> -- -- - -
> 10 ACCOUNTING NEW YORK
> 20 RESEARCH DALLAS
>
> [EMAIL PROTECTED]:SQL>create view V_TESTE as select * from scott.dept where
> rownum < 3;
> create view V_TESTE as select * from scott.dept where rownum < 3
> *
> ERRO na linha 1:
> ORA-01031: privilégios insuficientes
>
> yes ??? Segue o script script usado :
>
> [EMAIL PROTECTED]:SQL>get privs_by_user.sql
> 1 -- script de check de privs
> 2 set echo off
> 3 set verify off
> 4 set pages 200
> 5 col granted_role form a20
> 6 col owner form a15
> 7 col table_name form a33
> 8 col privilege form a33
> 9 ACCEPT username prompt 'Enter Username : '
> 10 PROMPT Roles granted to user
> 11 SELECT granted_role,admin_option,default_role
> 12 FROM dba_role_privs
> 13 WHERE grantee=UPPER('&username')
> 14 ORDER BY 1;
> 15 PROMPT Table Privileges granted to a user through roles
> 16 SELECT granted_role, owner, table_name, privilege
> 17 FROM ( SELECT granted_role
> 18 FROM dba_role_privs WHERE grantee=UPPER('&username')
> 19 UNION
> 20 SELECT granted_role
> 21 FROM role_role_privs
> 22 WHERE role in (SELECT granted_role
> 23 FROM dba_role_privs WHERE grantee=UPPER('&username')
> 24 )
> 25 ) roles, dba_tab_privs
> 26 WHERE granted_role=grantee
> 27 ORder by 1,2,3,4;
> 28 PROMPT System Privileges assigned to a user through roles
> 29 SELECT granted_role, privilege
> 30 FROM ( SELECT granted_role
> 31 FROM dba_role_privs WHERE grantee=UPPER('&username')
> 32 UNION
> 33 SELECT granted_role
> 34 FROM role_role_privs
> 35 WHERE role in (SELECT granted_role
> 36 FROM dba_role_privs WHERE grantee=UPPER('&username')
> 37 )
> 38 ) roles, dba_sys_privs
> 39 WHERE granted_role=grantee
> 40 ORDER BY 1,2;
> 41 PROMPT Table privileges assigned directly to a user
> 42 SELECT owner, table_name, privilege
> 43 FROM dba_tab_privs
> 44 WHERE grantee=UPPER('&username')
> 45 ORDER BY 1,2,3;
> 46 PROMPT System privileges assigned directly to a user
> 47 SELECT privilege, admin_option
> 48 FROM dba_sys_privs
> 49 WHERE grantee=UPPER('&username');
>
> ==> rode o script e veja lá se na verdade o usuário não recebeu o
> privilégio VIA ROLE  Evidentemente, se tal aconteceu, o REVOKE vai
> CORRETAMENTE te responder que o priv direto não existe, o que existe é
> a role... Exemplo :
>
> [EMAIL PROTECTED]:SQL>grant connect, resource to zemane;
>
> Concessão bem-sucedida.
>
> [EMAIL PROTECTED]:SQL>@privs_by_user
> Gravou file D:\dba_scripts\sqlplus_settings.sql
> Enter Username : zemane
> Roles granted to user
>
> GRANTED_ROLE ADM DEF
>  --- ---
> CONNECT NO YES
> RESOURCE NO YES
>
> Table Privileges granted to a user through roles
>
> não há linhas selecionadas
>
> System Privileges assigned to a user through roles
>
> GRANTED_ROLE PRIVILEGE
>  -
> CONNECT ALTER SESSION
> CONNECT CREATE CLUSTER
> CONNECT CREATE DATABASE LINK
> CONNECT CREATE SEQUENCE
> CONNECT CREATE SESSION
> CONNECT CREATE SYNONYM
> CONNECT CREATE TABLE
> CONNECT CREATE VIEW
> RESOURCE CREATE CLUSTER
> RESOURCE CREATE INDEXTYPE
> RESOURCE CREATE OPERATOR
> RESOURCE CREATE PROCEDURE
> RESOURCE CREATE SEQUENCE
> RESOURCE CREATE TABLE
> RESOURCE CREATE TRIGGER
> RESOURCE CREATE TYPE
>
> 16 linhas selecionadas.
>
> Table privileges assigned directly to a user
>
> OWNER TABLE_NAME PRIVILEGE
> --- -
> -
> SCOTT DEPT SELECT
>
> System privileges assigned directly to a user
>
> PRIVILEGE ADM
> - ---
> CREATE SESSION NO
> UNLIMITED TABL