我需要编写一个 sqr,使用附加到 Peoplesoft 页面的文件中的数据

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

我尝试了一些在网上找到的东西,但不太确定如何处理它们:

     SELECT utl_raw.cast_to_varchar2(dbms_lob.substr(file_data,1000,1))
     FROM psfile_attdet
     WHERE ATTACHSYSFILENAME = $sysfilename

这会返回数据,但我不知道它的文件格式如何。 sqr 运行成功

    SELECT UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(UTL_COMPRESS.LZ_UNCOMPRESS(file_data),2000,1))
    FROM psfile_attdet
     WHERE ATTACHSYSFILENAME = $sysfilename

我收到以下错误:

          (SQR 5528) ORACLE OCIStmtExecute error 29294 in cursor 2:  

          ORA-29294: A data error occurred during compression or uncompression. 

          ORA-06512: at "SYS.UTL_SYS_COMPRESS", line 60 

          ORA-06512: at "SYS.UTL_SYS_COMPRESS", line 230 

          ORA-06512: at "SYS.UTL_COMPRESS", line 89

我在网上查找了错误,但并没有真正理解它,因为我是应用程序开发人员而不是 DBA。`

有人能告诉我如何访问 Peoplesoft 中的附件并使用 SQR 中的数据吗?`

 <Snippet>
 Begin-Procedure download-file

 Begin-Select
 !utl_raw.cast_to_varchar2(dbms_lob.substr(file_data,1000,1)) &file

UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(UTL_COMPRESS.LZ_UNCOMPRESS(file_data),2000,1)) &file

do get-file-invoices
let $PSfile = &file

FROM psfile_attdet 
 WHERE ATTACHSYSFILENAME = $sysfilename

  End-Select

 End-procedure !download-file\`

我觉得这还不够正确,但这是一种尝试。

blob attachment peoplesoft sqr
1个回答
0
投票

我认为最简单的解决方案是创建一个作业,它应该首先执行一个应用程序引擎来获取附件并将其放置在某个预定的目录中,然后将路径保存在可以从 SQR 访问的表上(从未接触过 SQR)所以真的不知道你是如何在那里进行文件处理的)。

© www.soinside.com 2019 - 2024. All rights reserved.