2012-08-06 109 views
0

我被要求將我的應用程序從使用SQL Server數據庫遷移到Oracle數據庫。從SQL Server更改爲Oracle數據庫

我得到這個錯誤:

ORA-00942: table or view does not exist

我可能是錯的,但我相信這是我的發言的問題。有一種特定的格式,我需要通過SQL Server連接到oracle數據庫嗎?

我會包括我的查詢語句:

namespace project1 
{ 
    public class dbqry 
    { 
     private static string qry = ""; 


     public static DataTable gProjectCIS(string BSA_CD) 
     { 
      qry = string.Format(@"SELECT * 
        FROM CIS_TRANS 
        WHERE BSA_CD like '%{0}%'", BSA_CD); 

      return dbcon.GetDataTable(qry, "ProjectCISConnectionString"); 
     } 

     public static DataTable gProjectCIS() 
     { 
      qry = @"SELECT * 
        FROM CIS_TRANS"; 

      return dbcon.GetDataTable(qry, "ProjectCISConnectionString"); 
     } 

謝謝!

回答

1

你好,你必須使用模式

qry = string.Format(@"SELECT * 
     FROM YourSchemaUser.CIS_TRANS <-- Fix your schema user name 
     WHERE BSA_CD like '%{0}%'", BSA_CD); 

    qry = @"SELECT * FROM YourSchemaUser.CIS_TRANS"; <-- Fix your schema user name 

前綴您表,並在存儲過程修復包。

您更改聲明和正文,在使用前第一次編譯您的程序包

+0

Packagename將數據庫從?此外,因爲我做更新,選擇,刪除和所有這些,在我的default.asp頁面的GridView,我是否也需要做同樣的呢? – KKP 2012-08-06 15:44:16

+0

您必須在存儲過程上定義架構廣告包 – 2012-08-06 15:46:01

+0

好的,在這種情況下我的架構是CIS。所以它看起來像CIS.CIS_TRANS。我是否也必須將CIS_TRANS聲明更改爲CIS.CIS_TRANS,或者只有查詢頁上的聲明? – KKP 2012-08-06 15:51:10

0

對於區分大小寫而言,Oracle很挑剔。如果表格用「QUOTES」聲明,則需要在查詢和匹配大小寫中包含引號。這可能是一個好的開始。

0

檢查對象名稱。同時檢查他們是否在正確的情況下。

檢查您用來連接數據庫的用戶名是否具有您要使用的表/視圖的權限。 Oracle通常會說,如果您沒有正確的權限,表格就不存在。

+0

查看http://www.mydigitallife.info/ora-00942-table-or-view-does-not-exist-oracle-error/ – caoquendo 2012-08-06 15:51:36

0

你確定你正在登錄到正確的模式嗎?

+0

是的,我敢肯定.. – KKP 2012-08-06 16:48:49

0

您應該檢查CIS_TRANS表是否有appropraite公共同義詞,是這樣的:

create or replace public synonym CIS_TRANS for some_user.CIS_TRANS 

其中some_user是創建CIS_TRANS對象的用戶。

相關問題