• ベストアンサー

CSVデータをDBに移行するには

Perlを使ってCSVデータをDBに移行して格納したい のですが、流れはCSVファイルを開いて、CSVファイルを連想配列に書き込んで、 DBを開いて、連想配列データをデータベースに書き込んで、DBを閉じるという 流れの考えでよろしいのでしょうか?

  • CGI
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.1

特に問題はないと思いますよ。 頑張ってくださいね。

関連するQ&A

  • CSVファイルを読み込み、ファイル名を変更。

    CSVファイルを読み込み、ファイル名を変更。 使用言語はperlです。perlは初心者です。 アルゴリズムが、 CSVファイルを読み込み→2次元配列に格納→ファイル名変更 という流れになっているプログラムを作成中です。 CSVファイルの中身は あ.txt , a.txt い.txt , b.txt う.txt , c.txt です。 CSVファイルを読み込み2次元配列に格納するプログラムは以下のようにしました。 ----------------------------------- $i= 0; open IN, "sample.csv"; while (<IN>) { my @data = (); @data = split (/,/); for (0..@data) {$jdata[$i][$_] = "$data[$_]";} $i++; } close IN; ---------------------------------------- 「あ.txt」を「a.txt」に変更しようとして、この中に rename $jdata[0][0] , $jdata[0][1] ; と書いてみましたが、変換されません。 どう書けばよいのでしょうか。よろしくお願いします。

    • ベストアンサー
    • Perl
  • 【エクセルVBA】DBのデータをCSVに

    VBA初級者です。 oracleDBのデータをCSVへ出力するマクロをVBAで作成中ですが、実装方法が分からず困っています。 ・DB接続はoo4o ・エクセルは2010 ・SQLで取得したデータを1レコードづつCSVに書き出したい ・カラム名をヘッダーとして書き出したい 以下のような実現方法でできるか…?と考えたものの、 肝心のマクロ(VBA)でのDBデータの取得⇒CSVへの書き込み方法がいくら調べてもわかりません。 CSVからDBへのインポートはたくさんあったのですが…。 そもそも取得したレコードを配列で保持して書き出す、という考え方が合っているのか?ヘッダー(カラム名)はどのように書き出せばいいか? など疑問が尽きません。何卒お力添え頂ければ幸いです。 --ボタンクリック時のアクション-- (1)変数定義 (2)DB接続情報確認 (3)DB接続 'DB接続 Set oraSession = CreateObject("OracleInProcServer.XOraSession") Set oraDatabase = oraSession.OpenDatabase(dbSid, dbUser & "/" & dbPass, ORADB_DEFAULT) (4)書き込み用のCSVファイルを作る (5)SQLを実行し返ってきた結果をsplit関数で配列としてwriteListにAddする (5)作成したCSVファイル内にwriteListのデータをPrint #で書き出す (6)完了メッセージを表示 MsgBox "完了しました " (7)DBの切断 'DBクローズ Set oraDatabase = Nothing Set oraSession = Nothing --SQLを実行するメソッド-- (8)SQLを記述、SELECT結果を(5)に返す 恐れ入りますがよろしくお願いいたします。

  • DBからCSV出力する方法

    DBのデータをCSVファイルでダウンロードする機能を作成しています。 DBのデータをカンマ区切りで変数に格納するところまではできましたが、CSVでのダウンロード(ダウンロードダイアログ)ができません。 以下が実際の記述ですが、間違いを指摘いただけないでしょうか。 ※$result 出力するデータ全てが,区切りで格納されている <PHPファイル内> $size = strlen($result); $filename = csv_dl.csv; //csvdll header("Content-Disposition: inline; filename=\"".basename($filename)."\""); header("Content-Length: ".$size); header("Content-Type: application/octet-stream"); 以上です。 リターンが遅くなるかもしれませんが、どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • データの受け取り方

    現在Perlを使ってプログラムを組んでいます。 以前までは連想配列を使って、 Formから得たデータを処理してたのですが、 連想配列はPerlだけ(?)だから 連想配列を使わずにやるように言われました。 いろいろ書店などを回り本を読んでみたのですが、 どれも連想配列を使っています。 どうしたらいいのかさっぱりわからないので、 連想配列を使わないやり方を教えてください。

  • 送られてくるcsvデータをphpで解析

    あるサーバから送られてくるcsvデータ(ファイル名不明)を解析するにはどうしたら良いでしょうか? csvの中身 年齢,性別,地域 20,1,30 25,2,15 これらをphpで読み取り、データベースへ という流れです。

    • 締切済み
    • PHP
  • 0をデータに納めたい

    cgi(perl)でデータを整理し、格納しようとしています。 値が0という実数をファイル(csv)に格納したいのですが、"0"としても'0'としてもcsvファイルを開いて確認してみるとそのセルには何も入っていません(Null扱いになっているようです) データとして0を入れたい場合どうすればいいのでしょうか。 なお、全角の0ではなく半角の0を格納したいです。

    • ベストアンサー
    • Perl
  • 毎日DBのデータをCSVに抽出したい

    タスクスケジューラで定期的に「SQL」を発行させてデータをCSVファイルにはきだしたいと思っています。 対象のdbがOracle、DB2、MySQLです。 悩んでいることが2か所あります。 抽出条件のSQLはSQLファイルに書いて簡単に実現できるのですが、 ・毎日CSVを作るためファイル名に日付を入れたい ・抽出条件に特定の日付を入れたいのですが対象のテーブルでは日付を日付型でもっておらず文字列です 例:20110206 どのようにすればいいでしょうか? ひとつのSQLファイル内で実現は不可能でしょうか?

  • php配列格納

    $lines = file ('db.csv'); 上記でファイルの中身を配列に入れますがその逆で データを配列にして格納したいのですがどうすればいいのでしょうか? ファイルの不要な行を除いて再度変数に配列で格納しファイルを作成 したいのです。

    • ベストアンサー
    • PHP
  • CSVファイルの中身

    いつもお世話になってます。 かなり初歩的な質問です! PerlでCSVファイルを読み込ませるプログラムがあるんですが、CSVファイルにはどうやってデータを格納すればいいのかわかりません。 プログラムはサイトを読み込ませるものらしいので、おそらくURLを記述すればいいんだとは思うんですが…。 よろしくお願いします。

  • 配列データをCSVでダウンロードしたい

    こんばんは。お世話になっております。 題名にある「配列データをCSVで・・」に関して、2つほど質問があり投稿させていただきます。 ヤフーのAPIを利用しているのですが(テストしている段階)、検索結果は提供されたデータが配列に格納されており、それを展開して検索結果として出力しています。 と、ここで、その結果をCSVでダウンロードすべく、配列データをimplodeで配列に収めて別ファイルにGETで渡し、渡されたデータをexplodeで配列に戻し、 header("Pragma: cache;"); Header("Content-type:application/vnd.ms-excel; charset=Shift_JIS"); header("Content-Disposition: inline; filename=$fname.csv");//ファイル名は一意な名前にしています。 $csv_line = implode("\n", $items); print(mb_convert_encoding($csv_line, "SJIS", "UTF-8")); と、やっております。 そこで質問なのですが、まず1つめ。APIで提供されているデータはUTF-8なので、上記のようにmb_convert_encoding()を使っていますが、文字化けでダウンロードしたデータを読むことが出来ません。 このような場合の対処の仕方は、どのようにすれば良いのでしょうか? また、2つ目の質問ですが、配列データをCSVでダウンロードするために、配列データを別ファイルに渡しているのですが、上記のようなやり方では、implodeで変数に代入すると文字列が長すぎて、正常にデータを渡すことが出来ません。 当初はCSVを生成するときもヤフーに接続して・・と行っていたのですが、これだと2度アクセスすることになり(1日のアクセス数の上限が定められている)、出来れば1度のアクセスで得たデータを利用したいと考えているのですが、このような場合、配列データを別ファイルに渡すにはどのようにするのが理想なのでしょうか?(セッションの利用も試したが上手くいきませんでした)

    • ベストアンサー
    • PHP

専門家に質問してみよう