Oracle中,實現借助建立外部表對表進行資料插入

2021-09-25 05:51:30 字數 1966 閱讀 5770

以向成績表中匯入外部表資料為例,資料為.csv檔案資料,使用sqlplus匯入。 首先確保db_grade表(內部表)已建立

- 建立external_grade目錄物件

create or replace directory external_grade as 『f:\ext_file』;

f:\ext_file這是我們要訪問的資料檔案db_grade所在的目錄

若報錯,出現許可權不足,則返回到內部表所在使用者下,授權。

select distinct privilege from dba_sys_privs where privilege like 『%directory%』;即可檢視許可權授予。

drop any directory 是刪除目錄的,create any directory 是建立目錄的

現在就來授予staffuser使用者建立目錄的許可權(可以順便把刪除目錄的也給了):

grant drop any directory to staffuser;

grant create any directory to staffuser;

- 建立外部表ext_grade

create table ext_grade (

register_no varchar2(20),

course_no varchar2(10),

work_id varchar2(10),

final_grade varchar2(5),

college_no varchar2(10)

–registered_date varchar2(20),

–registered_year number(4),

–registered_term number(1),

–makeup_flag char(2)

) organization external (

type oracle_loader

default directory external_grade

access parameters (

fields terminated by 『,』

missing field values are null)

location(『db_grade.csv』)

) reject limit unlimited;

**注意:需參考結合外部表的列名與內部表的屬性進行建立,外部表不可以有外來鍵約束。

在將源資料檔案中的資料型別轉換為表定義的列資料型別的時候,有時候會出現錯誤,例如指定的分隔符不符合要求,因此在建立外部表時,可以指定一些子句來對外部表進行處理,如reject limit,badfile(或 nobadfile),logfile(或nologfile)等

select work_id from ext_grade where work_id not in(select work_id from db_teacher);

select college_no from ext_grade where college_no not in(select college_no from db_college);

**注意:如果資料型別轉換失敗,原始檔資料還是無法被讀取到外部表的相應列中,因此要注意設定資料型別和資料長度,如日期的型別一般為date型別,但是oracle對插入date型別的資料格式有嚴格要求具體參照,無法直接插進去的,因此在建立外部表是我修改了date資料型別

- 將外部表資料匯入到內部表中

insert into db_grade

(register_no,course_no,work_id,final_grade,college_no)

select register_no,trim(course_no),work_id,final_grade,college_no from ext_grade ;

SparkSQL中建立外部表及使用

工作中經常會需要與外圍系統打交道,由於外圍系統和本系統不處於同乙個hadoop集群下,且不具有訪問本系統的許可權,所以基本上大資料量的介面都是以檔案的方式進行傳輸。如何快速 便捷的將檔案入spark庫中?通過sparksql中建立外部表的方式就能夠很好地解決這一需求。注意到,如果要建立多級目錄時,需...

如何 在 SharePoint 中建立外部列表

在建立外部內容型別後建立外部列表是一項非常簡單的任務,有如下4種方式進行 1 可使用 microsoft sharepoint designer 2010 啟動 microsoft sharepoint designer,然後開啟包含外部內容型別的 sdk 示例 sharepoint 單擊左導航欄上...

Oracle資料庫有關外部表建立

oracle資料庫有關外部表建立 1 建立3個目錄,分別用於存放資料原始檔 日誌檔案與壞記錄檔案 create or replace directory datadir as d oracle data create or replace directory logdir as d oracle l...