Se puede concatenar 'campo' para formar el nombre
Publicado por IDOIA (43 intervenciones) el 26/03/2004 14:12:33
Hola a todos, otra vez, necesito saber si se puede, concatenar una variable a un nombre de campo de un bloque. Me explico, en un bloque tengo 10 campos iguales,
:control.bloque1
:control.bloque2
....
:control,bloque10
y tengo q hacer para cada uno de ellos el mismo tratamiento. Para no editarlo 10 veces, lo quería hacer mediante un LOOP,
DECLARE
Sentencia varchar2(2000);
nVar number;
nCont number := 1;
BEGIN
LOOP
EXIT WHEN ncont > 10;
IF :control.BLOQUE1 is not null then
sentencia := 'UPDATE bloques1 set lOTE = '||''''||:CONTROL.lote||''''||
' WHERE BLOQUE = '||''''||:CONTROL.BLOQUE1||'''';
Agrupar_Bloque(sentencia,Nvar);
IF nVar = 0 THEN MESSAGE ('NO ha encontrado el bloque ' || :control.bloque1);
RAISE FORM_TRIGGER_FAILURE;
ELSE
COMMIT;
END IF;
END IF;
ncont := ncont + 1;
END LOOP;
END;
Para q esto me sirva, necesito poder concatenar ncont como el 1, el 2, el 3, el 4 ... en los nombres de campo, :control.bloque1 etc... Lo he intentado de varias formas, pero no lo consigo, me da error de compilacion, no reconoce los nombres. Espero haberme explicado bien, Gracias de antemano a todos. Un Saludo Idoia.
:control.bloque1
:control.bloque2
....
:control,bloque10
y tengo q hacer para cada uno de ellos el mismo tratamiento. Para no editarlo 10 veces, lo quería hacer mediante un LOOP,
DECLARE
Sentencia varchar2(2000);
nVar number;
nCont number := 1;
BEGIN
LOOP
EXIT WHEN ncont > 10;
IF :control.BLOQUE1 is not null then
sentencia := 'UPDATE bloques1 set lOTE = '||''''||:CONTROL.lote||''''||
' WHERE BLOQUE = '||''''||:CONTROL.BLOQUE1||'''';
Agrupar_Bloque(sentencia,Nvar);
IF nVar = 0 THEN MESSAGE ('NO ha encontrado el bloque ' || :control.bloque1);
RAISE FORM_TRIGGER_FAILURE;
ELSE
COMMIT;
END IF;
END IF;
ncont := ncont + 1;
END LOOP;
END;
Para q esto me sirva, necesito poder concatenar ncont como el 1, el 2, el 3, el 4 ... en los nombres de campo, :control.bloque1 etc... Lo he intentado de varias formas, pero no lo consigo, me da error de compilacion, no reconoce los nombres. Espero haberme explicado bien, Gracias de antemano a todos. Un Saludo Idoia.
Valora esta pregunta


0