坑爹的Yii对oracle的支持

首先感谢这篇文章:http://ihacklog.com/post/how-to-connect-to-two-or-more-databases-simutaneously.html

在他的帮助下,我成功配置了第二个连接,然后在一没有pdo经验,二没有在Yii下用过oracle的情况下,一点点摸索前进。

在成功连接oracle后,遇到一个天大的问题:The table "xxxx.tablename" for active record class "MyClass" cannot be found in the database。

我找了一个多小时,反复试验,就是找不到。我试图修改tnsnames.ora,未果。去掉点前面的xxxx,也不行。

如果直接使用sql,是可以的:

$sql="select * from xxxx.tablename";
$user=Yii::app()->db_oracle->crateCommand($sql)->queryAll();

百思不得其解。最后只好回过头来看yii的文档:

http://www.yiiframework.com/wiki/99/using-yii-with-oracle-through-pdo/#hh3

Names case-sensitivity

Column names in Oracle are case-sensitive. This means that if you use all uppercase characters when creating a table (common behaviour among Oracle developers) and then try to access it with model and ActiveRecord for example like this:

Names case-sensitivity
Column names in Oracle are case-sensitive. This means that if you use all uppercase characters when creating a table (common behaviour among 
Oracle developers) and then try to access it with model and ActiveRecord for example like this:... ...

我试着把表名改为正确的大小写,通过了。

尼玛。。。

原文地址:https://www.cnblogs.com/anjo/p/2620619.html