Я проверял, как импортировать файл xml (около 1,3 ГБ) в postgres, однако у меня нет опыта, и я немного затрудняюсь следовать советам, поэтому я искал, если у кого-то есть пошаговый источник или информация.
Сначала я создал новую базу данных, а затем я создал новый скрипт, и я искал и пробовал следующие 2 кода, которые я тестировал, чтобы проверить, есть ли какие-либо из них будет работать, кто-нибудь есть подсказку, что я могу попробовать? Извините за фиктивный вопрос:
https://www.postgresql.org/message-id/5D5B211D-317B-4A62-B625-C2D28323DAFD%40gmx.net Здесь появляется следующая ошибка: «ОШИБКА: синтаксическая ошибка в или около» \ "LINE 34: \ lo_import ' C: \ SASUniversityEdition \ myfolders \ cloud \ drugbank ... ^ SQL состояние: 42601 символов: 723 "
- База данных: drugbank СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ФУНКЦИЮ import.xml_import (loid oid, p_unlink boolean ПО УМОЛЧАНИЮ true) ВОЗВРАЩАЕТСЯ xml ЯЗЫК plpgsql AS $$ объявление содержимого bytea; lfd целое число; lsize integer; begin lfd: = lo_open (loid, 262144); --INV_READ lsize: = lo_lseek (lfd, 0,2); выполнить lo_lseek (lfd, 0,0); содержимое: = loread (lfd, lsize); execute lo_close (lfd);
if p_unlink then
perform lo_unlink(loid);
end if;
return xmlparse(document convert_from(content,'UTF8'));
end;
$$;
DROP TABLE ЕСЛИ СУЩЕСТВУЕТ import.xml_data; Создать таблицу INSERT INTO VALUES import.xml_data ('fulldatabase. xml', import.xml_import (: tmp_lo_id, true));
- банк данных DROP DATABASE;
банк данных CREATE DATABASE с владельцем = postgres ENCODING = 'UTF8' LC_COLLATE = 'English_United States.1252' LC_CTYPE = 'English_United States.1252' TABLESACE pg_default CONNECTION LIMIT = -1;
как я могу создать новый файл XML из существующей базы данных в базе данных PostgreSQL, используя java Здесь не появляется ошибка , но когда я пытаюсь выбрать из базы данных, таблица tbl не найдена "CREATE FUNCTION
Запрос успешно возвращен в 194 mse c."
-- Database: drugbank
CREATE OR REPLACE FUNCTION f_sync_from_xml()
RETURNS boolean AS
$func$
DECLARE
datafile text := 'C:\SASUniversityEdition\myfolders\cloud\drugbank_all_full_database\fulldatabase.xml'; -- only relative path in db dir
myxml xml := pg_read_file(datafile, 0, 100000000); -- arbitrary 100 MB
BEGIN
-- demonstrating 4 variants of how to fetch values for educational purposes
CREATE TEMP TABLE tmp ON COMMIT DROP AS
SELECT (xpath('//some_id/text()', x))[1]::text AS id -- id is unique
, f_xml_extract_val('//col1', x) AS col1 -- one value
, f_xml_extract_val('//col2/', x, 'all') AS col2 -- all values incl. dupes
, f_xml_extract_val('//col3/', x, 'dist') AS col3 -- distinct values
FROM unnest(xpath('/xml/path/to/datum', myxml)) x;
-- 1.) DELETE?
-- 2.) UPDATE
UPDATE tbl t
SET ( col_1, col2, col3) =
(i.col_1, i.col2, i.col3)
FROM tmp i
WHERE t.id = i.id
AND (t.col_1, t.col2, t.col3) IS DISTINCT FROM
(i.col_1, i.col2, i.col3);
-- 3.) INSERT NEW
INSERT INTO tbl
SELECT i.*
FROM tmp i
WHERE NOT EXISTS (SELECT 1 FROM tbl WHERE id = i.id);
END
$func$ LANGUAGE plpgsql;
Большое спасибо