大きなオブジェクトにデータがあります。元のオブジェクトのコピーを保持しながら追加できるように、そのコピーを作成したいと考えています。これを発生させるために使用できる JDBC 呼び出しまたは SQL ステートメントはありますか?
私が見つけたすべてのリソースから、実際にすべてのデータをクライアントに読み取り、コピーを取得するために再度書き出す必要があるようです。往復を節約したいと思います。
大きなオブジェクトにデータがあります。元のオブジェクトのコピーを保持しながら追加できるように、そのコピーを作成したいと考えています。これを発生させるために使用できる JDBC 呼び出しまたは SQL ステートメントはありますか?
私が見つけたすべてのリソースから、実際にすべてのデータをクライアントに読み取り、コピーを取得するために再度書き出す必要があるようです。往復を節約したいと思います。
大きなオブジェクトは、そのoid
.
INSERT INTO pg_largeobject_metadata (lomowner, lomacl)
SELECT lomowner, lomacl
FROM pg_largeobject_metadata
WHERE oid = <my_old_oid>
RETURNING oid AS my_new_oid;
INSERT INTO pg_largeobject (loid, pageno, data)
SELECT <my_new_oid>, pageno, data
FROM pg_largeobject
WHERE loid = <my_old_oid>;
my_old_oid
ラージ オブジェクトの既知の oid
my_new_oid
は、最初の挿入ステートメントによって返される oid です。
サーバー側のlo_import関数とlo_export関数を見てください。データをデータベースからファイルシステムに移動してから元に戻す必要がありますが、少なくともそれはサーバーのファイルシステムであり、クライアントのファイルシステムではありません。