Mostrando postagens com marcador loop. Mostrar todas as postagens
Mostrando postagens com marcador loop. Mostrar todas as postagens

quarta-feira, agosto 01, 2012

Executando um loop entre uma diferença de datas no Oracle

HI,

Vou precisar criar uma procedure para inserir/atualizar dados de acordo com um período informado. Se for para inserir, criar um registro para cada data do período informado.

Ex: Período de 01/06/2012 à 03/06/2012, taxa 5%

Quando for inserir, a procedure vai criar 3 registros na tabela
01/06/2012 - 5
02/06/2012 - 5
03/06/2012 - 5

Antes de partir para a procedure, criei a lógica que vou precisar.


declare


data_inicial date;
data_final date;
num_dias number;

begin


data_inicial := to_date('10/06/2012','DD//MM/YYYY');
data_final := to_date('20/06/2012','DD//MM/YYYY');


dbms_output.put_line( 'data inicial: ' || to_char(data_inicial,'DD/MM/YYYY'));
dbms_output.put_line( 'data final: ' || to_char(data_final,'DD/MM/YYYY'));


num_dias := (data_final - data_inicial)+1;


dbms_output.put_line( 'dias: ' || num_dias);
dbms_output.put_line( '' );


for i in 1..num_dias loop
  dbms_output.put_line( 'data: ' || to_char((data_inicial-1)+i,'DD/MM/YYYY') || ', dia ' || i);
end loop;


end;

Resultado da execução da instrução pl/sql




Nesse endereço tem informações sobre loop no oracle


Fiquem na Paz!!!

terça-feira, dezembro 13, 2011

Percorrendo os registros de uma consulta no Sqlite

HI,

Precisei num programa para Android, percorrer todos os registros que uma consulta.

Pesquisei como implementar um while e achei esse código


Cursor cur = db.query("tbl_countries", null, null, null, null, null, null);
        cur.moveToFirst();
        while (cur.isAfterLast() == false) {
            view.append("n" + cur.getString(1));
           cur.moveToNext();
        }
        cur.close();

o restante do código se encontra aqui
http://www.higherpass.com/Android/Tutorials/Accessing-Data-With-Android-Cursors/2/


Fiquem na Paz!!!!

segunda-feira, agosto 29, 2011

Otimizando o processo de insert de muitos registros no Android

HI,

A rotina de importação que implementei usando o ContentValues... put... insert... ficou uma carroça puxada por lesmas. Vou ter que refazer tudo. Procurei por dicas no google e achei bons materiais. Ainda vou implementar.

Aconselho uma lida nesse testo

Database Speed Comparison
http://www.sqlite.org/speed.html

Achei dua maneiras, e as duas tem que ter controle de transação.

How to speed up multiple inserts in SQLite
http://www.tanguay.info/web2008/codeExample.php?id=728

Android: Using DatabaseUtils.InsertHelper for faster insertions into SQLite database
http://www.outofwhatbox.com/blog/2010/12/android-using-databaseutils-inserthelper-for-faster-insertions-into-sqlite-database/

Tem esse outro texto também sobre como otimizar

SQLite Optimization FAQ
http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html


Acredito que eu passe a utilizar esse código


try {
    mDb.beginTransaction();
    for (Value value : values) {
        ih.prepareForInsert();
        ih.bind(colIdx, value.getSomeValue());
        // ...
        ih.execute();
    }
    mDb.setTransactionSuccessful();
} finally {
    mDb.endTransaction();
}

editando

Achei esse código e estou utilizando ele. Passou de uns 15 minutos para menos de 1, hehehe.

Notes on Android SQLite bulk insert
http://sagistech.blogspot.com/2010/07/notes-on-android-sqlite-bukl-insert.html


Fiquem na Paz!!!