首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从java调用KDB函数

从java调用KDB函数
EN

Stack Overflow用户
提问于 2022-06-17 09:49:01
回答 1查看 107关注 0票数 0

我有一个kdb函数,它以字典为param。需要提供筛选条件作为wClause密钥。

乐趣:{dic}

例如wClause:登记(in;sym;enlistsym1‘sym2)

因为如果我使用字符串,它将被发送为‘in’,或者如果我使用characterArray,它将是"in“。

如何在Java上构建wClasue?从java调用kdb函数的方法是什么,例如"in,like“。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-17 11:30:01

测试表+查询。使用一个小的函数选择助手功能:

代码语言:javascript
复制
q)test:([] a:1 2 3;b:`a`b`c)
q)test
a b
---
1 a
2 b
3 c
q)select from test where a in 1 2,b like "a*"
a b
---
1 a
q)?[test;((in;`a;1 2);(like;`b;"a*"));0b;()]
a b
---
1 a
q)fsel:{[t;wc] ?[t;wc;0b;()]}
q)fsel[`test;((in;`a;1 2);(like;`b;"a*"))]
a b
---
1 a

您不能直接从java接口发送inlike运算符,因为序列化程序不会生成此数据类型。

但是,您可以发送解析树,它将对它们进行评估:

代码语言:javascript
复制
q)value"in"
in
q)eval(`$".q.value";"in")
in
q)?[test;(((`.q.value;"in");`a;1 2);((`.q.value;"like");`b;"a*"));0b;()]
a b
---
1 a

来自Java:

代码语言:javascript
复制
c c=new c("localhost",5000);
Object[]wc=new Object[]{
    new Object[]{new Object[]{".q.value","in".toCharArray()},"a",new long[] {1,2}},
    new Object[]{new Object[]{".q.value","like".toCharArray()},"b","a*".toCharArray()}
 };
Object result=c.k("fsel","test",wc);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72657474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档