将js函数结果插入雪花表

问题描述 投票:0回答:1

我有一个js函数,它准备一个查询,然后在雪花上执行它并将结果存储在变量中:

function objectGet(db, view, schema, object) {
        const x = `select get_ddl('${view}', '"${db}"."${schema}"."${object}"') as "result";`
        const res = snowflake.createStatement( { sqlText: x } ).execute();

if (res.next()) {
            return res.result
        }

然后我想将上一个函数的结果插入到表中,但这对我不起作用。如何将这些结果插入到表中?

 function add() {
      let result = objectGet(x.db, x.view, x.schema, x.object);
            let insertt = `
            INSERT INTO "Base"."Schema"."Example"
            (col)
            VALUES
            ("${result}")`;
            snowflake.createStatement({ sqlText: insertt }).execute();

javascript stored-procedures snowflake-cloud-data-platform
1个回答
0
投票

问题是 ${result} 周围的双引号,您应该使用单引号,因为双引号是为标识符保留的。

所以你的“添加”功能应该是:

function add() {
      let result = objectGet(x.db, x.view, x.schema, x.object);
      let insertt = `
            INSERT INTO "Base"."Schema"."Example"
            (col)
            VALUES
            ('${result}')
      `;

      snowflake.createStatement({ sqlText: insertt }).execute();
}

您可能还想转义变量中潜在的单引号,以防万一。

© www.soinside.com 2019 - 2024. All rights reserved.