如何從文字檔案讀入 SQL 引數
有時我們希望把引數列表分行儲存在文字檔案裡,執行SQL時再拼到in函式里,從而查詢出符合條件的記錄。
但SQL不能解析文字檔案,直接拼到in函式里有困難,所以很多人先把檔案匯入資料庫臨時表,再用join語句做關聯,從而間接實現in函式的功能。但這樣一來每當檔案變化的時候,都要手工做一遍刪表導庫的動作,過程還是挺麻煩的。
一勞永逸的做法是用Python、C#等程式語言開發程式,但這類語言技術門檻很高,想學會有點兒難,雖然理論上啥功能都能實現。
如果用esProc,實現這個演算法就簡單多了,只需短短几行程式碼:
|
A | B |
1 | =file("params.txt").import@i() | /開啟文字檔案,按行取引數列表 |
2 | =orcl.query("select * from T where P in(?)",A2) | /執行SQL,A2是in函式的引數值 |
引數列表過長的時候就不能用上面的方法了,因為in函式對成員數量有限制,比如Oracle規定不能超過1000個。遇到這種情況也別擔心,esProc支援庫外通用查詢,且支援長引數列表,程式碼只需這樣寫:
|
A | B |
1 | =file("params.txt").import@i().sort(~) | /讀取長引數列表並排序 |
2 | =orcl.cursor("select * from T") | /從庫表取出資料 |
3 | =A3.select(A1.contain@b(P)) | /查詢符合引數列表的記錄 |
esProc是個指令碼語言,可以在桌面IDE裡執行並除錯,可以連線任意資料庫並執行SQL。對於SQL難以實現的功能,esProc通常都有辦法簡化。
這裡有最佳化 SQL 的彙總
這裡是常用的 esProc 演算法
esProc 提供了敏捷的語法體系和豐富的結構化類庫,可通用地解決 SQL 難題,詳情參考
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2697964/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLSERVER匯出TXT文字檔案,ORACLE SQL LOADER匯入TXT文字檔案SQLServerOracle
- VBA建立文字檔案、讀寫文字檔案
- 檔案排版(文字檔案讀寫)
- 2.6.1.2 平文字初始化引數檔案格式
- C#讀取文字檔案和寫文字檔案C#
- pandas讀 .sql檔案SQL
- python 讀取文字檔案Python
- 如何在PL/SQL中讀寫檔案(轉)SQL
- 如何自定義 CI/CD 配置檔案中的輸入引數?
- Navicat如何匯入和匯出sql檔案SQL
- 如何使用Python讀取文字檔案並回答問題?Python
- 如何讀取和寫入JSON檔案JSON
- 工具類,關於手工讀取 properties檔案引數
- Spingboot 讀取 yml 配置檔案裡的引數值boot
- 如何用Python從PDF檔案中提取文字詞彙Python
- navicat匯入sql檔案SQL
- CSV Data Set Config 引數化怎麼從多個檔案中讀取資料?
- .sql檔案匯入到sql server中SQLServer
- 從cmd中匯入.SQL檔案並建立資料庫SQL資料庫
- python如何將資料寫入本地txt文字檔案Python
- Oracle RAC引數檔案管理Oracle
- QT從入門到入土(三)——檔案的讀寫操作QT
- pg從磁碟讀取檔案
- SQL隱碼攻擊讀寫檔案SQL
- 向mysql中匯入.sql檔案MySql
- 讀取檔案流並寫入檔案流
- jmeter 引數化 csv外掛的讀取檔案 bin目錄JMeter
- 用 ABAP 讀取本地文字檔案內容試讀版
- 直播系統原始碼,讀取多行文字、讀取檔案分割多行文字原始碼
- Nginx 配置檔案引數詳解Nginx
- Oracle RAC修改引數檔案位置Oracle
- MySQL引數檔案沒有生效MySql
- input檔案選擇框檔案過濾引數accept
- 載入常量-從檔案中載入
- 匯入sql檔案出現亂碼SQL
- java 統計大文字檔案的行數Java
- 2.6.1.1 初始化引數檔案示例
- 【XTTS】xtt.properties 檔案引數描述TTS