При выполнении моего кода я получаю сообщение об ошибке:
File "c:/not/test/xmlDB.py", line 27, in <module>
element.getAttribute("kodATC")
psycopg2.DataError: value too long for type character varying(255)
Мой код на python:
for element in rc:
if element.getAttribute("rodzajPreparatu") == "ludzki":
if len(element.getAttribute("kodATC")) > 50:
print(len(element.getAttribute("kodATC")))
print(element.getAttribute("kodATC"))
cur.execute("INSERT INTO leki VALUES (%s, %s, %s, %s, %s, %s, %s, %s,
%s, %s)",
(element.getAttribute("id"),
element.getAttribute("nazwaProduktu"),
element.getAttribute("nazwaPowszechnieStosowana"),
element.getAttribute("moc"),
element.getAttribute("postac"),
element.getAttribute("podmiotOdpowiedzialny"),
element.getAttribute("typProcedury"),
element.getAttribute("numerPozwolenia"),
element.getAttribute("waznoscPozwolenia"),
element.getAttribute("kodATC")
))
А длина столбца столбца "kodATC" в моей базе данных Postgres установлена на (255).
Часть, которая печатает значение и длину, печатает следующий вывод:
63
V01AA05;V01AA02;V01AA04;V01AA11;V01AA20;V01AA10;V01AA08;V01AA01
Таким образом, его явно не больше, чем (255).
Однако, когда я выполняю следующий запрос в pgAdmin, он работает просто отлично:
INSERT INTO public.leki VALUES (100085341,'Novo-Helisen Depot','Wyciągi
alergenowe roztoczy kurzu domowego','-','zawiesina do wstrzykiwań','Allergopharma GmbH & Co. KG','NAR','00011','Bezterminowy','V01AA05;V01AA02;V01AA04;V01AA11;V01AA20;V01AA10;V01AA08;V01AA01');