写入追加运行的大查询公式但不返回任何内容?

时间:2016-09-15 05:52:18

标签: google-apps-script google-sheets google-bigquery google-spreadsheet-api

function appendJoin12() {
  var job = {
    configuration: {
      query: {
        query: 'SELECT * FROM [projectId:datasetId.Join2_Test],
                              [projectId:datasetId.Join1_Test] ',
        writeDisposition:'WRITE_APPEND',
        destinationTable: {
          projectId: 'projectId',
          datasetId: 'datasetId',
          tableId: 'tableId'
       }
     }
   }
 };

 var queryResults = BigQuery.Jobs.insert(job, projectId);
 Logger.log(queryResults.status);
}

这是文件Join1_Test

的内容
ID  Name
1   cat
2   dog
3   mouse
4   turtle
5   fish

这是文件Join2_Test

的内容
ID  Name
6   apple
7   orange
8   kiwi
9   banana
10  peach

这是我想要Join12的 RESULTING 文件的内容(这是tableID)

ID  Name
1   cat
2   dog
3   mouse
4   turtle
5   fish
6   apple
7   orange
8   kiwi
9   banana
10  peach

上面的代码运行但没有返回任何内容,为什么以及如何解决这个问题。这用于谷歌表。

没有错误消息,目标表为空

代码使用标准大查询中的追加和写入选项,其中显示"显示选项"但这种方法的原因是使其自动化。

以上选择查询有效。

如果以上是正确的,我需要启用某些内容或更改某些设置。

1 个答案:

答案 0 :(得分:0)

我不得不承认这个程序对我来说完全没问题,我无法复制这个问题。

insert是异步的。

  

此方法立即返回。你必须调用jobs.get()并检查   作业完成时要学习的工作状态。你包括一个和   作业资源中只有以下子属性之一。该   您包含的子属性定义了它的作业类型。

您可能遇到的是因为脚本是异步的,所以它会立即完成并且inser作业被删除但从未完全执行完成。 在记录结果并终止之前,您可能要等到功能完成

var jobId = queryResults.jobReference.jobId;
while (!queryResults.jobComplete) {
  Utilities.sleep(1000);
  queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId);
}