2012-08-06 111 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对象的用户。

相关问题