MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   EXEC SQL... INSERT - Problemas de tiempo (foro/showthread.php?t=33306)

malaga01 28/10/09 13:22:32

EXEC SQL... INSERT - Problemas de tiempo
 
Hola:

Tengo un problema de tiempo con sql nativo al hacer un insert, el código funciona, lee de la tabla interna e inserta los registros en la tabla de oracle. El problema viene cuando la tabla interna tiene muchos registros, tarda demasiado.

¿Sabeis si hay alguna manera de mejorar este código apra que no tenga que hacer un exec sql .... endexec por cada registro de la tabla interna? ¿Se puede insertar todo en bloque?

Este es el código que tengo, ¿lo veis mejorable?

LOOP AT i_table.

EXEC SQL.

insert into oracle_table@db
(value1,
Value2
)
values
(:i_table-val1,
:i_table-val2
)

ENDEXEC.

ENDLOOP.

Muchas gracias por vuestra ayuda.

Un saludo.

THOR2000 17/12/10 09:57:34

INSERT <dbtab> CONNECTION <name> FROM TABLE <i_tab>
 
Hola,
Yo tenía el mismo problema y buscando solución he encontrado tu mensaje.
Como he encontrado la solución te respondo.

Olvidate del EXEC SQL ... ENDEXEC y utiliza:

INSERT <dbtab> CONNECTION <name> FROM TABLE <i_tab> .

donde <dbtab> es el nombre de la tabla en el sistema externo
<name> es el nombre del DBlink de la bbdd remota definida en la tabla DBCON (transaccion DBCO), y <i_tab> es la tabla interna que contiene los datos a insertar.

Requisitos: <dbtab> debe estar definida con el mismo nombre y estructura en SAP para que entienda la estructura a cargar. Yo la he creado como temporal.
O al reves, claro, que la tabla externa esté definida igual que una de SAP.

Un proceso de 12 minutos ha bajado a 3 segundos.
Tengo otro que tarda 7 horas. (A ver en cuanto se queda).

Espero que te sirva, aunque llegue tarde.

malaga01 30/03/11 15:06:44

Muchas gracias por la información.

nas 12/02/13 21:40:52

Problemas de tiempo EXEC SQL ... ENDEXEC
 
Buenas tardes, estoy teniendo el mismo problema de tiempo, y probe la linea de codigo que dijo usted
INSERT <dbtab> CONNECTION <name> FROM TABLE <i_tab>,
realize todos los requisitos solicitados y no me funciona, podrias ayudarme dandome un ejemplo de como lo utilizas, muchas gracias.

mgarciaf 19/02/13 21:14:19

Problemas de tiempo EXEC SQL ... ENDEXEC
 
Hola

Estaba intentando utilizar la sentencia que sugieres pero me da error en la palabra CONNECTION.

Saludos.


Husos Horarios son GMT. La hora en este momento es 13:00:11.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web