我做了很多搜索,但无法找到下面问题的答案。我相信答案很简单。
我正在尝试创建一个静态时间戳,我将能够在整个存储过程中使用它。
因此,在下面的例子中,我试图将CURRENT_TIMESTAMP((写入一个变量,然后在update语句中调用它。
我在表格中得到的输出是";[对象对象]";,目前这是一个varchar列。理想情况下,希望它输入到时间戳列中,但出现错误。
创建或替换过程SP_TEST_RUN((
返回VARCHAR
语言JAVASCRIPT作为$$
var STORE_DATE1=雪花执行({sqlText:"select CURRENT_TIMESTAMP(("}(;
snowflake.execute({sqlText:"UPDATE MY_TABLE SET TOKEN_1=';+STORE_DATE1+"';}(;
$$;
非常感谢!
在NickW的帮助下,设法解决了这个问题!
正如NickW正确指出的那样,需要使用getColumnValue,这将在结果中循环,因为只有1个条目。只需要发生一次。
需要注意的一点是,我不得不加上";toISOString(("到变量,它将JAVA变量转换为TIMESTAMP SQL可以理解,否则JAVA将自动将时间戳转换为字符串。
创建或替换过程SP_TEST_RUN((返回VARCHAR语言JAVASCRIPT
作为$$
var STORE_DATE1=雪花执行({sqlText:"select CURRENT_TIMESTAMP(("}(;
而(STORE_DATE1.next(((
{
var STORE_DATE2 = STORE_DATE1.getColumnValue(1);
}
snowflake.execute({sqlText:"UPDATE MY_TABLE SET INSERT_DATE_TIME="+STORE_DATE2.toISOString((+";}(;
$$;