调用自定义函数时报错The object date is neither a XDB connection nor a function definition.

server版本:2.00.8 2022.09.28

问题:def自定义函数能正常定义,而且逐行执行函数体内的脚本能够运行,但是调用函数会报错以下错误,请问是什么原因?

错误提示:Server response: 'myFunc("20230118", t) => myFunc: tmp = select * from t where date(dt) == date => The object date is neither a XDB connection nor a function definition.'

复现脚本:

dt = 2023.01.18T04:01:51.100 2023.01.19T04:01:51.000 2023.01.19T04:01:51.900
sym = ["IBM", "MSFTN", "GOOGS"]
value = 1..3
t=table(dt, sym, value)

def myFunc(day, t){
	date = temporalParse(day, "yyyyMMdd")
	tmp = select * from t where date(dt)=date
	return tmp
}

myFunc("20230118", t)
请先 登录 后评论

1 个回答

Yating Xie

在自定义函数中,用和其他函数名称相同的名字命名了一个变量(您的脚本中是date)后,后续又再调用了该函数时会报错(您这里是调用date(dt)报错),因为系统无法再识别这个函数。

建议不要使用与函数名称以及其他关键字等冲突的变量名,改为以下脚本即可正常运行:

def myFunc(day, t){
	myDate = temporalParse(day, "yyyyMMdd")
	tmp = select * from t where date(dt)=myDate
	return tmp
}

myFunc("20230118", t)


请先 登录 后评论