Каждый раз, когда я пытаюсь выполнить запрос выбора для поля с пользовательским типом / вложенной таблицей, вот так:
create or replace type phone_list_type as VARRAY(3) of varchar(30);
create or replace type Email_list_type as VARRAY(3) of varchar(30);
Таблица пользователей:
create table USERS
(
USER_ID INT GENERATED BY DEFAULT ON NULL AS IDENTITY,
USER_NAME VARCHAR2(20) not null,
USER_PASSWORD VARCHAR2(200) not null,
USER_CREATIONDATE DATE default sysdate,
USER_EMAIL Email_list_type,
USER_PHONE phone_list_type,
constraint PK_USERS primary key (USER_ID)
);
Я получаю следующую ошибку:
Обнаружена ошибка PHP
Серьезность: Предупреждение
Сообщение: oci_fetch_object (): ORA-00932: несовместимые типы данных:
ожидаемый символ получил массивИмя файла: oci8 / oci8_result.php
Вот моя модель, контроллер просто загружает представление с данными модели.
function users_list_all()
{
$this->db->select('USER_ID,USER_NAME,USER_PASSWORD,USER_CREATIONDATE,USER_EMAIL,USER_PHONE');
$result = $this->db->get('USERS');
return $result->result();
}
То же самое с Nested Table, но вместо этого: ожидаемый CHAR получил TABLE, даже если тип имеет только 2 varchars, как этот:
create or replace type coordinates_type as OBJECT(
latitude varchar(20),
longitude varchar(20));
Я использую Oracle Database 12c и PHP версии 5.6.21 с XAMPP.
Задача ещё не решена.
Других решений пока нет …