Oracle數據庫查詢用 where in 查詢的項超過1000條的解決方案

眾所周知,如果我們的用SQL查詢語句時,如果用where in帶的參數超過1000條的話,oracle是會報錯的。

因為項目中遇到這樣的問題,所以找到了接下來我要說的這個辦法。 因為用的地方很多,所以我把這個封裝成了一個方法。

?

        /// <summary>/// 獲取查詢條件超過1000個列表數據的SQL/// columnName In :list/// </summary>/// <param name="list">參數列表</param>/// <param name="columnName">字段名稱</param>/// <param name="arguments">帶出的參數</param>/// <returns>sql</returns>private string GetWhereIn(List<string> list, string columnName, out Dictionary<string, object> arguments){arguments = new Dictionary<string, object>();if (list == null || list.Count == 0) return string.Empty;var pageSizes = 1000;// 計算參數分頁頁數var totalPages = list.Count % pageSizes == 0 ?list.Count % pageSizes :list.Count % pageSizes + 1;var sqlResultContainer = new List<string>();for (var pageIndex = 0; pageIndex < totalPages; pageIndex++){var skipCount = pageIndex * pageSizes;var listGroup = list.Skip(skipCount).Take(totalPages).ToList();if (listGroup.Count == 0) continue;sqlResultContainer.Add($"{columnName} IN :p{pageIndex}");arguments.Add($"p{pageIndex}", listGroup);}var sqlResult = "(" + string.Join(" OR ", sqlResultContainer) + ")";return sqlResult;}

  只想SQL,我用的是Dapper. 所以調用這個方法后,返回的是個sql語句。用于拼接在where后面或者and后面等。 arguments是傳值出來的,需要帶如到dapper的傳參中。

?

注意的是 argumens的類型是Dictionary<string,object> 第二個一定是要object,不然的話,dapper是會報錯的。

轉載于:https://www.cnblogs.com/saving/p/9967955.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278910.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278910.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278910.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

geek_Ask How-To Geek:營救受感染的PC,安裝無膨脹iTunes和馴服瘋狂的觸控板

geekYou’ve got questions and we’ve got answers. Today we highlight how to save your computer if it’s so overrun by viruses and malware you can’t work from within Windows, install iTunes without all the bloat, and tame a hyper-sensitive trackpad. 您有問…

第1課:接口測試和jmeter總結

接口測試 1. 接口的分類&#xff1a;webService和http api接口1&#xff09; webService接口&#xff1a;是按照soap協議通過http傳輸&#xff0c;請求報文和返回報文都是xml格式&#xff0c;一般要借助工具來測試接口&#xff1b;2&#xff09; http api接口&#xff1a;是按照…

android 工作日,如何在Android上重復警報工作日

小編典典請嘗試此代碼。已在我的應用中成功運行if (chk_monday.isChecked()) {forday(2);} else if (chk_tuesday.isChecked()) {forday(3);} else if (chk_wednesday.isChecked()) {forday(4);} else if (chk_thursday.isChecked()) {forday(5);} else if (chk_friday.isCheck…

hdu4419

對于這類面積覆蓋的題&#xff0c;大致就兩點要注意的 1.同一把矩形放在笛卡爾坐標系上做 2.pushup函數要注意下細節:及在統計子區間和之前要先判斷是否有子區間 用sum數組來保存區間被覆蓋的情況&#xff0c;如果遇到多次覆蓋問題&#xff0c;那就開多個sum數組分別保存被覆蓋…

最簡單 - 單例模式

public class Person {// Person 引用private static Person p null;static {if (p null) {p new Person();}}/***單例模式獲取Person對象. * return*/public static Person getInstance(){return p;} ?} 復制代碼轉載自&#xff1a; 簡書 - 低至一折起 文章&#xff1a;w…

極客時間和極客學院_極客歷史記錄的本周:Twitter的誕生,OS X十周年以及太空停留時間最長的時代即將結束...

極客時間和極客學院Every week we bring you interesting trivia and milestones from the archives of Geekdom. Today we’re taking a peek at the birth of Twitter, ten years of Mac OS X, and the longest space stay in history. 每周&#xff0c;我們都會為您帶來有趣…

Android風格ppt,Material Design風格的快手PPT

突發奇想&#xff0c;感覺MD風格既然適合 Android 軟件的界面&#xff0c;那么在一般PPT 演示中&#xff0c;效果當也是不錯。于是在網上去尋了幾處制作貼&#xff0c;也簡單看了 MD 設計指南的幾處要點。先試試一番再說。關于 MD 設計指南和幾處制作貼&#xff0c;我會把鏈接貼…

11月16日站立會議

今天是沖刺階段的第二天&#xff0c;我今天做了統計在線人數模塊的編寫而且對其進行了測試并修改完成&#xff0c;為團隊制作了今日的燃盡圖。 明天我要完成服務器端可以斷開所有用戶連接的一個小模塊和繼續為團隊制作燃盡圖。 今天遇到的困難是用Java進行編寫時&#xff0c;出…

iOS核心動畫高級技術(十三) 高效繪圖

More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason—including blind stupidity. 不必要的效率考慮往往是性能問題的萬惡之源。 ——William Allan Wulf #軟件繪圖 術語繪圖通常在Core Anima…

dropbox鏈接過期_詢問操作方法:“開始”菜單中的Dropbox,了解符號鏈接和翻錄TV系列DVD...

dropbox鏈接過期This week we take a look at how to incorporate Dropbox into your Windows Start Menu, understanding and using symbolic links, and how to rip your TV series DVDs right to unique and high-quality episode files. 本周&#xff0c;我們來看看如何將D…

android listpreference 自定義,Android – 我的ListPreference中的自定義行布局

在我的Android應用程序中,我實現了從ListPreference擴展的類SubtitleColorListPreference.我需要這個,因為我需要為列表中的每個項目設置自己的布局.一切正常,它看起來像這樣&#xff1a;重要的代碼是onPrepareDialogBu??ilder(AlertDialog.Builder builder)中的方法,我在其中…

springMVC3學習(十一)--文件上傳CommonsMultipartFile

版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主同意不得轉載。 https://blog.csdn.net/itmyhome/article/details/27976873 使用springMVC提供的CommonsMultipartFile類進行讀取文件須要用到上傳文件的兩個jar包 commons-logging.jar、commons-io-xxx.jar1、在sp…

基于React和SpringBoot的快速開發模板QuickAdmin

經過一段時間的總結和完善&#xff0c;我的管理系統快速開發模板已經基本成型&#xff0c;現在GitHub上開源啦&#xff1a; QuickAdmin QuickAdmin是基于Spring Boot和React.js實現的管理系統開發框架。用于開發網站的后臺管理系統。 本框架提供了如下功能&#xff1a; 完整的基…

android sim iso,android – 意外的telephonyManager.getSimCountryIso()行為

您可以使用MCC MNC獲取SIM卡國家/地區,它是SIM配置的,與您所在的網絡無關.Configuration config getResources().getConfiguration();int countryCode config.mcc;您可以在此處找到MCC列表MccTable.java例如,西班牙是214,法國是208MCC should work on all GSM devices with S…

火狐 增強查找工具欄_在“提示”框中:簡單的IE至Firefox同步,輕松的Windows工具欄和識別USB電纜...

火狐 增強查找工具欄() Every week we tip into our mail bag and share great tips from your fellow readers. This week we’re looking at an easy way to sync your bookmarks between IE and Firefox, using simple Windows toolbars, and a clever way to ID USB cables…

day22 模塊-collections,time,random,pickle,shelve等

一、引入模塊的方式: 1. 認識模塊 模塊可以認為是一個py文件. 模塊實際上是我們的py文件運行后的名稱空間 導入模塊: 1. 判斷sys.modules中是否已經導入過該模塊 2. 開辟一個內存 3. 在這個內存中執行該py文件 4. 給這個內存起個名字&#xff0c; 一般用的是py文件的名字。返回…

基于Redis實現分布式鎖,避免重復執行定時任務

Spring提供了定時任務的功能&#xff0c;但是在多個實例的集群中&#xff0c;會出現定時任務重復執行多次的情況。 使用Qutaz框架自帶的分布式定時任務可以很好的解決這個問題&#xff0c;但是講道理功能有些過于強大&#xff0c;對于需求不高&#xff0c;乃至可以一定程度上允…

Input Director使用一個鍵盤和鼠標即可控制多臺Windows計算機

The problem is having two or more PC’s and having to go back and forth between workstation. Input Director solves the problem by allowing you to control multiple Windows systems with only one keyboard and mouse on the Master PC. 問題是擁有兩臺或更多臺PC…

viper4android 生效,另一種讓V4a音效在Poweramp上生效的方法

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓本人按照網上的方法進Poweramp設置—音頻—高級選項—直接音量控制—不打勾后 V4a音效沒有生效 我又把V4a音效兼容模式里的正常模式切換成為兼容模式 結果還是不行......后來我郁悶了三天三夜有一天我去了v4a官網論壇看到了admin帖…

[學習筆記]狀壓dp

狀壓 \(dp\) 1、[SDOI2009]Bill的挑戰 \(f[i][j]\) 表示匹配到字符串的第 \(i\) 位狀態為 \(j\) 的方案數 那么方程就很明顯了&#xff0c;每次枚舉第 \(i\) 位的字母 \(alpha\) 然后 \(O(n)\) 判斷就好了 時間復雜度 \(O(26Tlen2^nn)\) \(Code\ Below:\) #include <bits/st…