Search code examples
sql-servermonetdb

How to copy table from MS SQL Server 2012 to MonetDB


Table dump file is about 30Gib. So, when I load its contents into MonetDB, I get several exceptions ( "Null byte in input", "unexpected ON, expecting '=' in: set ansi_nulls on", unexpected '[' in: "create table [" and etc.), because this file is formated in mssql-way. How to copy from mssql to monetDb?

UPD: To copy from csv, I use these scripts in SQuirreL

CREATE TABLE "PageTracking"(
    "PageTrackingID" bigint,
    "TimeStamp" date,
    "Hash" varchar(50) ,
    "UserIP" varchar(16) ,
    "UserAgent" varchar(1000) ,
    "UserID" varchar(16) ,
    "SessionID" varchar(16) ,
    "Page" varchar(20) ,
    "DocId" int ,
    "Url" varchar(500) ,
    "Referer" varchar(500) ,
    "Rank" int ,
    "Total" int 
) 

And then

COPY OFFSET 2 INTO "PageTracking" FROM 'f:\tmp\pagetracking.csv'

When I use MonetDb Client, I receive:

sql>copy offset 2 into sys.pagetraking from 'f:\tmp\pagetracking.csv';
COPY INTO: no such table 'pagetraking'

Solution

  • I would suggest going via the CSV route. The CREATE TABLE syntax is different between the systems. Also, error messages like Null byte in input suggest some data cleansing is required as well.