91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解SQL*Loader工具

發布時間:2021-11-08 15:49:52 來源:億速云 閱讀:165 作者:柒染 欄目:建站服務器

如何理解SQL*Loader工具,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。


        SQL*Loader工具是Oracle非常強大的外部數據加載工具。小編將簡單討論一下SQL*Loader工具的結構,配置以及突出特性。

下面是一張SQL*Loader工具的結構圖:

如何理解SQL*Loader工具


          上圖中描述了SQL*Loader工作使用的物理文件,包括輸入的文本文件,輸出的數據庫;SQL*Loader工具工作需要至少一個控制文件,控制文件中包含了數據加載的描述性信息,SQL*Loader根據控制文件中的描述來加載、轉換數據,寫入數據庫。控制文件中除了包含數據加載的描述性信息外,還可以包含參數信息和加載的數據。參數信息包括,直接路徑加載參數等,可以通過sqlldr工具的parfile參數指定單獨的配置文件,這里需要注意的是,在sqlldr命令行指定的參數將覆蓋在控制文件中指定的參數。單獨的數據文件是通過控制文件中的INFILE屬性指定的。

        SQL*Loader工具運行后會產生3個文件,一個是日志文件,日志文件中詳細記錄了數據的加載情況和加載結果,并會另外指定兩個文件Bad FIles和Discard Files,Bad Files保存的是加載導致SQL錯誤(也就是說,輸入數據是“壞的”)的數據,Discard Files保存的是加載過程拋棄的數據。加載完畢對這些文件的驗證能夠了解加載情況,判斷加載是否成功。

        SQL*Loader支持傳統路徑和直接路徑加載,傳統路徑加載SQL*Loader工具會將數據轉換成SQL語句執行,會產生相應的undo和redo數據,直接路徑加載是直接操作數據塊,不會產生相應的undo和redo數據,特別適合大數據量的加載工作。

        通過上面的討論可以了解到SQL*Loader工具最核心的是控制文件,控制文件中最核心的配置是對加載數據的定義。下面通過一個簡單的例子討論控制文件中的配置:

/***************************************/


Load DATA
#表示加載數據。


INFILE 'C:\sqlldr\olap.date_time_15_min.txt'
#INFILE指定數據文件,如果是INFILE *,表示加載的數據保存在控制文件中。


INTO TABLE test.date_time_15_min
#數據加載到的具體表名。


APPEND|REPLACE|TRUNCATE
#如果沒有這行,默認是INSERT操作,要求表必須為空,TRUNCATE操作非傳統意義上的TRUNCATE TABLE DATE_TIME_15_MIN,而是執行TRUNCATE TABLE DATE_TIME_15_MIN REUSE STORAGE操作,這點需要注意。


FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
#數據的存儲是以,符號作為分割,"符號引起來的表示字符串,這是定界加載,這是最傳統的方式,另外還可以定長加載,這里我們不討論。


TRAILING NULLCOLS
#如果輸入的數據不存在某列的數據,SQLLOADER就會為該列綁定一個NULL值。


(APPLIEDTIME "to_date(:appliedtime,'yyyy-mm-dd hh34:mi:ss')",
#以(符號開始表示表的字段,由于是日期字段,所以需要使用函數進行轉換,函數必須用雙引號引起來,:appliedtime是跟前面的APPLIEDTIME相對應。

applieddate "to_date(:applieddate,'yyyy-mm-dd hh34:mi:ss')",

psvcode,
#如果字段沒有指定存儲類型,默認為CHAR(255),超過長度會收到Fileld in data file exceeds maximum length的報錯,只需要根據長度指定類型,例如,CHAR(1000)。

hzpsvcode,

pointindex,

appliedhour "to_date(:appliedhour,'yyyy-mm-dd hh34:mi:ss')"

)
BEGINDATA
#下面是加載的數據,對應上面的INFILE *設置。

........


/***************************************/


        控制文件除了定義數據加載方式外,還可以保存SQLLOADER參數和加載的數據。

        另外,從Oracle 9i開始,Oracle推出了外部表的功能,外部表是另一種快速加載數據的方式,沿用了SQL*Loader的參數,用于替代SQL*Loader工具,它比SQL*Loader工具有更好的靈活性,能夠更靈活的處理、篩選數據(SQL語句方面),調度數據的加載,學習的知識也相對更少。

        從Oracle Database 10g開始,Oracle推出外部表卸載功能ORACLE_DATAPUMP能夠非常方便的將數據卸載到平面文件,通過平面文件的傳遞可以快速加載到其他數據庫。Oracle沒有提供專門工具用于將數據庫的數據卸載到平面文件中,可以用SQL語句、外部表卸載功能、PL/SQL等等方式完成數據的卸載。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒲城县| 集贤县| 舟曲县| 长春市| 金川县| 柳江县| 武宁县| 中阳县| 大悟县| 彩票| 信阳市| 时尚| 庐江县| 富民县| 嘉峪关市| 平顶山市| 壤塘县| 吉木乃县| 稷山县| 建瓯市| 武汉市| 崇左市| 延川县| 兴业县| 甘谷县| 原阳县| 宁海县| 兴隆县| 夏河县| 武陟县| 无极县| 瓮安县| 永嘉县| 久治县| 金堂县| 唐海县| 商城县| 德令哈市| 剑阁县| 朝阳区| 靖江市|