Bonjour à tous,

Je cherche à faire un fetchAll sur une vue créée sous Oracle, mais j'ai cette erreur qui ressort : "Primary key column(s) (num_ligne) are not columns in this table ()"

"num_ligne" est déclaré en tant que clé primaire dans le model DbTable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
protected $_primary = 'num_ligne';
De plus la vue contient bien le champs "num_ligne" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SQL>SELECT * FROM ALL_COL_COMMENTS WHERE TABLE_NAME = 'FIDELIO_RESAS_2';
j'ai bien "num_ligne" qui ressort dans COLUMN_NAME


Tout mon code marche sur d'autres BDD Oracle, j'ai fais un copié collé des modeles de DbTable, vues etc... Si je change juste la DB le code marche.
Le setDbTable fonctionne, mais le problème survient au moment du select, dans le fetchAll :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$select = $this->getDbTable()
    	->select()
    	->from($this->getDbTable());
Le morceau de code dans /usr/local/zend/share/ZendFramework/library/Zend/Db/Table/Abstract.php qui renvoit l'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
$cols = $this->_getCols();
        if (! array_intersect((array) $this->_primary, $cols) == (array) $this->_primary) {
            require_once 'Zend/Db/Table/Exception.php';
            throw new Zend_Db_Table_Exception("Primary key column(s) ("
                . implode(',', (array) $this->_primary)
                . ") are not columns in this table ("
                . implode(',', $cols)
                . ")");
        }
Si vous voyez un truc que j'ai loupé.. C'est pourtant du copié collé de code qui fonctionne, peut-être que cette DB fonctionne différemment, je ne sais pas..
Merci de m'éclairer