Home » Non-English Forums » Spanish » Bulk Collect con Pro*c
Bulk Collect con Pro*c [message #285812] Wed, 05 December 2007 14:01 Go to next message
karfac
Messages: 1
Registered: December 2007
Junior Member
Buenas
Tengo el siguiente dilema, el cual no se si se puede hacer de esta manera.
TEngo creado un type object en oracle y un type table de ese object

CREATE OR REPLACE type o_pasoc as object (
cod_fono number(14),
cod_fax number(14)
)

CREATE OR REPLACE TYPE t_pasoc AS TABLE OF O_PASOC

A continuacion la funcion donde la utilizo:

CREATE OR REPLACE procedure My_Direc(
lista out nocopy t_pasoc,
cod_retorno OUT NOCOPY NUMBER,
mens_retorno OUT NOCOPY VARCHAR2) AS

BEGIN
cod_retorno:=0;
mens_retorno:='OK';

select O_PASOC(cod_fono, cod_fax)
bulk collect into lista
from Dir_personal;

EXCEPTION
WHEN OTHERS THEN
cod_retorno := -1;
mens_retorno := 'Error';
END My_Direc;

Este procedure lo llamo desde un Pro*c y retorna aproximadamente 20000 registros (normalemnte se demora 60 sec pero con bulk collect bajamos a 8 sec.):

EXEC SQL BEGIN DECLARE SECTION;
char Mensaje_retorno[300];
int Codigo_retorno ;
int lista_proc[10000];
EXEC SQL END DECLARE SECTION;

EXEC SQL EXECUTE
DECLARE
Lista T_PASOC;
BEGIN
My_Direc( Lista, :Codigo_retorno, :Mensaje_retorno );

/*:lista_proc:=Lista;*/
END;
END-EXEC;

Mi problema esta en la linea en negrita y la pregunta es:
Como puedo traspasar la lista type object a un host array o estructura o cualquier otra variable definida en Pro*c, sea dentro o fuera del bloque SQL.
Tengo entendido que se puede utilizar OTT (Object Type Traslator) en la parte Pro*c, pero no he encontrado ningun ejemplo.
Alguien seria tan amable de orientarme al respecto o mejor algun ejemplo como solucionar ese "problema".

Gracias.
Saludos!

Re: Bulk Collect con Pro*c [message #285903 is a reply to message #285812] Thu, 06 December 2007 01:02 Go to previous message
Maaher
Messages: 7055
Registered: December 2001
Senior Member
¿Excúseme para el mal español (esto es traducida por una máquina) pero téngale visto este acoplamiento?

Link
link 2

MHE

[Updated on: Thu, 06 December 2007 01:03]

Report message to a moderator

Previous Topic: Proceso masivo se degrada en el tiempo
Next Topic: Ejecutar procedimiento desde script
Goto Forum:
  


Current Time: Sat Nov 22 20:46:51 CST 2014

Total time taken to generate the page: 0.24249 seconds