ORA-01795解決方法
a in ('1', '2', '3')
動態拼接的sql中,in的資料超過1000報錯。
解決方法:
1.改寫為a in ('1', '2') or a in ('3')
的形式
參考程式碼
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(installLongInSql("aa", new ArrayList(Arrays.asList("1", "2", "3", "11", "2", "2", "2", "1"))));
}
public static String installLongInSql(String col, List<String> inList){
if(inList == null || inList.size() == 0 || col == null || col.length() == 0)
return "";
StringBuffer sb = new StringBuffer(" " + col + " in (");
int len = 5;
int i = 0;
for(; i < inList.size(); i++){
if(i % len == 0 && i != 0)
sb.append(" or " + col + " in (");
sb.append("'" + inList.get(i) + "',");
if(i % len == len - 1)
sb.deleteCharAt(sb.length() - 1).append(")");
}
if(i % len != len - 1)
sb.deleteCharAt(sb.length() - 1).append(")");
return sb.toString();
}
2.在條件允許的情況下,建立臨時表
拼接結果示例
create table temp_1800601001 as
select '1' a from dual union all
select '1' a from dual union all
select '1' a from dual union all
select '1' a from dual
之後用臨時表做表關聯。
3.對整條語句進行拆分。
不看好,不建議。
select還能湊合。insert,update,delete可能會有業務邏輯,資料庫事務,甚至死鎖的問題。create直接沒法做。
結論:建議用1.
相關文章
- [20180926]神奇的規避ORA-01795方法.txt
- EXE病毒解決方法
- No Task Available解決方法AI
- TabError的解決方法Error
- SERVICE問題解決方法
- hash衝突解決方法
- Method ReflectionParameter::getClass() 解決方法
- dns劫持怎麼解決 dns劫持的解決方法DNS
- javaweb中中文亂碼解決方法總結之response和request解決方法JavaWeb
- linux inode已滿解決方法Linux
- As常見問題解決方法
- css命名衝突解決方法CSS
- brew install gcc 卡住解決方法GC
- java.net.UnknownHostException 解決方法JavaException
- ImportError: No module named ‘torch‘ 解決方法ImportError
- 解決問題通用方法論
- hive使用報錯解決方法Hive
- bash: lspci: command not found解決方法
- CPU挖礦病毒解決方法
- PbootCMS 404 錯誤解決方法boot
- linux 故障解決方法彙總Linux
- 遇到問題的解決方法
- 介面返回[object,Object]解決方法Object
- JAVA IPMI Command time out 解決方法Java
- undefined reference to錯誤的解決方法Undefined
- javax.mail.MessagingException:[EOF] 解決方法JavaAIException
- Failed to execute aapt的奇怪解決方法AIAPT
- Ubuntu:make: Nothing to be done for `all' 解決方法Ubuntu
- 解決Vue中”This dependency was not found”的方法Vue
- pyhanlp下載失敗解決方法HanLP
- tomcat拒絕連線解決方法Tomcat
- Linux——ssh登入很慢解決方法Linux
- Qt TcpSocket的掉線解決方法QTTCP
- but no encoding declared;問題的解決方法Encoding
- css高度塌陷問題解決方法CSS
- ORACLE ORA-1652的解決方法Oracle
- 金沙不給提款的解決方法
- no input file specified 三種解決方法