PDA

Ver la Versión Completa : Select * From ... Where Strlen(f) > 24


aldape
06/02/08, 17:43:14
Como se hace eso en ABAP?

SELECT * FROM ... WHERE STRLEN(F) > 24

melerogalan
07/02/08, 06:20:24
No se si podrás hacerlo en una sentencia Select.
Una alternativa es recuperar todos los datos en una tabla interna y una vez recuperados, recorres la tabla interna y vas eliminado o usando una tabla auxiliar para almacenar aquellos registros que deseas almacenar(mas eficiente).

ejem:
SELECT * FROM <tabla> INTO <tabla_interna_aux> WHERE <clausula_where>.


LOOP AT <tabla_interna_aux>.
IF <tabla_interna_aux>-<campo> > 24.
APPEND <tabla_interna_aux> to <tabla_interna>.
ENDIF.

ENDLOOP.

Nota: Estamos utilizando tablas interna con cabecera, en desuso, tb puedes utilizar works areas , los detalles supongo que lo sabrás :) .

Saludos.

aldape
07/02/08, 14:33:36
Muchas Gracias!,

yo creo que ese codigo funciona, pero que tal si tengo mas de 5 millones de registros? de los cuales strlen > 24 son solo 5?


PD. Tu cita me hizo reir mucho.
Saludos.

sap2006
07/02/08, 14:49:17
Puedes ejecutar ese proceso n veces...es decir no tienes porque hacer un select de 5 millones de registros..puedes dividirlo en paquetes.

Saludos.

abapconsultoria
07/02/08, 18:18:29
Si no te convence podrias saltear el OPEN SQL y utilizar SQL nativo con la sentencia EXEC SQL.

Saludos.