【问题标题】:How to getArray from JdbcResultSet in google app script?如何从谷歌应用脚​​本中的 JdbcResultSet 获取数组?
【发布时间】:2016-11-17 12:53:28
【问题描述】:

虽然我可以循环并从 jdbc 结果中获取结果到数组,但我想知道如何使用 getArray() 来做到这一点。

var results = stmt.executeQuery("select col1, col2 from sometable;");
var arr1 = results.getArray("col1");

另外,如何在谷歌应用脚​​本中转储或检查结果对象?

【问题讨论】:

    标签: jdbc google-apps-script


    【解决方案1】:

    试试下面的代码。它基于官方文档中的这个示例:

    https://developers.google.com/apps-script/guides/jdbc#read_from_the_database

      //Execute query
        var results = stmt.executeQuery("select col1, col2 from sometable;"); 
      
      //Generate a 2d array to insert in spreadsheet
      var array2d = [];
      
      //Generate array with titles                               
      var numCols = results.getMetaData().getColumnCount();
      var titles = [];
      
      for (var col = 0; col < numCols; col++){
        var colName = results.getMetaData().getColumnLabel(col + 1);
        titles.push(colName);
      }
      
      //Insert titles in 2d array
      array2d.push(titles);
      
      //Extract results from query and insert insert into array2d
      
      while (results.next()) {
        //This is an array with data from each row
        rowData = [];
        for (var col = 0; col < numCols; col++) {      
              rowData.push(results.getString(col + 1));
        }
        //Insert data from each row in 2d array
        array2d.push(rowData);
      }
      
      //close  
      results.close();
      
      Logger.log(array2d);
    
      SpreadsheetApp.getActiveSheet()
      .getRange(1, 1, Object.keys(array2d).length, array2d[0].length)
      .setValues(array2d)

    【讨论】:

      【解决方案2】:

      您可能需要先检查此类的Class JdbcArraydocumentation

      java.sql.Array 中所述,

      Array 接口提供了将 SQL ARRAY 值的数据作为数组或ResultSet 对象提供给客户端的方法。如果 SQL ARRAY 的元素是用户定义的数据类型 (UDT),它们可能是自定义映射的。

      要创建自定义映射,您必须做两件事:

      • 为要自定义映射的 UDT 创建一个实现 SQLData 接口的类。
      • 在类型映射中创建一个条目,其中包含
        • UDT 的完全限定 SQL 类型名称
        • 实现 SQLData 的类的 Class 对象

      之后,您可以检查Class JdbcResultSet 及其documentation

      最后,Guide to JDBC 也可能有帮助。

      【讨论】:

      • 谢谢。您是在谈论谷歌应用脚​​本中的实现吗?你有这个实现的例子吗?谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多