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: tab_fatura.sql Script para criação de tabela usada na pac_exemplo.sql pac_exemplo.sql Package de exemplo de leitura de ref_cursor dentro de objetos plsql   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