with stored hold example ejemplo cursores sql foreach eval informix execute

sql - stored - Cómo EVALUAR una cadena SELECCIONAR y EJECUTAR



foreach with hold informix (0)

Escribí una función, StoogeFunk , que usa FOREACH contra systables y syscolumns , para concatenar en una cadena la lista de campos en una tabla (cuyo nombre se pasa como un parámetro de función). Rodeé con CAST / VARCHAR (30) los campos de fecha, por razones que no me atrevo a explicar. Entonces, llegué a un punto en el que tengo una cadena, SelectString , el equivalente de:

SELECT Name, CAST(DOB AS VARCHAR(30)) AS DOB, ShoeSize FROM Stooges

Mi función simplemente devuelve esa cadena LVARCHAR (y es larga, debido a muchos campos). Ese resultado-texto SELECT funciona bien en una ventana de consulta.

1.) Ahora, en lugar de devolver esa cadena (una simple línea "RETURN SelectString;" antes de "END FUNCTION;"), quiero ejecutar la cadena, volviendo de la función un grupo de registros agradable, grande y jugoso. Me imagino algo así como un EVAL:

RETURN EVAL(SelectString);

¿Cómo puedo alcanzar ese sueño?

2.) Si lo anterior es imposible, ¿podría llamar a la función SelectString -result externamente?

EXECUTE EVAL(StoogeFunk("StoogeTable"))

¿Cómo sería eso viable?