Вы не зарегистрированы? Нажмите здесь для регистрации.
Забыли пароль? Запросите новый здесь.
|
Вы должны авторизироваться, чтобы добавить сообщение.
|
|
|
Последние активные темы форума |
|
oci_new_cursor
(PHP 5) oci_new_cursor -- Возвращает идентификатор созданного курсора
Описаниеresource oci_new_cursor ( resource connection ) oci_new_cursor() создает новый курсор для указанного
соединения и возвращает его идентификатор.
Пример 1. Использование REF CURSOR'ов в хранимых процедурах Oracle
<?php
// suppose your stored procedure info.output returns a ref cursor in :data
$conn
=
oci_connect
(
"scott"
,
"tiger"
);
$curs
=
oci_new_cursor
(
$conn
);
$stmt
=
oci_parse
(
$conn
,
"begin info.output(:data); end;"
);
oci_bind_by_name
(
$stmt
,
"data"
,
$curs
, -
1
,
OCI_B_CURSOR
);
oci_execute
(
$stmt
);
oci_execute
(
$curs
);
while (
$data
=
oci_fetch_row
(
$curs
)) {
var_dump
(
$data
);
}
oci_free_statement
(
$stmt
);
oci_free_statement
(
$curs
);
oci_close
(
$conn
);
?>
|
|
Пример 2. Использование REF CURSOR'ов в запросах Oracle
<?php
echo
"<html><body>"
;
$conn
=
oci_connect
(
"scott"
,
"tiger"
);
$count_cursor
=
"CURSOR(select count(empno) num_emps from emp "
.
"where emp.deptno = dept.deptno) as EMPCNT from dept"
;
$stmt
=
oci_parse
(
$conn
,
"select deptno,dname,$count_cursor"
);
oci_execute
(
$stmt
);
echo
"<table border=\"1\">"
;
echo
"<tr>"
;
echo
"<th>DEPT NAME</th>"
;
echo
"<th>DEPT #</th>"
;
echo
"<th># EMPLOYEES</th>"
;
echo
"</tr>"
;
while (
$data
=
oci_fetch_assoc
(
$stmt
)) {
echo
"<tr>"
;
$dname
=
$data
[
"DNAME"
];
$deptno
=
$data
[
"DEPTNO"
];
echo
"<td>$dname</td>"
;
echo
"<td>$deptno</td>"
;
oci_execute
(
$data
[
"EMPCNT"
]);
while (
$subdata
=
oci_fetch_assoc
(
$data
[
"EMPCNT"
])) {
$num_emps
=
$subdata
[
"NUM_EMPS"
];
echo
"<td>$num_emps</td>"
;
}
echo
"</tr>"
;
}
echo
"</table>"
;
echo
"</body></html>"
;
oci_free_statement
(
$stmt
);
oci_close
(
$conn
);
?>
|
|
Замечание:
В версиях PHP ниже 5.0.0 эта функция называлась ocinewcursor().
В PHP 5.0.0 и выше ocinewcursor() является
алиасом oci_new_cursor(), поэтому вы можете
продолжать использовать это имя, однако это не рекомендуется.
|
· Гостей: 6
· Пользователей: 0
· Всего пользователей: 453
· Новый пользователь: ZDA
|
|