Google App脚本-如何在JDBC查询中加入多个数据库

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

是否可以通过GAS查询加入多个数据库?我可以成功地跨表联接数据,但无法弄清楚如何联接数据库。

这是我的联接表脚本。我需要添加/更改什么才能将此查询连接到另一个数据库表(数据库位于同一服务器上)。


  var docs = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = docs.getSheetByName('sheet1');
  var protocol = docs.getSheetName();
  var siteName = docs.getName();
  var conn = Jdbc.getConnection('jdbc:mysql://ip:port/database', 'foo', 'bar'); 

var stmt = conn.prepareStatement("select a.ex, a.ex2, a.ex3, b.ex1, b.ex2 from table1 a join table2 b on a.ex = b.ex;"); 

  var start = new Date(); // Get script starting time
  var rs = stmt.executeQuery();
  var doc = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheets = docs.getSheetByName('sheet1');
  var cell = sheets.getRange('C1');
  var row = 0;
  var getCount = rs.getMetaData().getColumnCount(); 

  for (var i = 0; i < getCount; i++){  
     cell.offset(row, i).setValue(rs.getMetaData().getColumnName(i+1)); 
  }  

  var row = 1; 
  while (rs.next()) {
    for (var col = 0; col < rs.getMetaData().getColumnCount(); col++) { 
      cell.offset(row, col).setValue(rs.getString(col + 1)); 
    }
    row++;
  }

  rs.close();
  stmt.close();
  conn.close();
  var end = new Date(); // Get script ending time
  Logger.log('Time elapsed: ' + (end.getTime() - start.getTime())); // To generate script log. To view log click on View -> Logs.
  Logger.log(protocol);
  Logger.log(rs);

}```
mysql google-apps-script jdbc
1个回答
0
投票

解决方案是在MySQL中创建存储过程。您可以在此处链接数据库,创建复杂的查询,然后使用与保存该存储过程的数据库的单一连接在JDBC查询中调用该过程。

这对我有用。

到相关材料的链接:

Dev MySQL网站:MySQL Stored Procedure

MySQL教程:MySQL Stored Procedure

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