Oralce 有限制 Like 不能超過 1000 多筆。之前有寫過相關文章如下
- 寫程式使用 split 切割不會注意到的陷阱 | 程式狂想筆記
- Oracle WHERE IN 條件塞入超過 500 筆查詢條件方法 | 程式狂想筆記
但這些虛要手動處理太多,不能一次喝成,有時候資料量真的太大,只能分開查。最近想到 Sublime Text 方法,簡單做個記錄。
還是需要滿多步驟
DEMO 範例
1
2
3
4
|
'這是第 1 行',
'這是第 2 行',
'這是第 3 行',
'這是第 4 行',
|
注意:上面有五行,因為 regex 需要多一行。
例外處理
假如框選最後一行,只框選一行。就要多做一個換行
如下:
產生方法
- 在 Sublime 使用 regex
((.*\n){1,3})
- 選擇 Find all 按鈕
- 按 「Shift + 方向鍵左(←)」 後,再按「Shift + 方向鍵左(↑)」
-
Ctrl + J ,按完就完成兩段句子,最後一行可刪掉
-
複製兩段 LIKE SQL 語句,中間替代參數也要先設定
- 全部框選
:id:
Ctrl + D,把1,2行複製起來,貼上即可完成
- 把最後
,
移除
就可以快樂貼到編輯器查詢。
缺點
真的行數到超多筆的話,這個方法應該也沒辦法。
其實這個可以用程式寫,有空寫在補在這。
CodeSandbox
沒有認真寫
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
<template>
<div class="hello">
<textarea v-model.lazy="item" cols="30" rows="10"></textarea>
<textarea v-model.lazy="sql" id="" cols="30" rows="10"></textarea>
</div>
<div>
<textarea v-model="result" cols="30" rows="10" readonly></textarea>
</div>
</template>
<script>
import * as a from "lodash";
export default {
name: "HelloWorld",
data() {
return {
item: "",
sql: "",
};
},
method: {
getDataDebounced() {},
},
created() {
this.getDataDebounced = a.debounce(() => {
let items = a.chunk(
this.item.split("\n").filter((str) => str !== ""),
1000
);
console.log(items);
items = items.map((a) => {
a = a.map((str) => "'" + str + "'");
return a.join(",");
});
let r = "";
items.forEach((item) => {
let aa = this.sql.replace("::id::", item);
console.log(aa);
r += aa;
r += "\n";
});
console.log(r);
this.result = r;
console.log(this.result);
}, 1000);
},
computed: {
result() {
let items = a.chunk(
this.item.split("\n").filter((str) => str !== ""),
1000
);
console.log(items);
items = items.map((a) => {
a = a.map((str) => "'" + str + "'");
return a.join(",");
});
let r = "";
items.forEach((item) => {
let aa = this.sql.replace("::id::", item);
console.log(aa);
r += aa;
r += "\n";
});
return r;
},
},
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
margin: 40px 0 0;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>
|