Loading OS NGD CSV files into databases
It is recommended that you have a basic understanding of database terminology before following the guides in the tabs below. The guides contain generic instructions, and it is recognised that there are multiple ways to load CSV files into databases which may be more suitable to your environment and existing processes.
Prior to loading the data into a database, it is necessary to create the relevant tables in the database. We have supplied the DDL statements that can be accessed in our OS NGD Resources GitHub repository.
These instructions are based on PostgreSQL version 14, but should work for all supported versions. The instructions assume that you have set-up your database with the PostGIS spatial extension.
Once connected to your PostgreSQL database, with the relevant schema and table created, the CSV file can be loaded with the following SQL statement using the COPY command:
PostGIS will automatically store the geometry data that is supplied in Well-Known Text (WKT) format.
There is a known bug affecting PostgreSQL versions 11, 12 and 13 in Windows environments, where the COPY
command cannot load files larger than 4GB. As a workaround, version 14 (or later) of the COPY
command can be used to load data into the affected database versions.
For reference, the error message states ERROR: could not stat file.
These instructions are based on Microsoft SQL Server 2019, but should work for all supported versions.
Once connected to your SQL Server database, with the relevant schema and table created, the CSV file can be loaded with the following SQL statement using the BULK INSERT command:
It is not possible to BULK INSERT
the geometries directly in their Well-Known Text (WKT) format.
However, it is possible to change the destination geometry
column to a nvarchar(max)
type, and then either post process the table or use a a computed column to generate a geometry type column (see code examples below).
It is not possible to load OS NGD CSV files into an Oracle database using the default SQL*Loader utility. The geometries are supplied in Well-Known Text (WKT) format and some of them are too large for SQL*Loader to process.
However, with the relevant schema and table created in your Oracle database, the CSV file can be loaded using ETL (extract, transform, load) tools, for example, GDAL or FME.