0

イメージを Informix データベースから Oracle データベースに移行しています。ソースから受け取った唯一の出力は、Oracle データベースにロードした単一のファイルでした。画像の 16 進表現は次のようになります: http://pastebin.com/vVBZ7qFG

同じ 16 進数を取得し、http://i-tools.org/bin2hexを使用して変換すると、JPEG 画像を出力できます。これは、私が模倣しようとしている動作です。

新しいテーブルのすべてのレコードをループし、画像をファイル システムの JPEG ファイルとして出力して、他の場所で使用する必要があります。

Oracle 11gR2 データベースで PLSQL を使用してこの動作を複製するのを手伝ってもらえますか?

16 進数を CLOB または BLOB 列に格納する必要がありますか?

前もって感謝します。

4

1 に答える 1

1

16 進数を扱っている全体的な理由は、フラット ファイルである informix からデータベース ダンプを取得するためであると仮定します。したがって、テーブルに挿入するときにバイナリに変換して blob に格納するか、最初に clob 列に格納してから、clob を blob に変換して関数の結果を格納する pl/sql 関数を記述します。 blob 列を削除してから、その clob 列をドロップします。

では、「16 進数を clob または blob に格納する必要がありますか?」という質問に対して。16 進数を保存する必要がある場合は、暫定的に保存してから clob 列に保存します。次のリンクは、clob と blob の違いをより明確にします。言及されたエンコードの問題は、私の意見ではあなたには関係ありません。

Oracle での CLOB と BLOB の違いを理解するのを手伝ってください

変換自体に関しては、16 進数の 2 文字を 10 進数に変換することはそれほど難しくないと思いますが (私は思います)、グーグルで検索すると、この hex2dec ルーチンを見つけましたhttp://psoug.org/snippet/Convert-Hex-to-Decimal -10 進数から 16 進数へ_78.htm

より難しい部分は、実際に clob を通過することです。まったく同じではありませんが、次のリンクでいくつかのアイデアが得られます

それが役に立てば幸い。

于 2013-04-26T21:28:54.877 に答える