我有一个奇怪的情况,我想在SQL字符串中使用一个变量。基本上ODBC将返回一个带字符串的查询,在该字符串中将有一个Asterisk变量,我需要这样的措辞并传递回SQL。例如(无意义的代码,但显示示例) -
exten => s,n,Set(QUERY=${ODBC_GET_QUERY(${EXTEN})})
func_odbc.conf
中的SQL查询是SELECT query FROM tablea WHERE number = ${ARG1}
现在QUERY看起来像to = ${DIALED}
,${DIALED}
是一个星号变量(我会以17005551212为例)我需要这样的措辞,所以我最终得到了 -
exten => s,n,Set(ALLOWED=${ODBC_GET_ALLOWED(${QUERY})})
func_odbc.conf
中的SQL查询将为SELECT allowed FROM tableb WHERE ${ARG1}
,因此SQL查询将解析为SELECT allowed WHERE to = 17005551212
。
在我深入研究并重新发明轮子之前,是否有可能甚至允许?我其实还没试过。我知道在Set()
语句中它将短语变量内联,但有没有办法在变量通过ODBC返回变量时变量?谢谢!
答案 0 :(得分:1)
请仔细阅读源代码。
Func odbc使用预付费电话。所以它不适用于你的例子,因为预备不允许这样做。
通常,您可以替换变量。示例1将正常工作。
解决方法 - 使用mysql EXEC。