我已经构建了使用 2 个字段并使用 instr 来获取数据的逻辑,我需要在下面搜索精确的模式匹配。但是我也得到了不同的模式匹配输出。任何人都可以帮忙吗:
**Input** : attr_value and object_name are the field names.
属性值 | 对象名称 |
---|---|
选择“执行 test_INC.MC_INS_SO_STAT;”来自默认数据库 | test_INC.MC_INS_SO_STAT |
选择“执行test_INC.MC_INS_SO_STAT_Anom” | abc_测试 |
选择“执行 test_INC.MC_INS_SO_ST;” |
**Output** :
属性值 |
---|
选择“执行 test_INC.MC_INS_SO_STAT;”来自默认数据库 |
选择“执行test_INC.MC_INS_SO_STAT_Anom” |
**Expected Output**:
属性值 |
---|
选择“执行 test_INC.MC_INS_SO_STAT;”来自默认数据库 |
我尝试过这个逻辑: IIF (INSTR (upper(attr_value),upper(OBJECT_NAME)) > 0 ,1, 0 ) 但它也给了我不同的模式,如输出中提到的,这不符合我的预期输出。如果您可以帮助如何调整逻辑以仅获取完全匹配的记录。
这个很棘手。您使用的逻辑是正确的,但您需要查找具有可能的结束字符的属性,而不仅仅是值本身。让我试着举个例子来解释一下:
功能:
IIF (INSTR (upper(attr_value),upper(OBJECT_NAME) || CHR(39)) > 0, 1, 0 )
OR
IIF (INSTR (upper(attr_value),upper(OBJECT_NAME) || ';') > 0, 1, 0 )
换句话说,我会搜索
test_INC.MC_INS_SO_STAT'
(包括单引号)或 test_INC.MC_INS_SO_STAT;
(包括分号)。