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 :De plus la vue contient bien le champs "num_ligne" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part protected $_primary = 'num_ligne';j'ai bien "num_ligne" qui ressort dans COLUMN_NAME
Code : Sélectionner tout - Visualiser dans une fenêtre à part SQL>SELECT * FROM ALL_COL_COMMENTS WHERE TABLE_NAME = 'FIDELIO_RESAS_2';
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 :
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 $select = $this->getDbTable() ->select() ->from($this->getDbTable());
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..
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) . ")"); }
Merci de m'éclairer
Partager