SQR 中存在函数

问题描述 投票:0回答:1

在 SQR 中,如果我们想要检查 Oracle PeopleSoft 安装上的服务器上是否存在文件,可以使用该函数

#filexist = 存在($Exact_FileName);

如果存在,那么#filexist将为0。但是如果我没有确切的文件名,因为服务器上的文件可能带有日期时间等后缀,那么有没有办法找到这样的文件。例如,我正在查找以“ABC”开头的文件,但服务器上的文件可能是“ABC_123”。有SQR功能吗?

谢谢你。

丹尼尔

Exists 函数似乎只能搜索具有确切名称(包括确切扩展名)的文件。它似乎无法搜索具有起始字符串的文件。

exists peoplesoft sqr
1个回答
0
投票

利用 Bobby 评论中的想法,我将其放在一起,它可以在 Windows 上运行,但如果需要,可以修改为在 Linux 上运行。

begin-program
    let $comspec = getenv('COMSPEC')
    let $cmd = $comspec || ' /c dir /b ABC*.* > fileList.txt'
    call system using $cmd #error wait
    if #error ! returns non-zero if error
        show 'command error'
        stop
    end-if
    if exists('fileList.txt') ! returns zero if exists
        show 'file does not exist'
        stop
    end-if
    open 'fileList.txt' as 1 for-reading record=512
    while not #end-file
        read 1 into $abc_file:512
        if length($abc_file) ! skips blank at end
            show $abc_file
            ! do what you want with each file here...
        end-if
    end-while
    close 1
    let #status = exists('fileList.txt')
    if #error
        show 'could not delete file'
    end-if
end-program
© www.soinside.com 2019 - 2024. All rights reserved.