複雑なタイプの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