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;
StickyGram
07/outubro/2011 - iPhone
Olá

Mais um novo serviço baseado no querido Instagram, é o StickyGram.
Este serviço imprime suas fotos publicadas no Instagram em imãs de 50mmx50mm por $14,99 a cartela com 9 e com frete grátis por airmail para todo o mundo.
O pagamento é via PayPal.
Eu já pedi um, vamos ver quanto tempo demora para chegar.
Até mais,
Roberto
Erro JDBC – Io exception: NL Exception was generated
14/setembro/2011 - Java, Oracle
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,
Olá,
Deixarei aqui alguns sites muito úteis para usuários do Instagram.
Inkstagram – Site para visualizar fotos do Instagram, é possível dar likes, ver as fotos populares além de ver sua timeline de fotos;
Statigram -É um pouco mais completo que o anterior. Oferece estatísticas sobre suas fotos, os filtros mais usados, os dias da semana em que fotos são postadas. Possibilita enviar mensagens entre os usuários do Statigram;
Instaearth.me – Mostra as fotos no mapa;
Mapstagram – Outro site para ver as fotos no mapa;
Instac.at – agregador de fotos de gatos;
InstaPuppy – agregador de fotos de cachorros;
Instaport – Site para baixar todas suas fotos em um arquivo zip.
Até mais,
Roberto
Trabalhando com arquivos no Java 7
30/agosto/2011 - Java
Olá
Trabalhar com arquivos no Java7 ficou muito mais fácil com a introdução da classe java.nio.file.Files. Com esta classe copiar, mover, apagar e outras operações básicas ficaram muito simples.
A seguir veremos alguns exemplos:
O trecho abaixo obtém o sistemas de arquivos padrão acessível pela JVM.
FileSystem defaultFS = FileSystems.getDefault();
Agora criamos um objeto da classe Path que representa o diretório D:\java
Path basePath = defaultFS.getPath("D:\\", "java");
Os objetos Path podem referenciar diretórios e arquivos.
Path temp1 = basePath.resolve("temp1"+
File.separator + "meu_arquivo.txt");
Path temp2 = basePath.resolve("temp2");
Usamos a classe Files para criar o diretório com o método estático createDirectories()
Files.createDirectories(temp2);
Abaixo copiamos o arquivo para outro diretório substituindo caso exista.
Files.copy(temp1, temp2,
StandardCopyOption.REPLACE_EXISTING );
Para move o arquivo para outro diretório substituindo caso exista usamos o código abaixo.
Files.move(temp1, temp3.resolve("fim.txt"),
StandardCopyOption.REPLACE_EXISTING);
Para saber se o arquivo existe
System.out.println("File exists " + Files.exists(temp1));
Mostramos o tamanho do arquivo em bytes
System.out.println(Files.size(temp2) + " bytes");
O código abaixo lista os diretórios raízes, no windows retornaria C:\, D:\, E:\ etc.
FileSystem defaultFS = FileSystems.getDefault();
Iterable<Path> rootDirectories = defaultFS.getRootDirectories();
for(Path pth : rootDirectories){
System.out.println(pth.toString());
}
Para mim a API foi bem escrita, é bem auto-explicativa.
Por enquanto minha ressalva é quanto as permissões no padrão POSIX, achei elas complicadas de serem aplicadas.
Antes de ter a classe Files para copiar um arquivo geralmente faríamos:
FileInputStream in =
new FileInputStream("D:\arquivo.txt");
FileOutputStream out = new FileOutputStream("D:\destino.txt");
byte[] buf = new byte[1024];
int i = 0;
while ((i = in.read(buf)) != -1) {
out.write(buf, 0, i);
}
in.close();
out.close();
No Java 7 não precisa dar close nos recursos que implementam java.lang.AutoCloseable. Assim você não corre mais riscos de esquece preso um recurso.
Até mais,
Roberto

