我尝试了一些在网上找到的东西,但不太确定如何处理它们:
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\`
我觉得这还不够正确,但这是一种尝试。
我认为最简单的解决方案是创建一个作业,它应该首先执行一个应用程序引擎来获取附件并将其放置在某个预定的目录中,然后将路径保存在可以从 SQR 访问的表上(从未接触过 SQR)所以真的不知道你是如何在那里进行文件处理的)。