我用的是VS2005 + oracle9i
在scott下建了一个表test
用insert插入这个表时却显示表或视图不存在
插入emp这个表是是正常的刚开始用oracle9i,很多东西都不懂,希望各位能说清楚点,先谢过了        string connectionString = "server=myoraclelink;user id=scott;password=tiger;";
        OracleConnection dbcon = null;
        dbcon = new OracleConnection(connectionString);
        dbcon.Open();
        OracleCommand dbcmd = dbcon.CreateCommand();
        string sql="insert into emp\n "+"(EMPNO,ENAME,JOB,MGR)\n "+"values(7937,'LiHua','worker',5647)";
        dbcmd.ExecuteNonQuery();
        dbcon.Close();把命令改成这样就错了
dbcmd.CommandText = "insert into TEST\n " + "(ID,NAME)\n " + "values(1000,'LiHua')";

解决方案 »

  1.   

    估计是用户Scott没有操作Test表的权限
      

  2.   

    也许是大小写的问题。执行这个语句,看看test表是否存在,select table_name from user_tables where upper(table_name)='TEST';
      

  3.   

    insert into scott.test .....
      

  4.   

    看看你那个语句能不能在sql下执行成功
      

  5.   

    我是在Oracle Enterprise Manager Console 下建表的
    表空间用的是USERS
    在SQL*Plus 工作单 下用
    select * from scott.emp
    正常运行
    用select * from scott.test
    显示
    ERROR 位于第 1 行:
    ORA-00942: 表或视图不存在哪位能解释一下吗?
      

  6.   

    设置Scott用户的创建Test表的权限吧。
      

  7.   

    查看一下user_tables,看一下有没有test这个表。
      

  8.   

    这是明白的事情。oem是必须用dba身份才可以进入的。估计你是用sys或者system之类进入的,
    虽然你制定了表空间是users,但并不能算是scott的,除非你默认是用scott登录创建的。
    最后要知道这个表格是否是scott的很简单,用dba登录,然后查询
    select OWNER,TABLE_NAME from all_Tables where table_name='TEST'.
    如果不是scott的,且没有grant select .. to scott,自然无法查询
      

  9.   

    你是用什么用户建的表啊? 不是scott这个用户吧 
      

  10.   

    我是用sysman登陆Enterprise Manager Console
    然后用sys以SYSDBA的身份登陆数据库OEMREP
    在表SCOTT右键点创建TEST这个表
    不知道有什么错误吗?还有一个问题,为什么用SQL*Plus工作单 对 scott.emp插入一条数据后
    右键点击emp选中表数据编辑器,里面的数据还是原来那些
    难道只能通过SQL*Plus工作单中的select查看数据吗?