Check results from command:
DBCC useroptions
There are other very important settings to observe here too:
language us_english
dateformat mdy
datefirst 7
Here in Australia am using settings as per:
language British
dateformat dmy
datefirst 1
Strangely, my process worked on a dev level DB but not SIT level DB, I resolved this issue by adding this line to my stored proc that performs the XML import:
SET QUOTED_IDENTIFIER ON
I also found that this has to be added above the CREATE PROCEDURE statement !
i.e. as per this example:
SET ANSI_WARNINGS ON
GO
SET ANSI_PADDING ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE dbo.P427007ImportAHSAHospitalDetails
@Path VARCHAR(255),
@FileName VARCHAR(255),
@OperatorID VARCHAR(10),
@BranchID VARCHAR(10),
@TillID VARCHAR(10)
AS
BEGIN
SET ANSI_WARNINGS ON
SET ANSI_PADDING ON
SET QUOTED_IDENTIFIER ON
DECLARE @DebugModeFlag CHAR
SELECT @DebugModeFlag = 'N'
----------------------------------------------------------------------------------------
-- Empty the [ImportAHSAHospitalDetails] table
IF @DebugModeFlag = 'Y' PRINT 'Empty the [ImportAHSAHospitalDetails] table';
----------------------------------------------------------------------------------------
DELETE FROM [ImportAHSAHospitalDetails];
DBCC CHECKIDENT ('ImportAHSAHospitalDetails', RESEED, 0);
DELETE
FROM dbo.ImportProviderWarnings
WHERE ImportType = 'Z'
DECLARE @ProcessID INT,
@EffDateText VARCHAR(10),
@EffDate DATETIME,
@FileVersion VARCHAR(10),
@InsertCount INT,
@UpdateCount INT,
@InvalidCount INT,
@ProcessStartTime DATETIME,
@ProcessEndTime DATETIME,
@ProcessDuration INT
DECLARE @HOSDetailsRaw TABLE (HOSDetailsData XML)
DECLARE @HOSDetailsXML XML
SELECT @ProcessStartTime=GETDATE()
----------------------------------------------------------------------------------------
-- Importing Raw Data File
IF @DebugModeFlag = 'Y' PRINT 'Importing Raw Data File';
----------------------------------------------------------------------------------------
INSERT INTO @HOSDetailsRaw EXEC ('SELECT * FROM OPENROWSET ( BULK ''' + @Path + @FileName + ''', SINGLE_CLOB) AS xmlData')
SELECT @HOSDetailsXML = HOSDetailsData FROM @HOSDetailsRaw;
----------------------------------------------------------------------------------------
-- Get the Effective Date
IF @DebugModeFlag = 'Y' PRINT 'Get the Effective Date';
----------------------------------------------------------------------------------------
WITH XMLNAMESPACES( 'http://www.ahsa.com.au/schema/hospitaldetails' AS ns)
SELECT
@EffDateText = @HOSDetailsxml.value('(/ns:HospitalDetails/@effectiveDate)[1]', 'VARCHAR(10)' );
SELECT @EffDate = DATEFROMPARTS (SUBSTRING(@EffDateText, 1, 4), SUBSTRING(@EffDateText, 6, 2), SUBSTRING(@EffDateText, 9, 2));
----------------------------------------------------------------------------------------
-- Get the File Version
IF @DebugModeFlag = 'Y' PRINT 'Get the File Version';
----------------------------------------------------------------------------------------
WITH XMLNAMESPACES( 'http://www.ahsa.com.au/schema/hospitaldetails' AS ns)
SELECT
@FileVersion = @HOSDetailsxml.value('(/ns:HospitalDetails/@fileVersion)[1]', 'VARCHAR(10)' );