yii + oracle

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
shimbo
Сообщения: 28
Зарегистрирован: 2013.06.14, 17:51

yii + oracle

Сообщение shimbo »

интересуют отзывы тех кто работал с такой связкой.
в частности, интересует следующий вопрос:
в виду того, что в oracle нет автоинкремента и вместо него используют SEQUENCE, есть ли какие-то тонкости/нюансы при работе с CActiveRecord?
нужно ли вручную устанавливать id при insert? или CActiveRecord это автоматом реализует?
поделитесь опытом, плиз...
Аватара пользователя
sluchainiyznak
Сообщения: 617
Зарегистрирован: 2013.05.19, 17:51
Откуда: ХМАО-Югра, г. Сургут
Контактная информация:

Re: yii + oracle

Сообщение sluchainiyznak »

У меня id вставляется по триггеру в самой БД
shimbo
Сообщения: 28
Зарегистрирован: 2013.06.14, 17:51

Re: yii + oracle

Сообщение shimbo »

как реализовывали limit?
у меня ни
$criteria->limit = $limit;
ни
$criteria->condition = 'ROWNUM <='.$limit;
не срабатывают
shimbo
Сообщения: 28
Зарегистрирован: 2013.06.14, 17:51

Re: yii + oracle

Сообщение shimbo »

люди, помогите, плиз, консультацией.
у кого реально работает связка Yii+PHP+Apache+Oracle на линуксовой машине?
ни у меня, ни у админов клиента не получилось собрать работоспособную связку.
на тестовой площадке под winXP все работает. а под линуксом - никак.
т.е. pdo вроде бы как собирается, в phpinfo все отображается, однако самые простые запросы валятся с ошибкой типа:

Код: Выделить всё

CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[HY000]: General error: 1405 OCIStmtFetch: ORA-01405: fetched column value is NULL
 (/root/PDO_OCI-1.0/oci_statement.c:446). The SQL statement executed was: WITH USER_SQL AS (SELECT * FROM "WCULTURE_OBJECTS" "t" WHERE WCOB_NNN IN (:ycp2, :ycp3, :ycp4, :ycp5, :ycp6)),
 PAGINATION AS (SELECT USER_SQL.*, rownum as rowNumId FROM USER_SQL)
 SELECT *
 FROM PAGINATION
 WHERE rownum <= 4. Bound with :ycp2='19', :ycp3='17', :ycp4='18', :ycp5='16', :ycp6='15'
или

Код: Выделить всё

CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[HY000]: General error: 1405 OCIStmtFetch: ORA-01405: fetched column value is NULL
 (/root/PDO_OCI-1.0/oci_statement.c:446). The SQL statement executed was: WITH USER_SQL AS (SELECT * FROM "WCULTURE_OBJECTS" "t" WHERE "t"."WCOB_NNN"=20),
 PAGINATION AS (SELECT USER_SQL.*, rownum as rowNumId FROM USER_SQL)
 SELECT *
 FROM PAGINATION
 WHERE rownum <= 1
apaoww
Сообщения: 1
Зарегистрирован: 2015.03.20, 09:32

Re: yii + oracle

Сообщение apaoww »

Hi,

Try using nvl function in oracle. For model that contain clob column. Using sql data provider instead.

For example. Using data provider in yii2 in controller action index

Код: Выделить всё

$count = Yii::$app->db->createCommand('
    SELECT COUNT(*) FROM POST
')->queryScalar();

        $dataProvider = new SqlDataProvider([
            'sql' => "SELECT ID, NVL(TEXT_WITH_CLOB, 'None')  FROM POST",
            'key' => 'ID',
            'totalCount' => $count,
            'sort' => [
                'attributes' => [
                    'ID',
                    'TEXT_WITH_CLOB',
                ],
            ],
            'pagination' => [
                'pageSize' => 20,
            ],
        ]);

return $this->render('index', [
            'dataProvider' => $dataProvider,
        ]); 
Ответить