Boa noite,

Se ao enviar um email usando o comando do Oracle UTL_SMTP, o assunto do email está chegando aos destinatários sem respeitar a acentuação, insira o comando abaixo para informar ao cliente de email usar a codificação ISO-8859-1.

 UTL_SMTP.WRITE_DATA( w_conn,     'Subject: ' ||  '=?iso-8859-1?Q?' ||
 UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(i_subj))) ||
                                '?=' || UTL_TCP.CRLF);
Share

Olá,

Para ler um ref cursor com java é fácil, basta iterar sobre um ResultSet obtido de um CallableStatement. Por exemplo: ResultSet rs = (ResultSet)
cstmt.getObject(1);

Esses dias precisei ler esse mesmo ref cursor com outra procedure PL/SQL e como não encontrei fácil no google resolvi fazer esse post. Para ilustrar melhor preparei o exemplo abaixo:

[download id=”35″]

[download id=”34″]

 

Espero ter ajudado

Até mais,

Roberto

Share

Loop fácil em PL/SQL

18/janeiro/2012 - Oracle

Olá!

Dica rápida: Eu não conhecia a sintaxe do for abaixo, resolvi compartilhar. Não precisa declarar cursor nem dar open, fetch e close.

begin

— A variavel armazena cada linha retornada pelo select.
for variavel in ( select a.nome
from tab_cliente a
where a.idade >= 18) loop

— Faz alguma coisa com a variavel.
pro_teste(‘maior_idade’ , variavel.nome);

end loop;

end;

Share

Olá

Hoje me deparei com um erro diferente ao tentar conectar ao banco de dados Oracle numa aplicação Java.

Caused by: java.sql.SQLException: Io exception: NL Exception was generated

Depois de algumas analises verifiquei que a string de conexão estava errada:

jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(FAILOVER=on)(ADDRESS_LIST=(ADDRESS=(protocol=tcp)(host=198.31.10.51)(port=1521))(ADDRESS=(protocol=tcp)(host=198.31.10.50)(port=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=meu_banco))

No final da string faltou um fecha parênteses “)”.

Abaixo string que funciona sem problemas:

jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(FAILOVER=on)(ADDRESS_LIST=(ADDRESS=(protocol=tcp)(host=198.31.10.51)(port=1521))(ADDRESS=(protocol=tcp)(host=198.31.10.50)(port=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=meu_banco)))

portanto quando ocorrer esse erro verifique sua string nos mínimos detalhes.

Até mais,

Share

Olá

Abaixo um SQL diferente que calcula o fatorial de um número

with fatorial as
(select level idx from dual connect by level <= 15) select idx, exp( sum( ln(idx) ) over (order by idx) ) fact from fatorial[/code] Resultado: [caption id="" align="aligncenter" width="522" caption="Resultado da query"]Resultado da query[/caption]

Eu achei interessante, pois alguns comandos ali eu nunca tinha visto apesar de trabalhar a bastante tempo com Oracle DB.

Até mais.

Share