PHP nasıl bir Oracle SQL sorgusu PLANI İZAH getirebilir?

1 Cevap php

Ben PDO ve Oracle Instant Client 10.2.0.4.0_4 PHP 5.3.1 çalıştıran Windows XP üzerinde Oracle 10g Express kullanıyorsanız ve bir Macbook OS X 10.5.8 değilim, ben aşağıdaki komut dosyasını çalıştırın:

<?php
$pdo = new PDO("oci:dbname=winders:1521/xe", "system", "XXXXXX");
...

$sql = "WITH NumberedBugs AS (
    SELECT b.*, ROW_NUMBER() OVER (ORDER BY bug_id) AS RN 
    FROM Bugs b
) SELECT * FROM NumberedBugs WHERE RN = :offset";

$stmt = $pdo->prepare($sql);
$stmt->execute($offset);
$row = $stmt->fetch(PDO::FETCH_ASSOC);

Problem yok. Ama ben de bu sorgu için EXPLAIN PLAN rapor alır bir PHP komut dosyası yazmak mümkün olmak istiyorum. Ben bu deneyin zaman, ben bir hata alıyorum:

$sql = "EXPLAIN PLAN FOR WITH NumberedBugs AS (
    SELECT b.*, ROW_NUMBER() OVER (ORDER BY bug_id) AS RN 
    FROM Bugs b
) SELECT * FROM NumberedBugs WHERE RN = 1234";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);

(Ben bu test için değişmez bir sabit kodlanmış tamsayı sorgu parametresini değiştirmiş.)

Ben aramaya çalıştığınızda bu hatayı alırsınız fetch():

ORA-24374: define almak veya çalıştırmak ve getirme önce yapmadıysanız

Ne bu açıklama, ve nasıl bir PHP komut dosyası EXPLAIN PLAN rapor alabilirim? Ben bu hata için bazı web arama yaptık, ama yeterince net bir açıklama bulamadım.