No.3ベストアンサー
- 回答日時:
SELECTした結果をリダイレクトすると、桁揃えされてるので、
BLOBに限らずVARCHARもフル桁出力されちゃうと思います。
#1に書いたように、INTO DUMPFILEで1レコードずつ出力しましょう。
参考URL:http://dev.mysql.com/doc/refman/5.1/ja/select.ht …
No.2
- 回答日時:
import java.io.*;
import java.sql.*;
public class sqlblob1{
public static void main( String args[] ){
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/test?user=xxx&password=xxx";
Connection conn = DriverManager.getConnection(url);
File file = new File("c:\\Users\\nakagawa_takashi\\A-2.pdf");
FileInputStream fis = new FileInputStream(file);
PreparedStatement ps = conn.prepareStatement("INSERT INTO images VALUES (?, ?)");
ps.setString(1, file.getName());
ps.setBinaryStream(2, (InputStream)fis, file.length());
ps.executeUpdate();
fis.close();
ps.close();
conn.close();
}catch( Exception e ){
System.out.println("Exception");
if (e instanceof SQLException) {
System.out.println("エラー・コード: " +
((SQLException)e).getErrorCode());
}
}
}
}
============================================
import java.io.*;
import java.sql.*;
public class sqlblob2{
public static void main( String args[] ){
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/test?user=xxx&password=xxx";
Connection conn = DriverManager.getConnection(url);
try{
File file = new File("B-2.pdf");
if ( ! file.exists() ){
file.createNewFile();
}
PreparedStatement ps = conn.prepareStatement("SELECT img FROM images WHERE imgname = ?");
ps.setString(1, "A-2.pdf");
ResultSet rs = ps.executeQuery();
rs.next();
System.out.println("result set next successfull");
byte[] imgBytes = rs.getBytes(1);
System.out.println("getbytes successfull");
//バイト配列ストリーム作成
ByteArrayOutputStream baos=new ByteArrayOutputStream();
//ファイルストリーム作成
FileOutputStream fos=new FileOutputStream(file);
System.out.println("初期のバッファサイズ="+baos.size());
baos.write(imgBytes);//ストリームに書き込み
baos.writeTo(fos);//ファイルに書き込み
fos.close();//ファイルを閉じる
baos.reset();//ストリームを消去
System.out.println("リセット後バッファサイズ="+baos.size());
baos.close();//ストリームを閉じる
}catch( Exception e ){
System.out.println("Exception");
if (e instanceof SQLException) {
System.out.println("エラー・コード: " +
((SQLException)e).getErrorCode());
}
}
}catch(Exception e){
System.out.println("connection error");
System.exit(1);
}
}
}
でやって見ましたが再現しませんでした。
No.1
- 回答日時:
何をつかって、どう、PDFファイルを保存していますか?
たとえば、コンソールから、
SELECT BLOBのカラム名 FROM テーブル名 WHERE 一意のキー項目=キー値 INTO DUMPFILE "ファイル名"
とやっているとか
それとも、JavaとかPHPで保存する為のプログラムを自分で作ったのか。
プログラムを作ったのであれば、抽出しているところと、保存している部分の
コードを提示してもらわないとアドバイスできません。
あるいは、何かDBを操作するツールを使っているとか?
その場合、ツール名は何でしょうか?
この回答への補足
まず、保存ですが、これはjavaで作られたプログラムでpdfファイルを利用者がアップロードしてデータベースに登録しています。
今回は、その登録されているpdfファイルをシェルに直接SQLを書いて取り出そうとしています。なので、取り出す方法は、
select pdffile from a-table
としています。
pdffile カラムがblobカラムになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PDF エクセルのVBAでファイルをpdfで保存するとソフトによっては開けなくなる 3 2022/06/08 10:20
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- PDF 保存したPDFファイルが開けなくなり、困っています 1 2022/09/15 21:08
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- PDF PDFに精通した方に質問。JPEGファイル群を一つのPDFファイルにするときの容量変化について 6 2023/07/23 19:06
- Dropbox スマホのドロップボックスにあるpdfファイルの起動 2 2022/06/18 09:09
- PDF PDF ファイルのパスワードの外し方 6 2023/03/29 11:37
- PDF PDF作成ファイルの不具合の件 5 2022/08/15 15:00
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
BLOBやCLOBのパフォーマンスを改善したい
Oracle
-
BLOBデーターの画像の表示方法を教えてください。
PHP
-
VB.NETにてDB2のBLOB型のデータを取得したい
Visual Basic(VBA)
-
-
4
レコードの登録順がおかしい
MySQL
-
5
変数名の付け方
Java
-
6
txtファイルから特定の文字列が書かれた行だけを取得や削除するソフト
フリーソフト
-
7
SQLPLUSで結果を画面に表示しない
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「最高気温が35度以上の日を猛...
-
SQLです。下記の問合せを行うク...
-
書籍の内容はまともでしょうか?
-
テーブル名が可変の場合のクエ...
-
下記の問合せを行うクエリを、P...
-
「第一回模試の3科目の各得点...
-
#1062 - '0' は索引 'PRIMARY' ...
-
MySQLのテーブル作成でハイフン...
-
参考書に従って入力したつもり...
-
「都道府県の面積の大きい順に...
-
「掲示板のログイン画面」はPHP...
-
BGMを教えてほしいです!
-
select *, `人口(男)`AND`人口(...
-
エラー 1068 (42000): 複数の主...
-
2つのテーブルを結合するときに...
-
mysqlのupdate構文についての質...
-
phpMyAdminをCentOS7にインスト...
-
2023年10月25日現在のMAMP ...
-
後でemailに追加でPRIMARY KEY...
-
本を見ながらPHPを勉強している...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
BLOB型のPDF出力の方法
-
エクセル内のURLからHPのタイト...
-
TortoiseSVNのリポジトリブラウ...
-
autorun がうまく動作しない
-
リバースプロクシを使って接続...
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
Accessでテーブル名やクエリ名...
-
Accessでテーブルの値をテキス...
-
Oracle 2つのDate型の値の差を...
-
セルの右クリックで出る項目を...
-
Access テキスト型に対する指定...
-
作番ってどういう意味でしょうか?
-
Accessでコードを入れると名前...
-
Accessのフィールド数が255しか...
-
Accessのリンクテーブルのパス...
-
テーブルの存在チェックについて
-
ACCESSで400以上のフィールドが...
-
ACCESSのクエリで集計で、先頭...
おすすめ情報