带有null参数的Erlang ODBC参数查询

时间:2010-03-12 17:19:51

标签: erlang null odbc parameters

是否可以将空值传递给参数查询?例如

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).

现在,当然,当尝试匹配sql_float时,如果Val2未定义,odbc:param_query / 3会抱怨,但我的问题是......是否可以使用参数化查询,例如:

Sql = "insert into TableY values (?,?,?,?,?,?,?,?,?)".

有任何空参数?我有一个用例,我通过插入或更新将大量实时数据转储到数据库中。我正在更新的一些表有十几个可以为空的字段,我不能保证所有数据都在那里。

为每个查询连接一起SQL,检查空值似乎很复杂,并且执行错误的方法。

对每个排列进行参数化查询根本不是一种选择。

任何想法或想法都会很棒!谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用原子null来表示空值。例如:

Sql = "insert into TableX values (?,?)".
Params = [{sql_integer, [Val1]}, {sql_float, [null]}].