RES: [oracle_br] Re: [ PROCEDURE WRAPPED ]

2016-09-24 Por tôpico Ricardo Sá | DBA ricardo....@terra.com.br [oracle_br]
Senhores, bom dia.

Obrigado pelas dicas...

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: sexta-feira, 23 de setembro de 2016 12:27
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Re: [ PROCEDURE WRAPPED ]

 

  

É isso aí : em termos de Segurança é bem isto - o wrapping não é 100% seguro, 
não blinda a alteração por parte de todo e qualquer usuário (em especial DBAs) 
mas é uma ajuda, e como não tem custo financeiro e o custo em termos de 
performance é baixíssimo, vale a pena fazer...

 []s
 
   Chiappa
   
OBS : adicionalmente, o colega que perguntou citou Segurança e Auditoria - pra 
segurança ok, wrapping pode ajudar no sentido de dificultar alterações 
não-autorizadas mas pra Auditoria o procedimento é o comando AUDIT, para o qual 
wrapping não adiciona nada...





RES: [oracle_br] Re: Procedure para gerar txt

2007-09-11 Por tôpico André Luis Mariano
Boa tarde,
 
A procedure só é chamada da sua estação, o que conta é o mapeamento do
Servidor Oracle, já que a procecure é executada lá, que esta tem o U:\, uma
forma de contornar este problema seria criar um mapeamento U: para a propria
maquina servidora (D:\Mic)
 
André

  _  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de marcasistemas
Enviada em: terça-feira, 11 de setembro de 2007 16:58
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Procedure para gerar txt



Caro Chiappa, obrigada pela resposta, só pra esclarescer as tuas 
dúvidas:

1)realmente, tens razão, a versão é 8.1.7.4.
2)setei o ULT_FILE_DIR no banco mesmo, e não o ULT_FILE
3)o diretório U:\ é um subdiretório da máquina servidora de banco de 
dados (no raiz do servidor, pasta mic = d:\mic ), mapeada na minha 
estação, onde estou rodando a procedure e tem permissão de tudo a 
todos (no windows server 2003), o que inclui o usuário oracle, certo?

Suriam.

--- Em [EMAIL PROTECTED] 
os.com.br, "jlchiappa" <[EMAIL PROTECTED]> 
escreveu
>
> Colega, algumas obs : primeiro, versão "8.1.4" ** desconheço **, 
será 
> que não é 8.1.7.4  SE for, nessa versão vc NÂO TEM a opção de 
> utilizar DIRECTORIES com UTL_FILE, sendo obrigatório setar o 
> parãmetro UTL_FILE_DIR no seu banco Segundo, não sei se vc sabe 
> mas o UTL_FILE pode APENAS e TÃO SOMENTE gravar arquivos em 
destinos 
> DISPONÍVEIS LOCALMENTE ao servidor Oracle, SE esse U:\ que vc quer 
> usar não está local ao servidor Oracle vc não conseguirá E 
> finalmente, a pasta TEM QUE ter permissão ao usuário que instalou e 
> roda os binários Oracle, é na conta dele que o UTL_FILE vai ser 
> executado.
> 
> []s
> 
> Chiappa
> --- Em [EMAIL PROTECTED] 
os.com.br, "marcasistemas" 
>  escreveu
> >
> > Dúvida em procedure no banco de dados:
> > 
> > Pessoal, estou tentando criar um arquivo texto a partir de uma 
> > procedure, que é acionada por uma trigger em uma tabela do banco 
de 
> > dados. O problema é que na hora que a procedure vai gravar o 
> arquivo 
> > texto dá erro de permissão, conforme voces podem verificar abaixo 
> > detalhadamente.
> > 
> > Tentei de 2 formas, uma por um diretório Oracle e outra sem 
> diretório 
> > oracle.
> > 
> > Se tiverem alguma idéia do que pode ser esse erro, agradeço.
> > 
> > - Versão banco: Oracle 8.1.4
> > - Windows server 2003
> > 
> > Obs: os caminhos usados (diretório), tanto na versão 1 qto na 
> versão 
> > 2, testei de todas as formas possíveis ( u u: u:\ U U: U:\ ).
> > 
> > 
> 
==
> > Versão 1 (usando diretório Oracle):
> > 
> > Esse diretorio que estou criando (abaixo) está criado no servidor 
> de 
> > banco de dados e esta pasta está compartilhada para o todos 
> (mundo), 
> > todos os direitos (acesso completo).
> > 
> > Segue criação de diretório no Oracle:
> > SQL> conn system/[EMAIL PROTECTED]
> > Connected.
> > 
> > SQL> create or replace directory DIR_PATH as 'u:\';
> > Directory created.
> > 
> > SQL> grant read on directory DIR_PATH to porto;
> > Grant succeeded.
> > 
> > SQL> grant write on directory DIR_PATH to porto;
> > grant write on directory DIR_PATH to porto
> > *
> > ERROR at line 1:
> > ORA-22928: invalid privilege on directories
> > 
> > SQL> select * from v$parameter where name like 'utl_file%';
> > 
> > NUM NAME TYPE
> > - 
--
> --
> >  -
> > VALUE
> > --
--
> --
> > --
> > ISDEFAULT ISSES ISSYS_MOD ISMODIFIED ISADJ
> > - - - -- -
> > DESCRIPTION
> > --
> > 440 utl_file_dir 2
> > *
> > FALSE FALSE FALSE FALSE FALSE
> > utl_file accessible directories list
> > 
> > 
> > Veja acima que a variável ult_file_dir está criada no init.ora 
> > (acima), e criei o diretório no oracle, mas não consigo dar 
direito 
> > de escrita para o usuário, por isso, a procedure cai no erro 
abaixo:
> > 
> > O erro de execução é uma linha de exception da minha procedure:
> > 
> > when utl_file.invalid_operation then
> > raise_application_error(-20003,
> > 'Permissão Negada ou Arq. Indisponível.');
> > 
> > 
> > /*Procedure para gerar arquivo texto com os dados da NF para MIC -

> > Balança*/
> > 
> > CREATE OR REPLACE procedure p_gera_txt (v_seqpesagem number) IS
> > v_plveiculo varchar2(8);
> > v_plcarreta varchar2(8);
> > v_cnpj number(15);
> > v_nrticket number(8);
> > v_cdmerc number(6);
> > v_nrfundeio number(6);
> > v_embarc varchar2(40);
> > v_tpoper char(2);
> > v_dtpeso date;
> > v_tara number(14,2);
> > v_bruto number(14,2);
> > v_liq number(14,2);
> > v_file varchar2(30);
> > v_filekey utl_file.file_type;
> > v_linha varchar2(100);
> > 
> > BEGIN
> > BEGIN
> > 
> > Select a.pl_veiculo, a.pl_carreta

RES: [oracle_br] Re: PROCEDURE

2006-10-11 Por tôpico Alexandre Eduardo Borges
Caro colega

 

Qual o valor cachê da sua sequence, pode ser isso.

 

 

 


BM_6334BM_20215CACHE 

BM_6408specifies how many values of the sequence Oracle preallocates and
keeps in memory for faster access. This integer value can have 28 or fewer
digits. The minimum value for this parameter is 2. For sequences that cycle,
this value must be less than the number of values in the cycle. You cannot
cache more values than will fit in a given cycle of sequence numbers.
Therefore, the maximum value allowed for CACHE must be less than the value
determined by the following formula:  


BM_7830 

BM_7832(CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT) BM_28590

If a system failure occurs, all cached sequence values that have not been
used in committed DML statements are lost. The potential number of lost
values is equal to the value of the CACHE parameter. 

 

  _  

De: cristianojsantos [mailto:[EMAIL PROTECTED] 
Enviada em: quarta-feira, 11 de outubro de 2006 16:43
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: PROCEDURE

 

Oi Ulisses, boa tarde.

Concordo com você em relação a Sequence mas, esta é a primeira vez 
que vejo estas alterações ocorrerem no com os valores sequenciais e 
incrementados por 1. Gostaria também que algum DBA se manifesta-se 
caso tenham enfrentado algum problema assim.

Grato e no aguardo,

Cristiano Joaquim
ANALISTA PROGRAMADOR
FONE: 11 - 8392-5116


--- Em oracle_br@yahoogrupos.com.br, "Ulisses Tenorio da Silva" 
<[EMAIL PROTECTED]> escreveu
>
> 
> Voce pode usar sequence, mas ela nao garante um sequencial 
perfeito,
> ou seja, havera sempre buracos na sequencia.
> 
> Eu uso uma consulta na propria tabela que eu quero fazer o
> autoincremento, assim:
> 
> CREATE OR REPLACE TRIGGER schema.tabela_autoinc
> BEFORE INSERT ON schema.tabela FOR EACH ROW
> BEGIN
> SELECT
>   NVL(a.id, b.id) INTO :NEW.id
> FROM
>   ( SELECT
>   MIN(seq) AS id
> FROM (SELECT
>   ROWNUM AS seq,
>   id
> FROM
>   ( SELECT
>   lei
> FROM
>   schema.tabela
> ORDER BY
>   id) )
> WHERE
>   seq <> id ) a,
>   ( SELECT
>   NVL(id + 1, 1) AS id
> FROM
>   ( SELECT
>   MAX(id) AS id
> FROM
>   schema.tabela ) ) b;
> END;
> 
> Onde a tabela em questão é identificada como 'esquema.tabela' e o
> campo que eu estou incrementando automaticamente é chamado 'id'.
> 
> 
> Ulisses
> 
> 
> --- Em oracle_br@yahoogrupos.com.br, "Cristiano J Santos"
> <[EMAIL PROTECTED]> escreveu
> >
> > Bom dia Senhores.
> >  
> > Gostaria que em ajudassem com o seguinte problema: 
> >  
> > Criei uma SEQUENCE:
> >  
> > CREATE SEQUENCE SEQ_EXPORTADOR START WITH 1 INCREMENT BY 1 
NOMAXVALUER
> > ORDER;
> >  
> > Até ai tudo bem.
> > Quando executo esta sequence a mesma tras os dados incrementando 
de
> > forma correta, mas no outro dia, quando estou realizando os 
testes, vejo
> > que o valor da sequence está acima pelo menos 20 números do 
ciclo do dia
> > anterior. Não houve inserts na Tabela nem mesmo selects que 
retornem o
> > valor da Sequence. Já tentei também criar de outras formas mas 
mesmo
> > assim, o problema persiste.
> > Trabalho com ORACLE 10G.
> >  
> > Grato e no aguardo,
> > 
> > Cristiano Joaquim
> > 
> > E-mail: [EMAIL PROTECTED]
> > 
> >  
> > 
> >  
> > 
> > -- 
> > No virus found in this outgoing message.
> > Checked by AVG Free Edition.
> > Version: 7.1.408 / Virus Database: 268.13.2/471 - Release Date:
> > 10/10/2006
> >  
> > 
> > 
> > [As partes desta mensagem que não continham texto foram 
removidas]
> >
>



 



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



--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__
Vem aí: ENPO-BR 2006 - Encontro Nacional de Profissionais Oracle
VISITE: http://www.enpo-br.org/ - Dia 11/11 "Vagas Limitadas"
__
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine  
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