变量表或列名称

时间:2010-06-17 05:07:55

标签: sql informix

INFORMIX-SQL或任何其他基于SQL的数据库:

假设我有一个应用程序,取决于某些列的值,例如:

company.code  char(3) {abc}
company.branch char(2) {01}

我可以构造表名“abc01”以包含在SELECT * FROM abc01中; ? 换句话说,变量表名称..相同的问题适用于列名。

2 个答案:

答案 0 :(得分:3)

仅限于可以操作字符串并处理动态SQL的语言。它必须动态创建声明。

您只能在查询值中使用占位符,而不能在查询的结构元素(如表名或列名)中使用占位符。

答案 1 :(得分:2)

仅当您使用动态sql时。这就像你在你的应用程序中构建sql代码,然后使用像执行立即。

sprintf(cdb_text1, "create table %s (field1 char(3));", usr_db_id);
EXEC SQL execute immediate :cdb_text;

如果使用动态sql,由于sql注入,这很糟糕。