我正在使用 PL/SQL 连接尝试从虚拟数据库中获取行。但是,它似乎没有选择任何具有空值的行。在命令行上测试相同的 SQL 命令确实有效。
我创建了以下测试表:
CREATE TABLE test
(
id number(4) primary key,
test_field VARCHAR(255)
);
并插入以下虚拟数据:
INSERT INTO test
(id, test_field) VALUES (1, 'test1');
INSERT INTO test
(id, test_field) VALUES (2, NULL);
当我在命令行 SELECT * FROM test 上执行以下 SQL 命令时;
我收到 2 行数据,如我所料(第 2 行没有 test_field 值)
但是,执行相同的命令槽
$conn = oci_connect(..., ..., ...);
if (!$conn) { // error handling }
$stid = oci_parse($conn, 'SELECT * FROM test');
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS))) {
var_dump($row);
}
在此期间它没有达到任何东西。
这是抽象的 sql 数据,当我使用更大的数据文件对其进行测试时,它似乎会获取任何没有空列的行(如果需要,我可以发布数据集)。此外,诸如“SELECT 1, null FROM dual”之类的内容确实会返回空值。
几个小时以来,我一直在努力解决这个问题。我希望你们中的任何人都可以给我一些关于出了什么问题的指示。
预先感谢!