alter table yq_report rename column  uid to USERID;怎么修改不了了啊  
   uid是关键字  无法插入数据所以要修改  
       可是修改不了了  
           求  求  求  求  求  求  求  求  求  求 高手!!!!!!!!!!!!!!!

解决方案 »

  1.   

    报的异常是:ORA 00904::标识符无效
      

  2.   

    uid是oracle的一个关键字,不要用作列名。
    关键是你的表是怎么创建的?用这个试一下吧
    alter table ttk rename column "uid" to userid;
      

  3.   

    alter table yq_report rename column "uid" to USERID;
      

  4.   

    -- 先查看一下这个表有哪些列名(最好把操作结果贴出来看看):
    select column_name
    from user_tab_columns
    where table_name=upper('yq_report');-- 或者直接 desc :
    desc yq_report;-- 操作类似如下:
    groups@SZTYORA> select column_name
      2  from user_tab_columns
      3  where table_name=upper('t1');COLUMN_NAME
    ------------------------------------------------------------
    ID
    MOBILENUMBER
    CONTENT
    TYPE
    CREATIONDATE
    DYMICSTATUS
    CREATEMOBILENUMBER
    GROUPID已选择8行。groups@SZTYORA> desc t1;
     名称                                                                                      是否为空? 类型
     ----------------------------------------------------------------------------------------- -------- ---------------------------------
     ID                                                                                                 NUMBER(38)
     MOBILENUMBER                                                                                       VARCHAR2(20)
     CONTENT                                                                                            VARCHAR2(200)
     TYPE                                                                                               NUMBER(2)
     CREATIONDATE                                                                                       TIMESTAMP(6)
     DYMICSTATUS                                                                                        NUMBER(2)
     CREATEMOBILENUMBER                                                                                 VARCHAR2(20)
     GROUPID                                                                                            NUMBER(38)
      

  5.   


    -- 且uid是Oracle的保留关键字,不能用作字段名!
    -- 例如:groups@SZTYORA> create table ttt(uid number(18,0), uname varchar2(20));
    create table ttt(uid number(18,0), uname varchar2(20))
                     *
    第 1 行出现错误:
    ORA-00904: : 标识符无效
    groups@SZTYORA> create table ttt(id number(18,0), uname varchar2(20));表已创建。
      

  6.   

    我的是从mysql 迁移到oracle的  
          你说的方法还是不可以  
                还是报一样异常
      

  7.   

    --查询一下uid列的名称大小写
    select t.COLUMN_NAME from user_tab_columns t where t.TABLE_NAME=upper('yq_report');--下面的uid大小写与上面查询出来要一致,否则找不到该列
    alter table yq_report rename column "uid" to USERID;