Started off yesterday with the intention of trying to implement functional Oracle Clobs in Yii similar to how I implemented it in CakePHP a couple years ago. As yesterday went on I kept busting through boundaries and was feeling great about my progress. But Then I hit the roadblock and I wasn’t able to continue. It’s not worth spending another couple days on when I have a deadline for a pilot by Fall. 4000 characters is enough for the pilot.
The result has been to alter the Yii COciSchema. Just changing the declaration of text to a varchar2(4000).
public $columnTypes=array( 'pk' => 'NUMBER(10) NOT NULL PRIMARY KEY', 'string' => 'VARCHAR2(255)', //'text' => 'CLOB', 'text' => 'VARCHAR2(4000)', 'integer' => 'NUMBER(10)', 'float' => 'NUMBER', 'decimal' => 'NUMBER', 'datetime' => 'TIMESTAMP', 'timestamp' => 'TIMESTAMP', 'time' => 'TIMESTAMP', 'date' => 'DATE', 'binary' => 'BLOB', 'boolean' => 'NUMBER(1)', 'money' => 'NUMBER(19,4)', );
The issue is Yii (PDO) doesn’t support LOBs well at all, so that declaration didn’t make any sense to begin with.