나는 윈도우 XP에 오라클 10g Express를 사용하고, 그리고 PDO와 오라클 인스턴트 클라이언트 10.2.0.4.0_4와 맥북 OS X 10.5.8 실행 PHP 5.3.1에, 나는 다음과 같은 스크립트를 실행PHP에서 Oracle SQL 쿼리에 대한 EXPLAIN PLAN을 가져 오는 방법은 무엇입니까?
<?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);
을
문제 없습니다. 그러나 나는 또한이 쿼리에 대해 EXPLAIN PLAN
보고서를 가져 오는 PHP 스크립트를 작성할 수 있기를 원합니다. 내가 이것을하려고하면 오류가 발생합니다 :
$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);
(나는이 테스트에 대한 문자 그대로의 하드 코딩 된 정수로 쿼리 매개 변수를 변경했습니다.) 나는
fetch()
를 호출 할 때
나는이 오류가 발생합니다 :
ORA-24374: define not done before fetch or execute and fetch
어떤이의 설명, 그리고 어떻게 PHP 스크립트에서 EXPLAIN PLAN
보고서를받을 수 있나요? 이 오류에 대한 일부 웹 검색을 수행했지만 명확한 설명을 찾을 수 없습니다.
감사합니다. Bill이 방금 이메일을 보냈습니다. –