如何從文字檔案讀入 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- VBA建立文字檔案、讀寫文字檔案
- SQLSERVER匯出TXT文字檔案,ORACLE SQL LOADER匯入TXT文字檔案SQLServerOracle
- 【MATLAB】讀取和寫入文字檔案Matlab
- 檔案排版(文字檔案讀寫)
- 2.6.1.2 平文字初始化引數檔案格式
- C#讀取文字檔案和寫文字檔案C#
- 從控制檔案自動備份還原引數檔案
- 【Java】讀寫文字檔案Java
- 如何自定義 CI/CD 配置檔案中的輸入引數?
- 引數檔案
- 引數檔案/口令檔案
- Oracle引數檔案解析——引數檔案分析獲取Oracle
- Sql server:從XML檔案中讀取配置資訊SQLServerXML
- Matlab檔案IO--文字與數值的讀Matlab
- bash shell 讀取引數檔案常見方法
- Oracle:從SQL檔案批量匯入資料OracleSQL
- pandas讀 .sql檔案SQL
- python 讀取文字檔案Python
- 如何在PL/SQL中讀寫檔案(轉)SQL
- Oracle引數檔案解析——引數解析Oracle
- vfp匯入文字檔案
- oracle 載入文字檔案Oracle
- Oracle 引數檔案Oracle
- SAP引數檔案
- 工具類,關於手工讀取 properties檔案引數
- 如何用Python從PDF檔案中提取文字詞彙Python
- 讀書筆記:深入解析oracle-第3章 引數及引數檔案筆記Oracle
- 11g從記憶體建立引數檔案記憶體
- Oracle引數檔案 各引數解釋Oracle
- 如何使用Python讀取文字檔案並回答問題?Python
- Navicat如何匯入和匯出sql檔案SQL
- 如何讀取和寫入JSON檔案JSON
- 文字檔案輸入步驟
- 引數檔案恢復
- oracle的引數檔案Oracle
- Oracle 引數檔案(轉)Oracle
- Mysql匯入大表檔案時注意修改引數MySql
- VB讀取文字檔案的例子:逐行讀取