Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从数据库中检索Null_Sql_C_Db2 - Fatal编程技术网

Sql 从数据库中检索Null

Sql 从数据库中检索Null,sql,c,db2,Sql,C,Db2,我写了一个代码: EXEC SQL SELECT COLUMN.NAME into :h_HOST_VARIABLE :i_HOST_VARIABLE FROM TABLE_NAME WHERE someCondition...... 从中提取数据的列可以为NULL。h\u HOST\u变量中已经有一些值,因此执行此查询时,该列中的值为NULL 因此,我希望主机变量将设置为NULL(因此我没有对主机变量进行memset),但没有发生,它保留了以前的值。为什么会发生这种情况?使用: EXEC S

我写了一个代码:

EXEC SQL
SELECT COLUMN.NAME into :h_HOST_VARIABLE :i_HOST_VARIABLE
FROM TABLE_NAME
WHERE
someCondition......
从中提取数据的列可以为NULL。h\u HOST\u变量中已经有一些值,因此执行此查询时,该列中的值为NULL

因此,我希望主机变量将设置为NULL(因此我没有对主机变量进行memset),但没有发生,它保留了以前的值。为什么会发生这种情况?

使用:

EXEC SQL
SELECT nvl(COLUMN.NAME,null) into :h_HOST_VARIABLE :i_HOST_VARIABLE
FROM TABLE_NAME
WHERE
someCondition......

这是设计好的。
:

检查null指示符变量是否为负值。如果 值不是负值,应用程序可以使用 主机变量如果值为负值,则获取的值为 null,不应使用主机变量。数据库管理器 在这种情况下,不会更改主机变量的值


如果您真的在DB2中尝试这一点,您将得到一个语法错误,这个问题是针对DB2而不是Oracle标记的。如果试图在DB2中的NVL表达式中使用NULL,则会出现语法错误。您的示例在DB2中不起作用。