0

我被要求将我的应用程序从使用 SQL Server 数据库迁移到 Oracle 数据库。

我收到此错误:

ORA-00942: 表或视图不存在

我可能是错的,但我相信这是我的陈述的问题。我需要遵循通过 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");
        }

谢谢!

4

5 回答 5

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

并在存储过程上修复包。

您更改声明和正文,在使用前第一次编译您的包

于 2012-08-06T15:39:13.680 回答
0

Oracle 在区分大小写方面很挑剔。如果表是用“QUOTES”声明的,您需要在查询和匹配大小写中包含引号。这可能是一个好的开始。

于 2012-08-06T15:38:47.413 回答
0

检查对象名称。还要检查它们的大小写是否正确。

检查您用于连接数据库的用户名是否对您尝试使用的表/视图具有权限。当您没有正确的权限时,Oracle 通常会说该表不存在。

于 2012-08-06T15:44:49.860 回答
0

您确定您正在登录正确的架构吗?

于 2012-08-06T16:00:05.187 回答
0

您应该检查 CIS_TRANS 表是否具有适当的公共同义词,例如:

create or replace public synonym CIS_TRANS for some_user.CIS_TRANS

其中 some_user 是创建 CIS_TRANS 对象的用户。

于 2012-08-06T19:03:01.573 回答