解析日期在云函数中执行的创建作业中引发错误

Posted

技术标签:

【中文标题】解析日期在云函数中执行的创建作业中引发错误【英文标题】:parse date throws an error inside create job executed in cloud functions 【发布时间】:2019-02-02 06:25:27 【问题描述】:

我在 sql 语句中的 order by 子句中有一个解析日期,用于由云函数执行的 bigquery createjob api,它会引发错误。

在 bigquery 查询编辑器控制台中执行相同的 sql 语句没有任何问题

sqlQuery="select * from <<datasetid>>.<<table_name>> where arrival_date not like '%Z%' order by parse_date('%d/%m/%Y',arrival_date)" ;
const options = 
        configuration: 
            query: 
                query: sqlQuery
            
        
   ;
bigquery.createJob(options, function (err, job) 
        if (err) 

            console.log(err);
            return res.status(500);

        
        job.getQueryResults(function (err, rows) 
            return res.status(200).send(rows);
        );
    );

【问题讨论】:

我在上面列出的代码中有一个小的更正.. 上面的代码中缺少查询字符串的引号,但在云函数中我确实有引号.. 我已经复制了下面的确切错误消息:TypeError: stream.destroy is not a function at onResultSet (/user_code/node_modules/@google-cloud/bigquery/node_modules/@google-cloud/paginator/ build/src/index.js:242:24) 在 bigQuery.request (/user_code/node_modules/@google-cloud/bigquery/build/src/job.js:385:17) 在 request_.then.err (/user_code /node_modules/@google-cloud/bigquery/node_modules/@google-cloud/common/build/src/service.js:167:82) 在 process._tickDomainCallback (internal/process/next_tick.js:135:7)跨度> 【参考方案1】:

尝试替换这个:

sqlQuery=select * from <<datasetid>>.<<table_name>> where arrival_date not like '%Z%' order by parse_date('%d/%m/%Y',arrival_date)

有了这个:

sqlQuery="select * from <<datasetid>>.<<table_name>> where arrival_date not like '%Z%' order by parse_date('%d/%m/%Y',arrival_date)"

下次:请复制粘贴您得到的确切错误代码。

【讨论】:

我在上面列出的代码中有一个小的更正.. 上面的代码中缺少查询字符串的引号,但在云函数中我确实有引号.. 我添加了上述 cmets 中的确切错误

以上是关于解析日期在云函数中执行的创建作业中引发错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在解析服务器上创建和调用云代码函数?

如何创建一个函数以在 openerp 中引发错误

AWS EC2 上的解析服务器在云代码上给出 141 错误

第七次团队作业--Alpha冲刺(7/10)

如何在云函数内联编辑器中使用 Firebase 预定函数?

如何在 Firebase 可调用云函数上引发错误?