ociNewCursor

ociNewCursor -- Retourne un nouveau pointeur à utiliser pour lier les pointeurs de références

Description

int ocinewcursor ( resource conn)

ocinewcursor( ) alloue un nouveau pointeur de commande , pour la connexion conn .

Exemple 1 . Utiliser un REF CURSOR issue d ' une procédure enregistrée .

 
?php

 
/

 
/

 
supposons

 
que

 
votre

 
procédure

 
stoquée

 
info.output

 
retourne

 
un

 
pointeur

 
/

 
/

 
de

 
curseur

 
dans

 
:

 
data

 
$conn

 
=

 
ociLogon(

 
"scott"

 
,"tiger")

 
;

 
$curs

 
=

 
ociNewCursor($conn)

 
;

 
$stmt

 
=

 
ociparse($conn

 
,"begin

 
info.output(:data)

 
;

 
end

 
;")

 
;

 
ocibindbyname($stmt

 
,"data"

 
,

 
$curs,-1,oci_B_CURSOR)

 
;

 
ociexecute($stmt)

 
;

 
ociexecute($curs)

 
;

 
while

 
(ociFetchInto($curs

 
,

 
$data)

 
)

 
{

 
var_dump($data)

 
;

 
}

 
ociFreeStatement($curs)

 
;

 
ociFreeCursor($stmt)

 
;

 
ociLogoff($conn)

 
;

 
?





Exemple 2 . Utiliser un REF CURSOR issue d ' une commande SELECT

 
?php

 
print

 
"

 
HTML

 
BODY

 
"

 
;

 
$conn

 
=

 
ociLogon("scott"

 
,"tiger")

 
;

 
$count_cursor

 
=

 
"CURSOR(select

 
count(empno

 
)

 
num_emps

 
from

 
emp

 
"

 
.

 
"where

 
emp.deptno

 
=

 
dept.deptno

 
)

 
as

 
EMPCNT

 
from

 
dept"

 
;

 
$stmt

 
=

 
ociparse($conn

 
,"select

 
deptno,dname,$count_cursor")

 
;

 
ociexecute($stmt)

 
;

 
print

 
"

 
TABLE

 
BORDER=\"1\

 
"

 
"

 
;

 
print

 
"

 
TR

 
"

 
;

 
print

 
"

 
TH

 
DEPT

 
NAME

 
/

 
TH

 
"

 
;

 
print

 
"

 
TH

 
DEPT

 
#

 
/

 
TH

 
"

 
;

 
print

 
"

 
TH

 
#

 
EMPLOYEES

 
/

 
TH

 
"

 
;

 
print

 
"

 
/

 
TR

 
"

 
;

 
while

 
(ociFetchInto($stmt

 
,

 
$data,oci_ASSOC)

 
)

 
{

 
print

 
"

 
TR

 
"

 
;

 
$dname

 
=

 
$data["DNAME"]

 
;

 
$deptno

 
=

 
$data["DEPTNO"]

 
;

 
print

 
"

 
TD

 
$dname

 
/

 
TD

 
"

 
;

 
print

 
"

 
TD

 
$deptno

 
/

 
TD

 
"

 
;

 
ociexecute($data

 
[

 
"EMPCNT

 
"

 
])

 
;

 
while

 
(ociFetchInto($data

 
[

 
"EMPCNT

 
"

 
]

 
,

 
$subdata,oci_ASSOC)

 
)

 
{

 
$num_emps

 
=

 
$subdata["NUM_EMPS"]

 
;

 
print

 
"

 
TD

 
$num_emps

 
/

 
TD

 
"

 
;

 
    }

 
print

 
"

 
/

 
TR

 
"

 
;

 
}

 
print

 
"

 
/

 
TABLE

 
"

 
;

 
print

 
"

 
/

 
BODY

 
/

 
HTML

 
"

 
;

 
ociFreeStatement($stmt)

 
;

 
ociLogoff($conn)

 
;

 
?