Onderstaande error krijg ik bij het verladen van data van Microsoft SQL Server naar PostgreSQL. Het aantal tabellen en primary keys klopt wel, veel van de tabellen hebben een dubbele primary key waardoor dat komt.
Dit zou echter niet uit moeten maken aangezien dit op de destination database staat en niet in de source database. Ik probeer maar een subset van 37 tabellen te verladen.
Hoe kan ik deze melding repareren?
itgenpsr061: The number of 33,625 primary keys found must be smaller than the total of 16,046 tables and 37 views. Please check that the user can actually query tables or views in the database ''.
Hierbij de code (tabelnamen gewijzigd i.v.m. vertrouwelijkheid van de klant)
begin
create or replace table [navision].[KLANT_BE$G_L Entry]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_BE$G_L Entry]@mss
;
create or replace table [navision].[KLANT_BE$G_L Account]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_BE$G_L Account]@mss
;
create or replace table [navision].[KLANT_BE$Vendor]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_BE$Vendor]@mss
;
create or replace table [navision].[KLANT_LIVE$Sales Invoice Header]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Sales Invoice Header]@mss
;
create or replace table [navision].[KLANT_LIVE$Sales Invoice Line]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Sales Invoice Line]@mss
;
create or replace table [navision].[KLANT_LIVE$DBduct Group]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$DBduct Group]@mss
;
create or replace table [navision].[KLANT_LIVE$Item Status Link]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Item Status Link]@mss
;
create or replace table [navision].[KLANT_live_item_category]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_live_item_category]@mss
;
create or replace table [navision].[KLANT_LIVE$Item_Special Group Link]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Item_Special Group Link]@mss
;
create or replace table [navision].[KLANT_LIVE$Customer]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Customer]@mss
;
create or replace table [navision].[KLANT_LIVE$Item]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Item]@mss
;
create or replace table [navision].[KLANT_LIVE$Sales Cr_Memo Header]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Sales Cr_Memo Header]@mss
;
create or replace table [navision].[KLANT_LIVE$Sales Cr_Memo Line]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Sales Cr_Memo Line]@mss
;
create or replace table [navision].[KLANT_LIVE$Sales Header]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Sales Header]@mss
;
create or replace table [navision].[KLANT_LIVE$Sales Line]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Sales Line]@mss
;
create or replace table [navision].[KLANT_LIVE$Posted Assembly Header]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Posted Assembly Header]@mss
;
create or replace table [navision].[KLANT_LIVE$Posted Assembly Line]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Posted Assembly Line]@mss
;
create or replace table [navision].[KLANT_LIVE$Posted Whse_ Shipment Header]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Posted Whse_ Shipment Header]@mss
;
create or replace table [navision].[KLANT_LIVE$Sales Shipment Header]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Sales Shipment Header]@mss
;
create or replace table [navision].[KLANT_LIVE$Sales Shipment Line]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Sales Shipment Line]@mss
;
create or replace table [navision].[KLANT_LIVE$Posted Whse_ Shipment Line]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Posted Whse_ Shipment Line]@mss
;
create or replace table [navision].[KLANT_LIVE$Country_Region]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Country_Region]@mss
;
create or replace table [navision].[KLANT_LIVE$Dimension Value]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Dimension Value]@mss
;
create or replace table [navision].[KLANT_LIVE$Item Ledger Entry]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Item Ledger Entry]@mss
;
create or replace table [navision].[KLANT_LIVE$Transfer Header]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Transfer Header]@mss
;
create or replace table [navision].[KLANT_LIVE$Transfer Line]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Transfer Line]@mss
;
create or replace table [navision].[KLANT_LIVE$Assembly Header]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Assembly Header]@mss
;
create or replace table [navision].[KLANT_LIVE$Assembly Line]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Assembly Line]@mss
;
create or replace table [navision].[KLANT_LIVE$Reservation Entry]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Reservation Entry]@mss
;
create or replace table [navision].[KLANT_LIVE$Sales Price]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Sales Price]@mss
;
create or replace table [navision].[KLANT_BE$Fixed Asset]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_BE$Fixed Asset]@mss
;
create or replace table [navision].[KLANT_LIVE$Salesperson_Purchaser]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Salesperson_Purchaser]@mss
;
create or replace table [navision].[KLANT2$Acc_ Schedule Line]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT2$Acc_ Schedule Line]@mss
;
create or replace table [navision].[KLANT_LIVE$Value Entry]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_LIVE$Value Entry]@mss
;
create or replace table [navision].[KLANT_BE$Value Entry]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_BE$Value Entry]@mss
;
create or replace table [navision].[KLANT_BE$Cust_ Ledger Entry]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_BE$Cust_ Ledger Entry]@mss
;
create or replace table [navision].[KLANT_BE$Dimension Set Entry]@pg
as
select * from [DB_80_07_LIVE].[dbo].[KLANT_BE$Dimension Set Entry]@mss
;
end;
Ik probeer de tabellen weg te schrijven op een nieuw (leeg) schema genaamd navision in PostgreSQL.
De foutmelding treedt op bij het uitvoeren van de bovenstaande applicatiemodule (SQL).
Zojuist met een nieuwe (lege) PostgreSQL database geprobeerd (dit sluit hopelijk ook uit dat het aan Microsoft SQL Server ligt), maar daar krijg ik de volgende error.
An error occured - 5be3e3c6-edf6-4c93-bf60-5cfaf19d5bfd
itgenase094: The table can not be created. (navision.KLANT_BE$G_L Entry).
itgenpsr026: Maintenance of the table 'navision.KLANT_BE$G_L Entry' failed.
42602: invalid name syntax
POSITION: 117.
Ik vermoed dat dit te maken heeft met het gebruik van square brackets []. Dit zou met double quotes " moeten gebeuren in PostgreSQL, maar dat lijkt niet mogelijk in de SQL Editor van Invantive. Is hier een omweg voor, of moet ik de tabelnamen veranderen richting de destination (PostgreSQL)?
Zojuist ook geprobeer om de spaties uit de tabelnamen te halen, maar dan krijg ik onderstaande error:
An error occured - 27cc6c8f-ceac-451a-bfff-3c8f470dbe44
itgenase094: The table can not be created. (navision.KLANT_BE$G_L_Entry).
itgenpsr026: Maintenance of the table 'navision.KLANT_BE$G_L_Entry' failed.
42P01: relation "navision.klant_be$g_l_entry_seq" does not exist
POSITION: 117.
Laatste probleem hierbij was de schema aanduiding navision.. Nadat ik deze heb weggehaald wordt alles wel correct geladen (in het public-schema).
Is het mogelijk om een database te maken met een PostgreSQL-datacontainer en de PostgreSQL DDL-statements toe te voegen die gebruikt worden om het schema navision en de autorisaties hierop te maken?
Controleer s.v.p. dat ook dan bij uitvoering van bijvoorbeeld hjet volgende Invantive SQL-statement leidt tot itgenase094:
Bij uitvoeren van aangegeven SQL statement krijg ik onderstaande error.
itgensql056: Syntax error between the two '***' on line 1, column 31: create table [navision].NAAM@pg****** Error: no viable alternative at input 'create table [navision].NAAM@pg'.
Inmiddels zijn de andere problemen deels opgelost, loop nu alleen nog tegen het probleem aan dat de kolomnamen zijn veranderd naar kleine letters. Is het mogelijk om de hoofdletters uit de bron in tabel en kolomnamen te behouden?