我有一个表,其中包含如下所示的数据:
id oe
-- ---------------------------------------------------
1 04715SNAA90,04715SNAA90ZZ,71501SNAA00,71501SNAA00ZZ
2 64526915083,64526953474
3 04715SNAA90,04715SNAA90ZZ,71501SNAA00,71501SNAA00ZZ
4 F4DH8C607AA,F4DHAA
5 F4DH8C607AA,F4DHAA
6 04715SNAA90,04715SNAA90ZZ,71501SNAA00,71501SNAA00ZZ
7 64526915083,64526953474
8 F4DH8C607AA,F4DHAA
9 F3DH19860AA,F3DHAA,F4DH19860AA,F4DHAA
10 F3DH19860AA,F3DHAA,F4DH19860AA,F4DHAA
11 04715SNAA90,04715SNAA90ZZ,71501SNAA00,71501SNAA00ZZ
12 64526915083,64526953474
13 F3DH19860AA,F3DHAA,F4DH19860AA,F4DHAA
14 F4DH8C607AA,F4DHAA
15 F3DH19860AA,F3DHAA,F4DH19860AA,F4DHAA
Run Code Online (Sandbox Code Playgroud)
如何编写查询,在其中传递值数组并返回该列包含数组中任何值的行?
这是有效的,因为我从查找表中获得了另一个值,而我宁愿不这样做,因为表中的hol
列上没有索引pubnet
。
[请不要建议添加一个,因为我无法修改数据库]
SELECT * FROM pubnet
where hol in (select hol from id2hol where id in ('F3DH19860AA', 'F4DHAA'))
Run Code Online (Sandbox Code Playgroud)
这将是结果集:
id oe
-- ---------------------------------------------------
4 F4DH8C607AA,F4DHAA
5 F4DH8C607AA,F4DHAA
8 F4DH8C607AA,F4DHAA
9 F3DH19860AA,F3DHAA,F4DH19860AA,F4DHAA
10 F3DH19860AA,F3DHAA,F4DH19860AA,F4DHAA
13 F3DH19860AA,F3DHAA,F4DH19860AA,F4DHAA
14 F4DH8C607AA,F4DHAA
15 F3DH19860AA,F3DHAA,F4DH19860AA,F4DHAA
Run Code Online (Sandbox Code Playgroud) 我收到此错误:
[Error] PLS-00103 (23: 9): PLS-00103: Encountered the symbol "CREATE" when expecting one of the following:
begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
尝试运行此代码时。我在这里做错了什么?
我应该使用批量收集吗?如果是这样,如何?
CREATE OR REPLACE PROCEDURE P_CLEAN_LICENSEE_ARCHIVE AS
BEGIN
/*******************************************************************/
/* This is an array of IDs for licensees */
/*******************************************************************/
array_l := l_arr(1026679, 1026714, 1036991, 1026735, 1026715, 1159363, 1026703, 1169002, 1052762, 1070152, 1026684,
1026685, 1164376, 1026693, 1026733, 1026698, 1026701, 1026680, 1026708, 1026710, 1026688, 1026697, …
Run Code Online (Sandbox Code Playgroud)