是否可以将空值传递给参数查询?例如
Sql = "insert into TableX values (?,?)".
Params = [{sql_integer, [Val1]}, {sql_float, [Val2]}].
% Val2 may be a float, or it may be the atom, undefined
odbc:param_query(OdbcRef, Sql, Params).
现在,当然 odbc:param_query/3 会在尝试匹配 sql_float 时提示是否未定义 Val2,但我的问题是...是否可以使用参数化查询,例如:
Sql = "insert into TableY values (?,?,?,?,?,?,?,?,?)".
有任何空参数吗?我有一个用例,我通过插入或更新将大量实时数据转储到数据库中。我正在更新的一些表有十几个可以为空的字段,我不能保证所有数据都在那里。
将每个查询的 SQL 连接在一起,检查空值似乎很复杂,而且是错误的方法。
对每个排列进行参数化查询根本不是一种选择。
任何想法或想法都会很棒!谢谢!
最佳答案
您可以使用原子 null
表示空值。例如:
Sql = "insert into TableX values (?,?)".
Params = [{sql_integer, [Val1]}, {sql_float, [null]}].
关于带有空参数的 Erlang ODBC 参数查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2434494/