问题描述如题:
    我的测试程序是这样写的:string strConnectionString = "data source=ORCL;User ID=michael;Password=admin;";
            OracleConnection con = new OracleConnection(strConnectionString);
            OracleCommand com = new OracleCommand();
            com.Connection = con;
            com.CommandText = "select * from a";
            con.Open();
            OracleDataReader dr = com.ExecuteReader();
            if (dr.Read())
                Response.Write("read:"+dr[0].ToString());    补充:user id=michael;password=admin 或者user id=system;password=admin
           我在pl/sql和sql*plus里面都试过可以的,即有权限访问这个表a;
          请问下大家,因为对oracle不太熟,纯属刚学,是不是我安装oracle的时候少安装了什么或者有什么特别的配置需要配置吗?

解决方案 »

  1.   

    Data Source=TORCL;User Id=myUsername;Password=myPassword;
      

  2.   

    data source=ORCL
      

  3.   

    表不存在,用户名是否有操作权限
    string constring = "Data Source=oracle;User Id=sys;Password=123;DBA Privilege=SYSDBA;"
      

  4.   

    我在pl/sql和sql*plus 里面可以查询,即用的是同样的语句;
      

  5.   

    OracleConnection con = new OracleConnection(@"data source=ORCL;User ID=michael;Password=admin");
      

  6.   

    你这个和我这个有区别吗,只不过大小写不一样罢了;
    错误信息:
    “/”应用程序中的服务器错误。
    --------------------------------------------------------------------------------ORA-00942: table or view does not exist说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OracleClient.OracleException: ORA-00942: table or view does not exist
    源错误: 
    行 41:             com.CommandText = "select * from a";
    行 42:             con.Open();
    行 43:             OracleDataReader dr = com.ExecuteReader();
    行 44:             if (dr.Read())
    行 45:                 Response.Write("read:"+dr[0].ToString());
     
      

  7.   

    错误:
    不支持关键字: “dba privilege”。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentException: 不支持关键字: “dba privilege”。
      

  8.   

    问题似乎找到了,请看:
    这是我登陆sql*plus时的情况SQL> conn system/admin
    Connected.
    SQL> select * from a;
    select * from a
                  *
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SQL> select * from a;
    select * from a
                  *
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SQL> conn system/admin as sysdba
    Connected.
    SQL> select * from a;no rows selected
    SQL> conn system/admin as sysdba  这句没有增加"as sysdba"就没权限访问表a; 这是为什么?
      

  9.   

    试试  用户名(or 架构).表名  就好像sql server 的  dbo.表名sysdba 会不会是表的拥有者(or 架构)对oracle不是很熟
    http://www.mybuffet.cn
      

  10.   

     as sysdba 是系统管理员的意思
      

  11.   

    code=SQL]show user[/code]
    所有的以DBA身份登陆的用户,即as sysdba的.用户统一是sys
    只有一般用户登陆的时候show user才显示对应的用户名称
    select * from sys.a
      

  12.   

    string strConnectionString = "data source=ORCL;User ID=michael;Password=admin;";
    感觉这样只是指定了数据库实例,连上后可能缺省的数据库是系统数据库(在sql server里是master,oracle里应该类似)。
    比如你的表a在数据库mydb里,那么用:
    select * from mydb.a,应该可以
      

  13.   

    table or view does not exist 都告诉你了,没有这个a表或视图。下面的你自己查询的结果,也告诉你了。
    SQL> select * from a;
    select * from a
                  *
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SQL> select * from a;
    select * from a
                  *
    ERROR at line 1:
    ORA-00942: table or view does not exist
    如果你的a表的确是存在的,那么到检查以下a的DBA权限是否已经给michael。