当前位置: 首页 > 知识库问答 >
问题:

Cassandra UDF和用户输入

公羊信厚
2023-03-14

我正在使用Cassandra2.2,但我遇到了一个用户定义函数的问题。

我想创建一个函数,它以一个表的整数列作为参数,另一个整数作为用户输入,并将这两个值相乘,如下所示:

创建或替换函数testFunc(val int,input int)

在空输入时调用返回int

作为“return val*input;”的语言Java;

我可以在两个整数列上执行函数

从my_table中选择testFunc(int_column,another_int_column);

它是工作的,但当我尝试用用户输入执行它时,比如:

从my_table中选择testFunc(int_column,3);

我收到以下异常:

SyntaxException:ErrorMessage Code=2000[CQL query中的语法错误]Message=“Line 1:22输入”3“处没有可行的替代方案(选择testFunc(year,[3]...)”

有可能实现我正在努力的目标吗?还是我应该找到另一种方法来实现?

共有1个答案

宦飞
2023-03-14

以这种方式调用UDFtestfunc(int_column,3)与将int传递给函数参数相同,该函数参数只接受字符串(即列名),因此出现错误语法错误在输入“3”处没有可行的备选项。不确定这是否适合您的场景,但您可以尝试以下操作:

CREATE OR REPLACE FUNCTION testFunc (val int)

CALLED ON NULL INPUT RETURNS int

LANGUAGE java AS 'return val * 3;';

或者向表中添加乘数列。

 类似资料:
  • 问题内容: 我如何拥有a)可以接受用户输入的Python脚本,以及如何使其b)如果从命令行运行则读入参数? 问题答案: 要读取用户输入,你可以尝试使用该cmd模块轻松创建迷你命令行解释器(带有帮助文本和自动完成功能),以及(input用于Python 3+)用于从用户读取文本行的模块。 命令行输入在中sys.argv。在脚本中尝试以下操作:

  • 我需要一种允许用户输入团队名称和团队成员名称的方法。我试过使用扫描仪,但由于我对Java的经验不足,它无法正常工作。我只想让一个用户输入一个团队名称和四个团队成员的名字。我将这些变量公之于众,但我不知道如何向它们输入数据,因为它们在单独的类中。 这是密码 main类导入java.util.Scanner;公共类Main{

  • 在Angular 2中,您可以使用HTML的DOM元素结构来在运行时更改元素的值。 我们来看一些细节。 输入标签 在app.component.ts文件中放置以下代码。 import { Component } from '@angular/core'; @Component ({ selector: 'my-app', template: ' <div

  • 本文向大家介绍vue监听用户输入和点击功能,包括了vue监听用户输入和点击功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了vue监听用户输入和点击的具体代码,供大家参考,具体内容如下 功能1:监听用户输入和点击,并实时显示, 功能2:点击发布,编辑页面隐藏,显示发布成功。 功能1 html代码: 使用:v-model监听,!submmited视图默认显示,注意监听option v

  • 问题内容: System.out.print(“Name : “); String name = in.nextLine(); 输出将是: 名称:测试 年龄:20 建立成功 当我调试它们时,它不会读取“ city”的用户输入。但是,当我将“年龄”的数据类型更改为字符串时,它将读取。我如何在读取城市用户输入的系统中将age的数据类型保持为整型? 问题答案: 读取年龄后,由于缓冲区中仍然有换行符,请将

  • 我就是这样保存航班的: 运行上面的第一个方法后的输出是如果我输入了除1号以外的任何ID 尽管我输入了与航班ID匹配的ID。 程序运行良好,我只是不知道哪里是我的错误。