(代表雪花用户提交问题)
雪花社区成员推荐以下内容:
请使用snowsql查找以下示例。有两个变量 在脚本test.sql中,在运行时将其替换为以下snowsql 命令。
命令:
snowsql -c myconn -w trainingwh --variable dt=01-AUG-2018 --variable file=test.txt -f test.sql -o variable_substitution=True
脚本test.sql
copy into @unloadstage/&file from (select * from tab where dt = to_Date('&dt','DD-MON-YYYY'));
用户回复:
我正在使用存储的proc,我的select语句正在运行,但不能使用copy命令,我已经>注释掉了该行
创建或替换过程sy_sp_test9()
返回字符串
语言javascript
为
$$ var counter = 0; var cid=300000433715649; var dt_stmt = snowflake.createStatement({ sqlText:`select year( dateadd('d',-30,mdate))||'-'|| lpad(month(dateadd('d',-30,mdate)),2,'0')||'-'|| lpad(day( dateadd('d',30,mdate)),2,'0') from(select max(crtn_dt)mdate from ATT_MDP_DB.STANDARDIZED.cdm_campaigns) `}); var cpdt=dt_stmt.execute(); cpdt.next() var pyear= cpdt.getColumnValue(1); var my_sql_qry_stmt = snowflake.createStatement({ sqlText: `SELECT count(*) FROM ATT_MDP_DB.STANDARDIZED.cdm_campaigns WHERE CRTN_DT>:1;`, binds: [pyear] }); var rec_count = my_sql_qry_stmt .execute(); rec_count.next() //bind variable works fine here var v_rec_count = rec_count.getColumnValue(1); testfile_name="CAMP9_"; var my_where_stmt=" from (select * from ATT_MDP_DB.STANDARDIZED.cdm_campaigns w) overwrite=true;"; // var my_where_stmt=" from (`select * from ATT_MDP_DB.STANDARDIZED.cdm_campaigns where //crtn_dt>=:1;`,binds:[pyear])"; ---The above commend line does not work var my_stage_cmd="copy into @ATT_MDP_USER_DB.ASPEN.ASPEN_S3_STAGE/"; my_stage_cmd += testfile_name; my_stage_cmd+=my_where_stmt; var statement1 = snowflake.createStatement( {sqlText: my_stage_cmd }); var result_set1 = statement1.execute(); return my_stage_cmd; $$
我们感谢社区可以推荐的任何想法,帮助或其他解决方法。谢谢!