PL/SQL 接続を使用して、ダミー データベースから行をフェッチしようとしています。ただし、null 値を持つ行は選択されていないようです。コマンド ラインで同じ 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);
コマンドラインで次のSQLコマンドを実行すると SELECT * FROM test;
期待どおりのデータを含む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データです。より大きなデータファイルでテストすると、null列を持たない行をフェッチするようです(要求があればデータセットを投稿できます)。また、「SELECT 1, null FROM dual」のようなものは null 値を返します。
私はこれについて数時間頭を悩ませてきました。何がうまくいかないのか、あなたの誰かが私にいくつかの指針を与えることができることを願っています.
少し早いですがお礼を!