如何转换约。 PL / SQL中从UNIX格式到Windows格式的2M字符文件?

时间:2015-12-08 12:46:40

标签: windows oracle unix data-conversion

我是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

感谢您的帮助。

0 个答案:

没有答案