我需要将SSIS包“数据流脚本组件”中创建的大文本存储到数据类型为varchar(max)的目标列。因此,我将其用作输出列文本流[DT_TEXT]。在C#脚本中,我调用方法
AddBlobData(Encoding.Default.GetBytes(LARGE STRING WITH LINE BREAKES))
所有信息都存储在表中,但是不考虑换行符。
我尝试了不同的编码,例如ASCII,UTF8。另外,我尝试在每行\r\n
的末尾添加,但结果没有变化。
StringBuilder sb = new StringBuilder();
sb.AppendLine("This is the first line.");
sb.AppendLine("This is the second line.");
sb.AppendLine("This is the third line.");
DataBuffer.AddRow();
DataBuffer.VarcharMaxColumn.AddBlobData(Encoding.Default.GetBytes(sb.ToString()));
结果:
这是第一行。这是第二行。这是第三行。
行之间有很大的空间,但我希望看到的不是换行符。
有人知道如何解决此问题吗?
答案 0 :(得分:1)
我找到了自己问题的答案。似乎不可能将换行符从数据流脚本组件移到表中。不使用DT_STR
,也不使用DT_TEXT
。我花大量时间调查此事,发现这很困难。虽然,但我希望我错了。
同时,我正在使用一种变通方法,将各个行存储为不同的行,并将它们存储在临时表中。之后,我使用TSQL加入它们以将它们存储在目标表中。
SELECT T2.[KeyColumn]
,(SELECT [VarcharMaxColumn] + CHAR(13) AS [text()]
FROM [dbo].[TemporaryTable] AS T1
WHERE T1.[KeyColumn] = T2.[KeyColumn]
ORDER BY [SortOrder]
FOR XML PATH(''), TYPE)
,T2.[AdditionalColumn]
FROM [dbo].[TemporaryTable] AS T2
GROUP BY T2.[KeyColumn], T2.[AdditionalColumn]
答案 1 :(得分:0)
尝试不使用字符串生成器:
import UIKit
import Firebase
import FirebaseDatabase
class ViewController: UIViewController {
var ref: DatabaseReference!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
ref = Database.database().reference()
}
}