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

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

现在,当然 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/

相关文章:

ios - 如果变量为空,如何形成 if 语句来重复方法?

linux - 为什么我的 Erlang 引导脚本可以在控制台运行,但在从 init 系统(sysvinit、upstart、systemd)运行时却不起作用?

erlang - 为什么数学在 Erlang/BEAM VM 中这么慢?

erlang - erlang 中的类型与不透明指令

ruby - 这里的 nil 是什么意思/代表什么?

ubuntu - 在 Ubuntu 中安装 tdodbc 时遇到问题

file - 如何使用Erlang文件:read_file_info permissions/mode info?

mysql - 在 where 子句上查找空值时查询不起作用

mysql - MySQL 和 Access 的更新问题

sql-server - 如何创建指向字段名称中包含句点的 SQL Server View 的 Jet ODBC 链接?