2016-01-25 34 views

回答

1

Oracle XMLTYPE字段的大小限制應爲4 GB,因此加載大小爲1 MB的文件時不會遇到問題。 你必須創建Oracle目錄(在數據庫服務器上),投入到創建的目錄XML文件,然後執行您的插入如下:

[email protected]>mkdir yourdirectory 
[email protected]>chown youroracleaccount.youroraclegroup yourdirectory 
SQL> CREATE OR REPLACE DIRECTORY XMLDIR AS 'YOURDESIREDPATH' 
SQL> GRANT read, write ON DIRECTORY XMLDIR TO <DESIREDORACLESCHEMA> 
SQL> INSERT INTO YOURTABLE VALUES (...., XMLType(bfilename('XMLDIR', 'yourfilename.xml') , nls_charset_id('YOURCHARSETID'))); 
SQL> commit; 

如果你想要把你的XML中的變量,你要創建一個外部表,例如如下(但你neeed你可以調整這個樣品):

CREATE TABLE YOURXMLTABLE (doc CLOB) 
ORGANIZATION EXTERNAL 
(
TYPE ORACLE_LOADER 
DEFAULT DIRECTORY xmlfile_dir 
ACCESS PARAMETERS 
(
FIELDS (lobfn CHAR TERMINATED BY ',') 
COLUMN TRANSFORMS (doc FROM lobfile (lobfn)) 
) 
LOCATION ('yourfilename.xml') 
) 
REJECT LIMIT UNLIMITED; 

,然後執行

select * into XMLTYPVARIABLE from XMLTABLE 

方面s Giova

+0

我試圖執行您在pl/sql developer中創建表時提供​​的代碼 - 它有一些語法錯誤。 – user149691

+1

該目錄必須位於數據庫服務器上,並且可由Oracle操作系統帳戶讀取/寫入。它不能在客戶機上,如果這就是OP所指的「本地文件夾」。而'XMLTABLE'是一個函數名,所以使用它作爲你的外部表的名字最好是混淆的,如果它工作的話。 –