тип TABLE и работа с ним из РНР

tony2001

TeaM PHPClub
тип TABLE и работа с ним из РНР

коллеги, поделитесь опытом:
если кто-нить работал с переменными PL/SQL типа TABLE в РНР, расскажите и/или приведите кусок кода.
что-то ни одной умной мысли не приходит на этот счет.
я имею ввиду такое:
Код:
TYPE var IS TABLE OF NUMBER(4) INDEX BY BINARY_INTEGER;
 

K&T

Guest
Я в свое время так натренировался, правда со старым движком (4.2.2), что в конечном итоге плюнул и скручивал на PL/SQL collection в строку, а потом ее просто парсил и все. Сейчас вроде новый мотор понимает collection, а может и нет :) Одним словом с интересом буду наблюдать чем это закончиться.
 

tony2001

TeaM PHPClub
насколько я понимаю, коллекшены и TABLE - суть разные вещи.
я не прав?
 

K&T

Guest
Может быть я не правильно выразился - по русски МАССИВ.
 

tony2001

TeaM PHPClub
нет, я понял о чем ты.
я хочу сказать, что:
коллекшены == массивы != table
 

K&T

Guest
В моем случае я работал с такой конструкцией
TYPE t_string_list AS TABLE OF VARCHAR2(32767)
 

K&T

Guest
Да в том то и дело что никакой это не table. С нормальной таблицей можно работать, а с этим чудом аля TYPE или collection или объект или массив или ... Только select и все.
 

K&T

Guest
И все же интересно как отфетчить результат функции которая возвратит: result t_duble_list, а тот в свою очередь есть
TYPE t_duble_list as TABLE of t_duble, а тот в свою очередь есть
TYPE t_duble as OBJECT (id number, name varchar2(200)).
 

K&T

Guest
Зачастую приходиться работать с весьма приличными по набору атрибутов объектами (collection) и в таком случае весьма проблемно все это парсить причем без ошибок :)
 

tony2001

TeaM PHPClub
видимо, нужно юзать ocinewcollection() & ocicoll*(); для этого
они пока не документированы, но я этим буду заниматься в ближайшем будущем.
 

K&T

Guest
Буду весьма признателен за сообщение о результатах исследования.
 

romutis

Guest
Автор оригинала: K&T
С нормальной таблицей можно работать, а с этим чудом аля TYPE или collection или объект или массив или ... Только select и все.
Ты это сам только что придумал, что можно только селект делать, правда?
"Это просто новое слово в науке и технике!" (С) Жорж Милославский.


И еще - с чего ты взял, что TYPE, COLLECTION и OBJECT - это всё одно и то же? Не надо путать мягкое и теплое...
 

tony2001

TeaM PHPClub
romutis
а что-нибудь более содержательное ты можешь попытаться сказать?
 

K&T

Guest
Конечно могу. Есть ранее упомянутый result t_duble_list и как же в него сделать INSERT ? Я так думаю что кроме как result.extend никак. А про UPDATE я вообще молчу. Сразу замечу что тренируюсь я в 9.2, так что увы - это придумал не я :(
 

fisher

накатила суть
>>TYPE var IS TABLE OF NUMBER(4)
>>INDEX BY BINARY_INTEGER
уже разобрались, наверное, но в довесок:
TABLE - это именно коллекшн, в некотором роде массив, динамическая "таблица" в мозгах у оракла. а OBJECT - это object.
любая книжка по PL/SQL ;) есть он-лайн вариант oreilly pl/sql bookshelf, если надо - приватом, вышлю ссылку.
 

K&T

Guest
Да вот еще что, уважаемый госп. ROMITUS не надо цепляться за буквы - ловите мысли.
 

K&T

Guest
fisher
Да они там все замесили так плотно что и не понять чем является таблица из объектов ? Объектом или таблицей?
 

fisher

накатила суть
K&T: "таблицей". не путай с обычной оракловой таблицей - никаких там селект-инсерт вообще в помине нет, по-простому это массив разных-всяких-штук.
 

K&T

Guest
fisher
SELECT там как раз таки есть, а вот с остальным все запущено. Правда romutis знает как в этой штуке UPDATE сделать, но молчит.
 
Сверху