我想创建复杂类型的AWS UDF功能。 AWS UDF正文部分支持Python语言。我已经在Python中创建了这个函数的正文部分功能。但是,我在AWS Redshift上运行以下代码,并收到错误消息。我可以创建复杂类型的AWS Redshift UDF
create or replace function Date(EffDt varchar,EffDt varchar)
RETURNS VARCHAR STABLE AS $$
from dateutil.parser import parse
import datetime
from datetime import timedelta
if len(EffDt)>0 and len(Pay)>0:
dt=parse(EffDt)
if dt.month and dt.day==1:
NewDate=dt
else:
if Pay=="Weekely":
value=datetime.date(dt.year, dt.month, dt.day).weekday()
if value==1:
NewDate= dt + timedelta(days=1)
elif value==2:
NewDate = dt
elif value==3:
NewDate=dt+timedelta(days=6)
elif value==4:
NewDate=dt+timedelta(days=5)
elif value==5:
NewDate=dt+timedelta(days=4)
elif value==6:
NewDate=dt+timedelta(days=3)
elif value==7:
NewDate=dt+timedelta(days=2)
else :
pass
if Pay=="Monthly":
strvalue=dt.strftime('%Y/%m/%d')
if strvalue[:2]=="15":
strDate=str(dt.month)+"/16/"+str(dt.year)
NewDate=parse(strDate)
elif strvalue[:3]=="01":
NewDate=dt
else :
strDate=str(dt.month+1)+"/01/"+str(dt.year)
NewDate=parse(strDate)
else :
NewDateValue="1/1/1990"
NewDate=parse(NewDateValue)
mm=NewDate.month
yyyy=NewDate.year
print(yyyy)
if len(str(mm))==1:
mm="0"+str(mm)
dd=NewDate.day
if len(str(dd))==1:
dd="0"+str(dd)
_date=str(yyyy) +str(mm)+str(dd)
return _date
$$ LANGUAGE plpythonu;
有什么错误? – Ray
消息 错误:XX000:无法编译udf。 – raj