Skip to content

Commit 1fd2372

Browse files
committed
Revert "Bulk Copy" functionality
This caused significant issues with some SQL data types and resulted in imported failures.
1 parent 7845e21 commit 1fd2372

6 files changed

Lines changed: 127 additions & 190 deletions

File tree

Directory.Packages.props

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,11 @@
4848
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
4949
<PackageVersion Include="NSwag.AspNetCore" Version="14.6.3" />
5050
<PackageVersion Include="Newtonsoft.Json" Version="13.0.4" />
51-
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.3" />
52-
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.15.3" />
53-
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.15.2" />
54-
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.15.1" />
55-
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.15.1" />
51+
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.14.0" />
52+
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.14.0" />
53+
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.14.0" />
54+
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.14.0" />
55+
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.14.0" />
5656
<PackageVersion Include="Phonix" Version="1.0.2" />
5757
<PackageVersion Include="RabbitMQ.Client" Version="7.2.0" />
5858
<PackageVersion Include="Rebus" Version="8.9.0" />
Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,51 @@
11
CREATE PROCEDURE [DeliusStaging].[StageDelius]
2-
@processedFile VARCHAR(50)
2+
@basePath VARCHAR(100), -- Should be in the format /app/delius/{fileName}.
3+
@processedFile VARCHAR(50),
4+
@inContainer VARCHAR(1)
35
AS
4-
BEGIN
5-
SET NOCOUNT ON;
6-
SET DATEFORMAT DMY;
6+
IF @inContainer = 'N'
7+
BEGIN
8+
SET NOCOUNT ON;
9+
SET DATEFORMAT DMY;
10+
END;
711

8-
BEGIN TRANSACTION;
12+
CREATE TABLE #TableNames(Id int Primary Key Identity, fileName VARCHAR(50));
13+
INSERT INTO #TableNames(fileName) VALUES
14+
('AdditionalIdentifier'), ('AliasDetails'), ('Disability'), ('Disposal'), ('EventDetails'), ('Header'), ('MainOffence'),
15+
('OAS'), ('OffenderAddress'), ('OffenderManager'), ('OffenderManagerBuildings'), ('OffenderManagerTeam'),
16+
('OffenderToOffenderManagerMappings'), ('Offenders'), ('OffenderTransfer'), ('PersonalCircumstances'),
17+
('Provision'), ('RegistrationDetails'), ('Requirement');
18+
19+
DECLARE @i int;
20+
DECLARE @sql NVARCHAR(250);
21+
DECLARE @fileName VARCHAR(150);
22+
23+
SET @i = 1;
24+
25+
BEGIN TRANSACTION;
926
BEGIN TRY
10-
DECLARE @retMessage VARCHAR(500);
11-
EXEC [DeliusStaging].[StandardiseData] @retMessage OUTPUT;
27+
WHILE @i <= (Select COUNT(*) FROM #TableNames)
28+
BEGIN
29+
SET @fileName = (SELECT fileName FROM #TableNames WHERE Id = @i);
30+
SET @sql = 'BULK INSERT DeliusStaging.' + @fileName + ' FROM ''' + @basePath + @fileName + '.txt''' +
31+
' WITH (FieldTerminator=''|'', RowTerminator = ''0x0d0a'', MAXERRORS = 1000)';
32+
33+
EXEC (@sql);
34+
SET @i = @i+1;
35+
END
36+
37+
--Standardise Delius Data
38+
Declare @retMessage varchar(500);
39+
EXEC [DeliusStaging].[StandardiseData] @retMessage;
1240

1341
UPDATE [DeliusRunningPictureDb].[DeliusRunningPicture].[ProcessedFiles]
1442
SET [Status] = 'Imported'
1543
WHERE FileName = @processedFile;
16-
44+
1745
COMMIT TRANSACTION;
1846
END TRY
1947
BEGIN CATCH
2048
ROLLBACK TRANSACTION;
2149
THROW;
2250
END CATCH
23-
RETURN 0
24-
END
51+
RETURN 0

src/Database/OfflocStagingDb/Stored Procedures/Import.sql

Lines changed: 57 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,75 @@
22
-- Author: Daniel Fenelon
33
-- Create date: 18/03/2024
44
-- Description: Import of the OffLoc files
5-
-- Note: File loading removed - data is now staged via SqlBulkCopy
6-
-- in the DbInteractions service. This procedure handles
7-
-- post-load standardisation and status update only.
85
-- =============================================
96

107
CREATE PROCEDURE [OfflocStaging].[Import]
8+
@basePath VARCHAR(100),
119
@processedFile VARCHAR(50)
1210
AS
1311
BEGIN
1412

1513
SET NOCOUNT ON;
1614
SET DATEFORMAT DMY;
15+
16+
CREATE TABLE #TableNames
17+
(
18+
Id INT PRIMARY KEY IDENTITY,
19+
fileName VARCHAR(50) NOT NULL
20+
);
21+
INSERT INTO #TableNames
22+
(
23+
fileName
24+
)
25+
VALUES
26+
('Activities'),
27+
('Addresses'),
28+
('Agencies'),
29+
('Assessments'),
30+
('Bookings'),
31+
('Employment'),
32+
('Flags'),
33+
('Identifiers'),
34+
('IncentiveLevel'),
35+
('Locations'),
36+
('MainOffence'),
37+
('Movements'),
38+
('OffenderAgencies'),
39+
('OffenderStatus'),
40+
('OtherOffences'),
41+
('PersonalDetails'),
42+
('PNC'),
43+
('PreviousPrisonNumbers'),
44+
('SentenceInformation'),
45+
('SexOffenders');
46+
47+
DECLARE @i INT;
48+
DECLARE @sql VARCHAR(250);
49+
DECLARE @fileName VARCHAR(150);
50+
51+
SET @i = 1;
1752

1853
BEGIN TRANSACTION;
1954
BEGIN TRY
20-
DECLARE @retMessage VARCHAR(500);
21-
EXEC [OfflocStaging].[StandardiseData] @retMessage OUTPUT;
55+
WHILE @i <= (SELECT COUNT(*)FROM #TableNames)
56+
BEGIN
57+
SET @fileName =
58+
(
59+
SELECT fileName FROM #TableNames WHERE Id = @i
60+
);
61+
SET @sql
62+
= N'BULK INSERT OfflocStaging.' + @fileName + N' FROM ''' + @basePath + @fileName + '.txt'''
63+
+ N' WITH (FieldTerminator = ''|'', RowTerminator = ''0x0d0a'', MAXERRORS = 1000)';
64+
EXEC (@sql);
65+
66+
SET @i = @i + 1;
67+
END;
68+
DECLARE @stringDate CHAR(8);
69+
SET @stringDate = SUBSTRING(@processedFile, 18, 8);
70+
71+
--Standardise Offloc Data
72+
Declare @retMessage varchar(500);
73+
EXEC [OfflocStaging].[StandardiseData] @retMessage;
2274

2375
UPDATE [OfflocRunningPictureDb].[OfflocRunningPicture].[ProcessedFiles]
2476
SET [Status] = 'Imported'

0 commit comments

Comments
 (0)