2012-05-02 2 views
3

Я создал тип на OracleКак открыть пользовательский тип из plsql на php?

CREATE OR REPLACE TYPE myType as object (
id number,rol varchar(16));​ 

Тогда у меня есть это функция, которая возвращает объект типа MyType

create or replace FUNCTION myFunction(...) RETURN myType IS 
.... 
END; 

На PLSQL я могу получить доступ к атрибутам возвращаемый объект просто делает это:

var := myFunction(...); 
dbms_output.put_line(var.rol); 

Но как я могу получить доступ к объекту атрибутов из PHP с помощью OCI8

ответ

1

Сначала создайте тип этого объекта, чтобы иметь возможность вернуть его в виде таблицы.

CREATE TYPE tableType AS TABLE OF myType 

Затем, используя Oracle в таблицу() функции вы можете обрабатывать вывод как нормальный выбор на PHP

select * 
from table(myFunction(...)) 

просто, да? :)

(отредактирован в соответствии с просьбой для полноты)

+0

благодаря это работает, просто изменить свой ответ и добавить, что мне нужно, чтобы создать тип таблицы: CREATE TYPE TABLETYPE IS ТАБЛИЦА MyType, и что я просто должен обрабатывать выбор как обычный запрос на PHP – Warer

+0

Также я могу просто использовать sys_refcursor и использовать OCI_B_CURSOR, правильно? – Warer