2009-07-09 29 views
0

首先我很抱歉,如果我發佈在錯誤的地方。現在解決這個問題:使用CakePHP連接到oracle遠程服務器

我正在開發一個帶有CakePHP的Web應用程序,並且在Windows上有Oracle後端,開發最初是在CodeIgniter中完成的,最近我們決定遷移到CakePHP。

Oracle服務器位於不同的子網。我能夠將Cake連接到遠程服務器沒有問題,我設置了一些簡單的模型,視圖和控制器。但是,當我嘗試訪問其中一個控制器時。例如http://www.example.com/facilities/,它需要一段時間加載頁面,30秒後腳本超時。

經過lota調試後,我發現這些線路導致了問題。

cake/libs/model/datasources/dbo/dbo_oracle.php:448 


    $sql = 'SELECT view_name AS name FROM all_views UNION SELECT table_name 
      AS name FROM all_tables'; 

    if (!$this->execute($sql)) { 
     return false; 
    } 

從我的理解,蛋糕正試圖獲取所有數據庫中的表,並將其與模型相關聯,當我嘗試運行的SQLDeveloper上面的查詢,我得到了3.7K +結果,我認爲這是減緩它直到腳本超時。

有沒有解決這個問題的方法?

提前致謝。

回答

1

ALL_TABLES和ALL_VIEWS包含您可以訪問的所有表/視圖的列表。

  • 嘗試以較少的人連接 SELECT權限。
  • 或者,您可以將ALL_TABLES/ALL_VIEWS 更改爲USER_TABLES/USER_VIEWS。 只會返回您自己擁有的對象。