Solved

Missing Newline when importing Excel data

Posted on 2011-02-16
7
1,690 Views
Last Modified: 2012-05-11
I have an excel file that has been created from a Sharepoint data source..

That excel file has a cell that includes a new line in the middle of the data.

When I import that data using the Import wizard in SQL 2008, that new line character is dropped.

Any ideas how I can prevent that from happening?
0
Comment
Question by:MWilliamsBolton
  • 4
  • 3
7 Comments
 
LVL 39

Expert Comment

by:lcohan
ID: 34907598
It may not be "dropped" but not translated correctly. I believe in SQL a "new line" as you describe it you should have a ENTER = CRLF (0D0A in hex) and not just a LF(0A in hex) as new line indicator. MAke sure you have the appropriate data in excel or chose the right import format for line terminator in sql then it should work fine.
0
 

Author Comment

by:MWilliamsBolton
ID: 34908913
I tried to make the problem simpler by using Excel and that hasn't helped - just confused things.

I have written something that looks at every character in the SQL field and outputs the ASCII value.. I can now explain the problem a little better..

I have a text entry in Sharepoint that has a new line in the middle of it. When I export that to Excel and then import the Excel file, the new line is represented as LF (ascii 10).

However, when I import the data into SQL from Sharepoint using SSIS, the new line is replaced with a space (character 32). Do you know how I can stop this happening?
0
 

Author Comment

by:MWilliamsBolton
ID: 34909000
THe results from sharepoint will be passed to SSIS using XML. I suspect this will be part of the problem but I have no idea how to address it.. :-((
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 39

Accepted Solution

by:
lcohan earned 500 total points
ID: 34909620
Do you have the EXCEL document created on a folder accessible to your SQL server? Then you could try import from EXCEL by using SQL commends and OLEDB like in the article below:

http://support.microsoft.com/kb/306397
0
 

Author Comment

by:MWilliamsBolton
ID: 34910189
The problem is I would need to use SSIS services to populate the Excel file. That process uses Sharepoint web services which uses XML. A new line is not recognised as a a new line when it is put in an XML file. It needs encoding which is not possible in Sharepoint without allowing the field to be formatted.. That is my only way forward I think. Thanks for your help..
0
 

Author Closing Comment

by:MWilliamsBolton
ID: 34910191
Thanks for your help..
0
 
LVL 39

Expert Comment

by:lcohan
ID: 34910299
If the input is an XML file and you don't need to mandatory generate your EXCEL file see maybe you could use the SP example below to read in the XML directly into your SQL database:


CREATE PROCEDURE dbo.my_XML_update
      @XMLData NTEXT,
      @myId SMALLINT
AS
SET NOCOUNT ON

-- Retrieve XML data
DECLARE @hocDoc INT

DECLARE @Comments NVARCHAR(2048)

EXEC SP_XML_PREPAREDOCUMENT @hocDoc OUTPUT, @XMLData

-- OPEN XML
-- Param1 is Pointer to DOC
-- Param2 is XML doc hiearchy
-- Param3 is Use Element Structure rather than Attributes


SELECT
      ContactId,
      ContactName
INTO
      #tmpContact
FROM
      OPENXML(@hocDoc, '/root/Contact', 2)
WITH (ContactId  INTEGER, ContactName NVARCHAR(50))

--this is how you populate the contact xml
SELECT Contact.ContactId,
            ISNULL(Contact.ContactName, '') AS ContactName
FROM #tmpContact Contact, Contact C
WHERE      Contact.ContactId = C.Id
ORDER BY      Contact.ContactName
FOR XML AUTO, ELEMENTS

-- Then you can do an INSERT
INSERT INTO Contact (Id, ContactName)
      SELECT ContactId,ContactName
      FROM #tmpContact

--or an UPDATE
UPDATE Contact SET ContactName = t.ContactName
FROM #tmpContact t
                  WHERE      contact.Id = #tmpContact.ContactId
            
-- Drop the temp Table
DROP TABLE #tmpContact

-- and MUST release XML doc to avoid memeory issues
EXEC SP_XML_REMOVEDOCUMENT @hocDoc
GO
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you have heard of RFC822 date formats, they can be quite a challenge in SQL Server. RFC822 is an Internet standard format for email message headers, including all dates within those headers. The RFC822 protocols are available in detail at:   ht…
In this article I will describe the Copy Database Wizard method as one possible migration process and I will add the extra tasks needed for an upgrade when and where is applied so it will cover all.
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.

896 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now