12 Fev 2008
Exemplo de rotina simples para criptografia/descriptografia em PL/SQL.
Observe que a rotina pode ser facilmente convertida para outra linguagem.
Essa rotina pode ser usada, por exemplo, para criptografar um campo que contenha
a senha em um banco.
A mesma rotina que criptografa, serve para descriptografar.
O funcionamento é bem simples: a rotina recebe uma string e retorna outra string,
de mesmo tamanho com cada um dos seus caracteres com valor ASCII invertido,
isto é, se o caractere tiever o valor 0 (zero), o caractere criptografado será 255.
Se o caractere tiver o valor 10, o caractere criptografado será 245.
create or replace function fun_cripto(
p_valor in varchar2 )
return varchar2
is
sCripto varchar2(100) := '';
cChar char(1);
nAsc number;
begin
for i in 1..length(p_valor) loop -- percorre toda a string recebida
cChar := substr( p_valor, i, 1 ); -- valor ASCII de cada caractere
nAsc := 255 - ascii( cChar ); -- valor ASCII invertido do caractere
sCripto := sCripto || chr( nAsc ); -- adiciona caractere invertido à string de saída
end loop;
return( sCripto );
end fun_cripto;
Nenhum comentário » |
Banco de Dados, Oracle XE | Tagged: chave, criptografia, criptografia/decriptografia, criptografia/descriptografia, crypt, decriptografia, decrypt, descriptografia, MySQL, Oracle, pl/sql, senha em banco |
Permalink
Escrito por claudiocoelho
09 Fev 2008
Resumo
Função que converte um número decimal para qualquer outra base.
Uso
A função recebe 3 parâmetros:
p_decimal: número a ser convertido
p_base: base desejada
p_tamanho: tamanho da string de retorno
Exemplo:
select dec_to( 255, 16 ) from dual; — converte 255 para base hexadecimal
select dec_to( 255, 2, 8 ) from dual; — converte 255 para base binária, com 8 caracteres na saída
Codificação
create or replace function dec_to( p_decimal number,
p_base pls_integer,
p_tamanho pls_integer default 2 ) return varchar2 is –
– conversao de bases: decimal para qualquer base
–
– Claudio A. Coelho - 12.09.2001
–
–
sRetorno varchar2(50);
sRESTO varchar2(50);
nQUOC number;
nRESTO pls_integer;
nTam pls_integer;
–
begin
nQUOC := p_decimal;
sRESTO := ”;
if nQUOC = 0 then
sRetorno := ‘0′;
goto fim;
end if;
while nQUOC > 0 loop
if nQUOC > 1 then
nRESTO := MOD( nQUOC, p_base );
nQUOC := TRUNC( nQUOC/p_base );
else
nRESTO := 1;
nQUOC := 0;
end if;
if nResto < 10 then
sRESTO := sRESTO || to_char(nRESTO);
else
sRESTO := sRESTO || chr(65+nResto-10);
end if;
end loop;
sRetorno := ”;
nTam := LENGTH( sRESTO );
for i in 0..nTam-1 loop
sRetorno := sRetorno || substr( sRESTO, nTam-i, 1 );
end loop;
<<fim>>
return ( LPAD( sRetorno, p_tamanho, ‘0′ ) );
end dec_to;
Nenhum comentário » |
Banco de Dados, Oracle, Oracle XE | Tagged: conversão de bases, Conversão decimal, pl/sql |
Permalink
Escrito por claudiocoelho
02 Fev 2008
Pela documentação no site da oracle, essas são as limitações do seu banco Free, entretanto, há também a limitação de 20 sessões (conexões) simultâneas na instância, o que pode ser resolvido seguindo os passos descritos do artigo Número máximo de 20 sessões no Oracle XE postado nesse blog.
Any use of the Oracle Database Express Edition is subject to the following limitations;
1. Express Edition is limited to a single instance on any server;
2. Express Edition may be installed on a multiple CPU server, but may only be executed on one processor in any server;
3. Express Edition may only be used to support up to 4GB of user data (not including Express Edition system data);
4. Express Edition may use up to 1 GB RAM of available memory.
Nenhum comentário » |
Banco de Dados, Oracle XE | Tagged: limitações, Oracle XE |
Permalink
Escrito por claudiocoelho
02 Fev 2008
No exemplo abaixo, passaremos a limitação de 20 sessões do oracle XE para 100 sessões:
a. Conecte do banco como administrador
connect / as sysdba
b. Altere o número de processos para 100
alter system set processes=100 scope=spfile
c. Remova o limite de 20 sessões
alter system reset sessions scope=spfile sid=’*’
d. Pare o banco
shutdown immediate
e. Inicie o banco
startup
Para verificar se as alterações fizeram efeito:
show parameter sessions
show parameter processes
3 Comentários |
Banco de Dados, Oracle XE | Tagged: 20 conexões, 20 sessões, aumentar sessões, Oracle XE |
Permalink
Escrito por claudiocoelho