0

いくつかの整数列と blob 列を持つ数千行のテーブルがあります。各行を独自のファイルとしてダンプし、ブロブをコンテンツとし、整数をファイル名の形成に使用したいと考えています。これは 1 回限りの操作なので、すばやく簡単に操作できます。1 つの制約は、この環境にインストールされているツールがほとんどないことです。そのため、何を使用しても開発コストの一部になります。


編集:別のボックスからC#を使用することになりました。以下の回答に示されているように、単一のアセンブリとほぼ同じ量のコードをダウンロードするだけで済みました。

4

2 に答える 2

2

PHPで簡単なこと:

<?php
$connection = mysql_connect("mysqlserver.example.com", "username", "password");
mysql_select_db("dbname");
$sql = "SELECT `blob_column`, `id` FROM `mytable`";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)){
    file_put_contents("file" + $row["id"] + ".dat", $row["blob_column"]);
}
mysql_close($connection);

おそらく、MySQL にアクセスするために必要な方法が何であれ、同様のことを行うことができますが、知る限り、純粋な SQL でそれを行う方法はありません。

于 2009-06-26T21:52:55.353 に答える
1

Common Lisp では、CLSQL を使用すると、次のようなものが動作するはずです (テストされていないため、現時点では MySQL がインストールされていません)。

(require 'clsql)
(require 'clsql-mysql)

(clsql:connect (host db user password port) :database-type :mysql)

(clsql:do-query ((col1 col2 blob) "select col1,col2,blob from blobtable")
  (with-open-file (outfile (format nil "~a-~a" col1 col2)
                           :direction :output
                           :element-type 'byte)
    (write-sequence blob outfile)))

もちろん、ホスト、データベースなどを入力し(ポートはオプションです)、クエリを調整する必要があります。

于 2009-06-26T23:00:07.263 に答える