Google Apps Script를 사용하여 SQL Server에 연결하는 방법 【취득 레코드를 스플릿 시트에 복사】

Microsoft SQL Server 에 GAS(Google Apps Script)를 이용해 액세스하여 Select 결과를 스플릿 시트에 복사해 오는 일련의 흐름을 정리하고 있습니다.

GAS를 사용하여 SQL Server에 연결하는 방법



Microsoft의 SQL Sever에 GAS에서 연결하고 싶습니다. GAS 참조(JDBC) 을 살펴보면 Google Cloud SQL
다만, SQL 서버에의 접속을 하고 있는, 참고 사이트가 발견되지 않았기 때문에 시험에 연결해 보고, 실제로 연결했습니다라고 하는 보고입니다.

Microsoft SQL Server 연결 스크립트



그렇다고 공식 레퍼런스의 전용이 됩니다만, 이하와 같이 접속할 수 있었습니다. JDBC에서 SQL Server와 연결하여 데이터를 선택합니다. 그 결과는 미리 준비해 둔 스플릿 시트에 복사하도록 하고 있습니다.
MySQL , Microsoft SQL Server , Oracle databases 는 각자 설정해 주세요.

script.js
function SQLdb() {

    function readFromTable() {

    // データベースへの接続情報を記載
    var user = '【ユーザ情報を指定】';
    var userPwd = '【パスワードを指定】';
    var database = '【データベース名を指定】';
    var host_name = '【ホスト名を指定】';
    var port = '【ポート名を指定】';

    var connectionString = 'jdbc:sqlserver://'+host_name+':'+port+';databaseName='+database;

    // JDBCでデータベースへのコネクション確立
    var conn = Jdbc.getConnection(connectionString , user, userPwd);

    // 処理の開始時間を取得
    var start = new Date();

    var stmt = conn.createStatement();

    // デバッグ用(レコードの最大取得件数を指定できます。)
    stmt.setMaxRows(5);

    // クエリの実行
    var results = stmt.executeQuery("SELECT 【...クエリを指定】");

    // カラムの数を取得
    var numCols = results.getMetaData().getColumnCount();

    // 以下、スプレットシートへの結果のコピー処理
    var sheet = SpreadsheetApp.openById('【結果出力先のシートidを指定】').getSheets()[0];
    var cell = sheet.getRange(1,1);
    var row =0;

    // データのヘッターを指定(フィールド名)
    var fields=["id","name","price"];
    for(var i=0;i<fields.length;i++){
      //value[i]=values[i];
      cell.offset(row, i).setValue(fields[i]);
      Logger.log(fields[i])
    }

    row++;

    // クエリの結果をコピー
    while (results.next()) {
      var rowString = '';
      for (var col = 0; col < numCols; col++) {
        rowString += results.getString(col + 1) + '\t';
        cell.offset(row, col).setValue(results.getString(col +1 ));
      }
      row++
    }

    results.close();
    stmt.close();

    // 終了時刻の取得と、実行時間のログ出力
    var end = new Date();
    Logger.log('Time elapsed: %sms', end - start);

   }
   readFromTable();
  }

(참고) 스플릿 시트로의 출력 결과
출력 건수는 stmt.setMaxRows(5)로 5건으로 지정하고 있기 때문에, 5개의 레코드를 취득할 수 있었습니다.



스크립트로 지정하는 스프레트시트의 ID입니다만, 스프레드시트의 URL안의 이하 밑줄 굵은 글자 부분이 됩니다. (아래에서는 ID 부분을 더미 값으로 하고 있습니다.)

htps : // / cs. 오, ぇ. 이 m / sp re d t / d / 1P8 um 1397 lBlC0 - e s2ds_psC에서 dJT4dt dk / et #gd = 0


그래서 GAS를 사용하여 Microsoft SQL Server에 연결하는 방법을 설명했습니다. 스플릿 시트를 사용하면 서버리스 데이터베이스처럼 취급할 수 있으므로 편리합니다. 원한다면 참고해보십시오.

좋은 웹페이지 즐겨찾기