【发布时间】:2018-10-18 16:31:08
【问题描述】:
是否可以在 Teradata 动态 SQL 语句中使用绑定变量?我在任何地方都找不到示例。我想做这样的事情:
DECLARE SQLString VARCHAR(1000)
SET SQLString = 'SELECT * FROM MyTable WHERE ColumnA = :variable1';
EXECUTE IMMEDIATE SQLString; --Can I pass something here for variable1 or do I have to concatenate and not use a bind variable?
谢谢
【问题讨论】:
-
简单的
DECLARE variable1 VARCHAR(1000); SELECT * FROM MyTable WHERE ColumnA = variable1;怎么样 -
在这个简单的例子中,不使用 EXECUTE IMMEDIATE 是有意义的,但是我有一个复杂的动态 SQL 语句,我不能只转换为普通的 SQL 语句。
-
请发布示例(您想在 EXECUTE IMMEDIATE 中执行 DDL)吗?
-
表名是动态的,这就是为什么它需要动态SQL:'SELECT * FROM' ||表名变量 || ' WHERE ColumnA = :variable1'
-
如我所想。不可能将 TableNameVariable 作为参数/变量传递。您可以使用连接方法,但您必须确保输入是安全的以避免 SQL 注入攻击
标签: sql teradata teradata-sql-assistant