Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - parlan

#1
Hola chicos, a ver tengo un problema.

Tengo q migrar una consulta de firebird a oracle y tengo:
select first 10 skip 0 * from mi_tabla; --> en firebird --> para aclarar a quien no sepa firebird, First dice cuantos registros queremos devolver y Skip indica desde donde queremos comenzar
Es decir, esta consulta saca los primeros 10 registros, esta otra (select first 10 skip 10 * from mi_tabla; ) saca los 10 segundos, es decir, del 11 al 20....

Soy capaz de migrar a select * from mi tabla where rownum < 11; pero no se como hacerlo "dinamico" para dependiendo de cada consulta sea a partir de un numero u otro, pq si lo dejo asi, con el rownum solo saca los primeros 10 siempre.

Alguna idea?

Gracias
#2
No se si te entiendo, kieres borrar el log mas antiguo, no?

Yo lo q borro es el .txt mas antiguo (al hacer el dir /od y colocar los mas antiguos primero), será solo cambiar la extension de .txt a .log, no? asi, solo te busca sobre los archivos q cumplen ese patron... digo yo... no se si te refieres a eso... esq yo tenia q borrar de todos los posibles ficheros de esa ruta solo los del patron "Fich_prueba*.txt"... Kizas en tu caso sea ahi poner tu patron, en plan "*.log" simplemente....

Pero vmaos, q ni idea, q soy novata en esto...

Saludos!!!
#3
Buenas!!!
Al final tras darle muchas vueltas lo saqué.
Lo q hice fue hacer un dir q me ordenase de mas antiguo a mas nuevo los ficheros (dir /od) y a partir de ahi coger el primero del listado con un for y borrarle, es decir, cuando el contador aun es 0, osea q es el primer archivo del directorio asi organizado... Si, seguro q hay mejores opciones, pero es la q saqué.

Como no se nada de batch y tal, me vi en el problema de q una variable modificada en el for no se veia luego, asiq no podia hacer el contador. Eso lo arreglé con "setlocal EnableDelayedExpansion" y poniendo luego la variable en cuestion entre "!"

Espero os sirva!!!
No está mal pa ser la primera vez q me pego con esto, no?

@echo off
setlocal EnableDelayedExpansion
dir /od C:\pruebas
set _cont=0
FOR %%i IN (C:\pruebas\Fich_prueba*.txt) DO (echo [!_cont!] & (if !_cont!==0 del "%%i") & set /a _cont+=1)
echo Total=!_cont!
#4
Hola! No veo a que post tuyo te refieres... puedes indicarme el Asunto del mismo? Gracias!
#5
Hola!
Ante todo gracias por adelantado a quien pueda echarme un cable. No conozco casi nada de batch ni scripting (aparte de lo leido, asiq por favor, pido si pudiera ser explicarmelo como "para tontos" porfavor...) y me veo en la situacion de q tengo q hacer un script en BAT (puro y duro) que al ejecutarse me borre el fichero mas antiguo de una ruta concreta... Contando con que no se practicametne nada de este tema, he encontrado una solucion con powershell, pero necesitaria q fuera con batch-batch, para no tener q instalar el powershell... no se si me explico... Mi S.O. es el Vista, por si puede interesar... Por favor, espero sus noticias!!!

Muchas gracias!