3

Google アプリ スクリプトを使用して電子メールの添付ファイルを取得しようとしています。以下は、電子メール メッセージに添付ファイルがあるかどうかを確認するコードです。

function testMail() {
var threads = GmailApp.getInboxThreads();
for (var i = 0; i < 10; i++) {
  var mess=threads[i].getMessages()[0];
  if (mess.getAttachments().length>0)
  {
    //var filename=mess.getAttachments()[0].
    Logger.log(mess.getSubject());
    Logger.log(mess.getAttachments()[0].getName());
    var conn = Jdbc.getConnection("jdbc:oracle:thin:@xxx.xxx.xxx.xxx/xxx.xxx.xxx", "xxx","xxxxxxx");
    conn.setAutoCommit(false);
    var stmt = conn.prepareStatement("insert into blob_table (filnname,blob_field) values (?,?)");
    stmt.setString(1, mess.getAttachments()[0].getName());

    stmt.setBlob(2, mess.getAttachments()[0]);
    var res = stmt.execute();
    conn.commit();
    conn.close();    

    break;
  }  
}
}

しかし、スクリプトを実行すると「メソッド setBlob プロンプトが見つかりません」というエラーが表示されます。フィールド ファイル名のみを挿入すると、テーブル blob_table にデータを保存できます。blob を挿入する特別な方法はありますか?

ありがとう

4

2 に答える 2

0

オートコンプリートまたはドキュメントを見ると、JDBC には、Apps Script の他の部分とは異なり、Blob とは異なる独自の JdbcBlob の概念があることがわかります。(すべての JdbcBlob は Blob ですが、その逆ではありません。) 次のように、通常の Blob を JDBC blob に変換できます。

conn.createBlob().setBytes(0, myOriginalBlob)

この場合、どこmyOriginalBlobから得たものですかmess.getAttachments()[0])

于 2012-10-07T16:45:54.240 に答える