Crear tabla en forma dinámica

Estoy con Guarani 2.7.0.

Necesito poder crear una tabla, dentro de un store procedure, pero con nombre definido dentro de una variable, ya que varía.

Estoy intentando algo así:
CREATE PROCEDURE create_tab (table_name CHAR(128), column_list CHAR(512))
DEFINE l_crtstmt CHAR(1024);
LET l_crtstmt = “CREATE TABLE " || table_name ||”(“|| column_list || " )”;
EXECUTE IMMEDIATE l_crtstmt;
END PROCEDURE;

Pero la última línea, la del EXECUTE IMMEDIATE me da error de sintaxis…
Si comento esa línea todo bien, y si retorno la cadena l_crtstmt, la sentencia la genera bien.

Alguna idea del por qué?
O alguna alternativa a poder hacer esto?

Gracias!!!

Iris:

  1. Hay que ver si esa sentencia es soportada en Informix 9.21

  2. Por lo que leí hay que ejecutarla con ESQL/C.

  3. Te dejo un par de linsk que encontré, con la sintaxis y ejemplos, quizás empezando por ahí puedas ver que pasa.

http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqls.doc/sqls483.htm

http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqls.doc/sqls486.htm

Después contanos que pasó así todos aprendemos.

Saludos

Gustavo

Iris:

Aquí hay otro link que quizás te pueda ayudar …

http://www.oninit.com/manual/informix/english/docs/dbdk/is40/esqlc/14.html

Pero creo que este tema es más propio del foro de Informix.

Saludos

Gustavo

Y quizás este sea el mejor link para empezar …

http://www.pacs.tju.edu/informix/answers/english/docs/dbdk/is40/esqlc/147.html

Saludos

Gustavo

En la version 9.x no se pueden ejecutar sql dinamicas desde stored procedures.
Si podes hacerlo desde el Power Builder. Si necesitas algun ejemplo, busca en los objetos exportados “EXECUTE IMMEDIATE”. Creo se usa en la generación de legajo de alumnos.