ORA-30657: operation not supported on external organized table

來源:互聯網
上載者:User

要更新一個使用者資訊表的mail欄位時,提示ORA-30657錯誤

SQL> update class_users set email='XXXXXXXXX@qq.com' where id = 73257;
update class_users set email='XXXXXXXXX@qq.com' where id = 73257
       *
ERROR at line 1:
ORA-30657: operation not supported on external organized table


此錯誤是因為class_users表是一個外部表格,不能直接update更新,可以直接更新引用的文字檔裡的內容

SQL> select object_name,object_type from user_objects where object_name='CLASS_USERS';

OBJECT_NAME                         OBJECT_TYPE
----------------------------------- -------------------
CLASS_USERS                         TABLE

SQL> select * from tab where tname='CLASS_USERS';
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
CLASS_USERS                    TABLE

SQL> set long 9999999   
SQL> select dbms_metadata.get_ddl('TABLE','CLASS_USERS') from dual;     

DBMS_METADATA.GET_DDL('TABLE','CLASS_USERS')
--------------------------------------------------------------------------------

  CREATE TABLE "NEWCOURSE"."CLASS_USERS"
   (    "ID" NUMBER(10,0),
        "USER_NAME" VARCHAR2(150),
        "PASSWD" VARCHAR2(32),
        "CHANNEL" VARCHAR2(50),
        "PROPERTIES" NUMBER(19,0),
        "EMAIL" VARCHAR2(250),
        "MOBILE" VARCHAR2(20),
        "EMAIL_VERIFIED" NUMBER(1,0),
        "MOBILE_VERIFIED" NUMBER(1,0),
        "ROLE" NUMBER(1,0)
   )
   ORGANIZATION EXTERNAL
    ( TYPE ORACLE_LOADER
      DEFAULT DIRECTORY "DPDIR"
      ACCESS PARAMETERS
      ( records delimited by newline
          fields terminated by ','
           )
      LOCATION
       ( 'class_users.info'
       )
    )
   REJECT LIMIT UNLIMITED

SQL> select directory_path from dba_directories where directory_name='DPDIR';

DIRECTORY_PATH
------------------------------------------------------------------------------------------------------------------------
/tol/backup/dmp

QL> col email for a35
SQL> select id,email from class_users where id = 73257;

        ID EMAIL
---------- -----------------------------------
     73257


SQL> desc class_users;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(10)
 USER_NAME                                          VARCHAR2(150)
 PASSWD                                             VARCHAR2(32)
 CHANNEL                                            VARCHAR2(50)
 PROPERTIES                                         NUMBER(19)
 EMAIL                                              VARCHAR2(250)
 MOBILE                                             VARCHAR2(20)
 EMAIL_VERIFIED                                     NUMBER(1)
 MOBILE_VERIFIED                                    NUMBER(1)
 ROLE                                               NUMBER(1)
 

+++編輯/tol/backup/dmp 目錄下的class_users.info檔案,尋找到id=73257的記錄,改為:
73257,amosquito6,63c4d05e73b829727c1ff47bd4388d00,class,0,345305538@qq.com,,0,0,0

+++重新查詢:
SQL> select id,email from class_users where id = 73257;

        ID EMAIL
---------- -----------------------------------
     73257 345305538@qq.com


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.