2013-04-30 75 views
1

我允許用戶通過OHS/mod_plsql上載.csv文件。該文件被保存爲數據庫中的BLOB文件,然後轉換爲CLOB。然後我想獲取這個CLOB文件的內容並將其內容保存到一個表中。我已經有了一些工作代碼,它們根據行尾分割文件,然後將每個結果字符串按逗號分割並插入記錄。用於從CLOB處理CSV的Oracle PL/SQL程序包/過程

我需要的是一種處理CSV中的字符串用雙引號引起幷包含逗號的情況的方法。例如:

 
col1,col2,col3,col4 
some,text,more,text 
this,text,has,"commas, semicolons, and periods" 

我的代碼將知道如何處理第二行,但不是第三行。有沒有人有一些足夠聰明的代碼可以將「逗號,分號和句號」當作單個標記來處理?我可能會一起攻擊一些東西,但我不相信我的正規表達能力,而且我認爲其他人可能已經寫了一些能做同樣事情的東西,而且願意分享。

+0

將代碼解析雙引號分隔字符串還需要處理轉義雙引號是單元格內容的一部分?我想知道是否用UTL_FILE將文件寫入磁盤比較容易,將它作爲外部表加載,然後刪除文件。似乎很古怪使用這樣的文件系統。 – 2013-04-30 16:42:03

+0

快速搜索[this](https://slobaexpert.wordpress.com/2012/08/22/loading-csv-files-into-oracle-tables-using-plsql/),這可能會給你一些想法。 – 2013-04-30 16:44:31

+0

我可以使用這個例子。對於我們將要收到的CSV格式,我還沒有積極的態度,但是我只需要規定,除了分隔字符串時使用的文件外,它們的文件中不能有雙引號。 – Tom 2013-04-30 18:12:13

回答