2014-01-20 133 views
1

我一直在嘗試將一些回車從oracle varchar2字段遷移到sql server varchar字段,它根本不起作用。遷移回車從oracle到sql server

我曾在形式的甲骨文合作代碼:

'_ 人作出聯繫 __' || CHR(13)||

它在Oracle中工作得很好,但在SSIS將數據提取到sql server時似乎迷失了方向。

我試圖通過以下:

'Name: ' || nvl2(p.surname || p.forename ,p.surname || ', ' || p.forename,'None Recorded') || 'char(13)' || 
    'Organisation: ' || nvl(a.agency_name, 'None Recorded') 
    as ContactDetails 

但回車最終嵌入作爲文本。如「人作出Contact_ _ _char(13)名稱:無」

我試圖取代以各種方式CHAR(13)在sqlserver的結束,但無法得到的結果比焦炭以外的任何其他(13 )嵌入在文本中。

e.g

update mytable set [ContactDetails] = REPLACE(contactdetails,'char(13)',CHAR(13)) update mytable set [ContactDetails] = REPLACE(contactdetails,'char(13)',''' + CHAR(13) + ''')

之類的東西"select myfield + char(13) + 'test text'給我的結果後,我,所以我可以排除真的愚蠢的錯誤。

任何人都可以提供任何建議嗎?在Oracle或sqlserver結束是好的我:)

+2

在你串聯你有char(13)在引號內,這就是爲什麼它被嵌入爲文本;嘗試刪除引號,它應該沒問題。 – Jayvee

+0

引號是因爲那是pl/sql,它不能識別char(13),只有pl/sql等效的chr(13)。道歉,如果不明確。然而,您的評論促使我找到實際的答案,所以謝謝! – DavidG

回答

2

不知道這是如何不工作,但Jayvee指出我在正確的方向。重新測試這一點,現在的工作......

更新mytable的 集[ContactDetails] = REPLACE(contactdetails, 'CHAR(13)',CHAR(13))

感謝所有

+0

你簡化了代碼嗎?還是僅僅是chr(13)?沒有chr(10)的chr(13)是不尋常的 - 見http://www.codinghorror.com/blog/2010/01/the-great-newline-schism.html –

+0

yep-chr(13)似乎把工作做好。我只是通過pl/sql開發者查看過這段代碼。不同的觀衆可能會有不同的結果。 – DavidG