Я использую postgres для создания нескольких сценариев INSERT для вставки данных из одной базы данных в другую.
Оператор выдает ошибку неправильного синтаксиса для целого числа.
Вот скрипт, который я пытаюсь запустить
select 'INSERT INTO public."HoldingMasters"(
"AccountID", "AssetID", "CreatedDate", "DateAcquired", "GainsLongTerm", "LotNumber", "Managed", "ModifiedDate", "Sweep", "UID", "Units", "UnitsPledged", "IsModified", "ModifiedCount")
SELECT ' + CAST("AccountID" as integer) + ',' + CAST("AssetID" as integer) + ',' + "CreatedDate" + ',' + "DateAcquired" + ',' + "GainsLongTerm" + ',' + CAST("LotNumber" as integer) + ',' + "Managed" + ',' + "ModifedDate" + ',' + "Sweep" + ',' + CAST("UID" as integer) + ',' + "Units" + ',' + ',' + "UnitsPledged" + ',' + "IsModifed" + ',' + CAST("ModifiedCount" as integer) +
'WHERE NOT EXISTS(SELECT "UID" from "HoldingMasters" where "UID" = ' + CAST("UID" as integer) +')'
as script from "HoldingMasters";
И это дает мне ошибку:
ERROR: invalid input syntax for integer: "INSERT INTO public."HoldingMasters"(
"AccountID", "AssetID", "CreatedDate", "DateAcquired", "GainsLongTerm", "LotNumber", "Managed", "ModifiedDate", "Sweep", "UID", "Units", "UnitsPledged", "IsModified", "ModifiedCount")
SELECT "
LINE 1: select 'INSERT INTO public."HoldingMasters"(
^
SQL state: 22P02
Character: 8
Некоторые из этих столбцов являются целыми числами, и я не уверен, какой синтаксис использовать для правильного приведения в выражении INSERT в моих сценариях.
Я пытался:
SUM (NULLIF ("AccountID", '') :: integer)
"AccountID" :: целое число
to_number - похоже, не работает на моей машине
Я выполнил этот оператор INSERT сам по себе без каких-либо проблем, кажется, у него возникают проблемы, когда он работает в генераторе «как скрипт». Я не видел, чтобы кто-нибудь пробовал этот синтаксис в генераторе скриптов.
Буду признателен за любую помощь.