"[图片] 自定义函数 String value = new String(Base64.getDecoder().decode(input), “utf-8”); input 如果为单个字符串 .."
自定义函数
String value = new String(Base64.getDecoder().decode(input), “utf-8”);
input 如果为单个字符串加密的值可以正常显示如果为多个字符串 逗号分隔的字符串加密就如图现在 无结果
这个自定义函数返回的是什么?字符串还是数组?要看自定义函数里的返回。可以尝试下载那个动态参数值表达式那,用 split 函数拆分下,比如值表达式那改成 split(decrypt(orgCode),“,”)或者在数据集那个参数表达式那,改成 split(orgCode2,“,”)这样试下,保证传入到 sql 内的参数是个数组形式
自定义函数返回’3190’,‘3128’,‘3103’,‘3102’,‘3113’,‘3101’,‘3100’,‘3133’,‘3131’按你说的 split 了 还是不行
返回的是一个字符串
把单引号去掉,然后 split 试下
2 种方法:1、向 sql 传递参数:sql 中条件写成 orgcode in (?),注意是一个问号,几个问号表示要给 sql 传递几个参数,这里因为是 in,所以要传递进来的是一个数组,所以 orgCode2 需要 split 成数组,此时 orgcode 中不需要对每个成员加引号2、sql 中进行宏替换,sql 中条件写成 orgcode in (${orgCode2}), 此时 orgCode2 传递进来的是一个串,如 "‘1001’,‘1002’", 计算数据集时 sql 会先替换成 orgcode in (‘1001’,‘1002’) 再执行
这个自定义函数返回的是什么?字符串还是数组?要看自定义函数里的返回。
可以尝试下载那个动态参数值表达式那,用 split 函数拆分下,比如值表达式那改成 split(decrypt(orgCode),“,”)
或者在数据集那个参数表达式那,改成 split(orgCode2,“,”)
这样试下,保证传入到 sql 内的参数是个数组形式
自定义函数返回’3190’,‘3128’,‘3103’,‘3102’,‘3113’,‘3101’,‘3100’,‘3133’,‘3131’
按你说的 split 了 还是不行
返回的是一个字符串
把单引号去掉,然后 split 试下
2 种方法:
1、向 sql 传递参数:sql 中条件写成 orgcode in (?),注意是一个问号,几个问号表示要给 sql 传递几个参数,这里因为是 in,所以要传递进来的是一个数组,所以 orgCode2 需要 split 成数组,此时 orgcode 中不需要对每个成员加引号
2、sql 中进行宏替换,sql 中条件写成 orgcode in (${orgCode2}), 此时 orgCode2 传递进来的是一个串,如 "‘1001’,‘1002’", 计算数据集时 sql 会先替换成 orgcode in (‘1001’,‘1002’) 再执行