2016-05-23 10 views
0

大きなオブジェクトの作成はどのように機能しますか?クライアントが必要ですか?私が望むのは、イメージを1つの列にすることだけだからです。 テーブルを作成した後で次のコマンドを入力していますが、Cドライブから直接起動していても、正しいパスではないというエラーが表示されます。PostgreSQLで大きなオブジェクトを使用してイメージフィールドを編集する方法は?

CREATE TABLE image (name text, 
        raster oid); 

INSERT INTO image (name, raster) 
      VALUES ('beautiful image', lo_import('C:Documents/etc/motd')); 

私は、任意のCコードを実行している、私はそれをすると仮定していますか、これは自動的にオブジェクトラージオブジェクトを作成しないではないのですか? 私はPostgreSQLに関してどこでCコードを実行すると思いますか?

私はすべてPostgreSQLの構文で何をしたいのですか?フィールドをイメージとして取り入れる別の方法はありますか?

ご協力いただきますようお願い申し上げます。

答えて

0

PostgreSQL documentationによると、(JavaのJDBCを考慮して)大きなオブジェクト扱うには二つの方法があります:データはあなたが単に(GetBytesメソッドを使用する必要があります入力bytea型を使用するには

が)、setBytes()、getBinaryStreamを()、またはsetBinaryStream()メソッドを使用します。

のLargeObject API。

また、あなたはbase64文字列に自分のイメージをひそかことができ、その後、例えば、pgAdminでを使用して直接挿入:

CREATE TABLE image_table (name varchar(255), DATA bytea); 

INSERT INTO image_table 
VALUES ('my_image.jpg', 
     decode('paste your byte array string here', 'base64')); 

Full sample code here

+0

部分読み取りは不要です。byteaはlargeobjectより効率的です。 – Jasen

+0

getBytes()などは何ですか。 – Jasen

+0

ですが、どのようにPostgresqlでjavaや他のコードを使用しますか? また、これらのオプションのいずれかを使用してイメージを取得する方法もあります。最後にデータを保存することをお勧めしますが、今ではイメージを抽出するのに時間がかかりますが、動作しないようです。 – Cleo

関連する問題