PostgreSQL 9.5を使用して、XMLデータファイルをデータベースにインポートしようとしています。 XMLをロードするには、この関数を here から使用します
CREATE OR REPLACE FUNCTION bytea_import(p_path text, p_result out bytea) as
$$
DECLARE
l_oid oid;
BEGIN
SELECT lo_import(p_path) INTO l_oid;
SELECT lo_get(l_oid) INTO p_result;
PERFORM lo_unlink(l_oid);
END;
$$
LANGUAGE plpgsql;
小さなXMLファイルからデータを正常にロードしましたが、4GBのXMLファイルを試すと、エラーが返されます。
SQL Error [54000]: ERROR: large object read request is too large
Where: SQL statement "SELECT lo_get(l_oid)" PL/pgSQL function
bytea_import(text) line 6 at SQL statement.
Lo_getは非常に大きなデータを読み書きできないようです。バージョン9.4以降、PostgreSQLは最大4TBを処理できると言われていますが、非常に大きなXMLデータファイルをPostgreSQL 9.5にインポートするにはどうすればよいですか?
前もって感謝します
lo_import
が成功し、4GBのラージオブジェクトが作成されます。
ただし、bytea
データ型のハード制限は1GBであるため、これらのコンテンツはbyteaに転送できません。