如何在带有Yii框架的oracle 11g中使用CLOB

问题描述 投票:0回答:4

我在Yii中的对象映射到一个表,女巫包含一个CLOB列。

如何使用save()方法插入,将〜54k字符长度的字符串插入一行?

php oracle11g yii clob
4个回答
1
投票

Yii在其ActiveRecord模型中具有beforeSave()和afterSave()事件方法。我会使用这些而不是重写save()方法。将所有必需的Oracle方法放入其中。基本上:清空beforeSave()中的字段,然后在afterSave()中使用OCIParse()等将值写入数据库。

[这是一篇有关Cake PHP框架的很好的博客文章,该框架非常相似(MVC带有Save方法之前和之后)。显然,您需要修改此代码才能与Yii一起使用,但是它应该使您走上正确的轨道:

http://nik.chankov.net/2008/01/03/cakephp-and-oracle-handling-clob-fields/

最新版本的Yii现在也具有查询生成器,这可能对您将需要编写的afterSave()代码有所帮助:

http://www.yiiframework.com/doc/guide/1.1/en/database.query-builder

祝你好运!


0
投票

我现在就算了。我还需要在Oracle 11g中使用BLOB,我想将图像插入到Oracle表中。


0
投票

这对我有用,但是我对此并不感激,我正在开始将MySQL改编为ORACLE。疯狂!!!


0
投票

当使用yii2和Oracle DB时,我们的项目在读取和写入LOB字段时也遇到了问题。结果,此刻,我决定编写一个类,以在yii2中重新定义ActiveRecord类的某些方法,并继承一些模型,这些模型不是从ActiveRecord而是从其中继承。我使它变得相对通用,您可以以此为基础进行改进https://github.com/pivasikkost/yii2-improvements/blob/master/models/ActiveRecordOciLob.php

© www.soinside.com 2019 - 2024. All rights reserved.