ejecutar cadena
Publicado por alfredo (17 intervenciones) el 17/12/2008 01:03:33
Hola tengo problemas para ejecutar esta cadena , solo puedo abrirla con un refcursor y mostrar los comandos , pero no se como ejecutarlo, me podrian ayudar...
Gracias
WHILE v_i < v_max
LOOP
BEGIN
SELECT NVL(v_sql, '') || 'select ' ||to_char(v_iDocid) ||' as Docid,Nombrecampo as Campo,
nvl((select to_char(' || NombreCampo || ' )from ' || Tabla || ' where Docid = '|| to_char(v_iDocid) ||'),'|| CHR(39)|| ' '
|| CHR(39) || ') as ' || 'Valor ,to_char(NVL(PermisoID, 0) ) as PermisoID, TipoDato, LongitudMax, LongitudMin,
Obligatorio,Mostrar, Mascara, Regla,accion,TipoDatoConsulta, condicion1,condicion2,condicion3,
tipoDatoCliente from CatCamposDocumento where CampoID=' || TO_CHAR(v_i) || ' and Tabla= ' || CHR(39) || v_tabla || CHR(39) || '
union all '
INTO v_sql
FROM CatCamposDocumento
WHERE Tabla = v_tabla
AND CampoID = v_i;
--and Obligatorio=1
v_i := v_i + 1;
END;
END LOOP;
v_sql := SUBSTR(v_sql, 1, LENGTH(v_sql) - 11)||';';
OPEN cv_1 FOR SELECT v_sql FROM DUAL ;
--DBMS_OUTPUT.PUT_LINE(v_resultado);
--EXECUTE IMMEDIATE v_resultado;
Gracias
WHILE v_i < v_max
LOOP
BEGIN
SELECT NVL(v_sql, '') || 'select ' ||to_char(v_iDocid) ||' as Docid,Nombrecampo as Campo,
nvl((select to_char(' || NombreCampo || ' )from ' || Tabla || ' where Docid = '|| to_char(v_iDocid) ||'),'|| CHR(39)|| ' '
|| CHR(39) || ') as ' || 'Valor ,to_char(NVL(PermisoID, 0) ) as PermisoID, TipoDato, LongitudMax, LongitudMin,
Obligatorio,Mostrar, Mascara, Regla,accion,TipoDatoConsulta, condicion1,condicion2,condicion3,
tipoDatoCliente from CatCamposDocumento where CampoID=' || TO_CHAR(v_i) || ' and Tabla= ' || CHR(39) || v_tabla || CHR(39) || '
union all '
INTO v_sql
FROM CatCamposDocumento
WHERE Tabla = v_tabla
AND CampoID = v_i;
--and Obligatorio=1
v_i := v_i + 1;
END;
END LOOP;
v_sql := SUBSTR(v_sql, 1, LENGTH(v_sql) - 11)||';';
OPEN cv_1 FOR SELECT v_sql FROM DUAL ;
--DBMS_OUTPUT.PUT_LINE(v_resultado);
--EXECUTE IMMEDIATE v_resultado;
Valora esta pregunta


0