我是PL / SQL的新手,我必须每月转换一个2M文本文件,我从我们管理的其他部门获得。 我的问题是将文件从具有大量LF终结符的UNIX中的单行转换为DOS / Windows中近1500条较小的行,并在每行之后使用CR / LF终结符。
我知道我可以使用UTL_FILE工具进行操作,因为要转换的文件长度超过32767字节。
所以我决定使用DBMS_LOB包,但坦率地说我不知道如何使用DBMS_LOB中的Procedures和Funktions来实现我的目的。
过去我使用Acces-VBA执行此任务。
这是我的源代码,以防你们中的任何人知道如何在Acces-VBA中编码,并且能够告诉我如何在PL / SQL中编写代码,或者至少发布到代码类似于我的代码的站点可以解决我的问题。
'文件从Unix- / Linux格式转换为DOS / Windows格式,如果也是相反的话,那么参数“处理”不应该是“unix2dos”的值。
Sub ConvertToWindows(SourceFolder As String, SourceFile As String, TargetFolder As String, TargetFile As String, treatment As Integer, Optional DeleteSource As Boolean)
Dim Contents As String
Dim ReadFile As String
Dim d As Integer
ReadFile = SourceFolder & SourceFile
d = FreeFile
Open ReadFile For Binary As #d
Contents = Space(LOF(d))
Get #d, , Contents
Close #d
Open TargetFolder & TargetFile For Output As #d
If treatment = unix2dos Then ' check conversion type
Contents = Replace(Contents, Chr(10), vbCrLf)
Else
Contents = Inhalt & Chr(10)
End If
Contents = Left(Contents, Len(Contents) - 2)
Print #d, Contents
Close #d
If DeleteSource = True Then
Kill SourceFolder & SourceFile
End If
End Sub
感谢您的帮助。