Правильно читать несколько данных CLOB - php / oracle

В оракуле БД у меня есть столбец CLOB в таблице. Когда я выполняю команду select, чтобы получить все данные этой таблицы, результат показывает мне только первый CLOB, зарегистрированный в БД. Например, у меня есть таблица под названием Новости. Эта таблица имеет:

|---------------------|-----------------------|------------------------|
|  New_Id (Number)    |  New_Title (Varchar2) |  New_Content (CLOB)    |
|---------------------|-----------------------|------------------------|
|          1          |       Title Test 1    |     Content test 1     |
|---------------------|-----------------------|------------------------|
|          2          |       Title Test 2    |     Content test 2     |
|---------------------|-----------------------|------------------------|
|          3          |       Title Test 3    |     Content test 3     |
|---------------------|-----------------------|------------------------|
|          4          |       Title Test 4    |     Content test 4     |
|---------------------|-----------------------|------------------------|

В Oracle у меня есть функция, которая выполняет:

FOR linha IN (SELECT New_Id, New_Title, New_Content FROM New)
  LOOP
    outList := news_obj( line.New_Id, line.New_Title, line.New_Content);
    pipe row(outList );
  END LOOP;

Я проверил эту функцию, и работает отлично!

PDO в php:

public function selectDB($sql,$params=null,$class=null)
{
    $query=$this->connect()->prepare($sql);
    $query->execute($params);

    if(isset($class)){
        $rs = $query->fetchAll(PDO::FETCH_CLASS,$class) or die(print_r($query->errorInfo(), true));
    }else{
        $rs = $query->fetchAll(PDO::FETCH_OBJ) or die(print_r($query->errorInfo(), true));
    }

    self::__destruct();
    return $rs;
}

Затем установите объект:

for($i=0; $i < count($array); $i++){
    $objNot = new news();
    $objNot->setNew_id($array[$i]->NEW_ID);
    $objNot->setNew_title($array[$i]->NEW_TITLE);
    $objNot->setNew_content(stream_get_contents($array[$i]->NEW_CONTENT));
    array_push($array2, $objNot);
}
return array2;

Результат запроса показывает мне new_id и new_title правильно, но столбец new_content показывает только первые данные (Content test 1) для всех. Результат показывает это:

|---------------------|-----------------------|------------------------|
|          1          |       Title Test 1    |     Content test 1     |
|---------------------|-----------------------|------------------------|
|          2          |       Title Test 2    |     Content test 1     |
|---------------------|-----------------------|------------------------|
|          3          |       Title Test 3    |     Content test 1     |
|---------------------|-----------------------|------------------------|
|          4          |       Title Test 4    |     Content test 1     |
|---------------------|-----------------------|------------------------|

Чего не хватает? Есть ли что-то не так?

0 ответов

Другие вопросы по тегам