在oracle表格中的Excel上传/下载工具不起作用

在Oracle Forms 10G / 11G应用程序的excel下载/上传活动中,遇到下面的消息。

“由于没有足够的可用内存或磁盘空间,Microsoft office excel无法打开或保存更多的文档。
要提供更多内存,请closures不再需要的工作簿或程序。 要释放磁盘空间,请删除不再需要的文件。“

我们可以看到excel会话是在服务器上创build的。

注意:低代码在开发环境中是完美的,但不能在客户的地方工作。

-- Start Excel application:=OLE2.CREATE_OBJ('Excel.Application'); -- OLE2.SET_PROPERTY(application, 'Visible', 'True'); -- Return object handle to the Workbooks collection workbooks:=OLE2.GET_OBJ_PROPERTY(application, 'Workbooks'); -- Add a new Workbook object to the Workbooks collection workbook:=OLE2.GET_OBJ_PROPERTY(workbooks,'Add'); -- Return object handle to the Worksheets collection for the Workbook worksheets:=OLE2.GET_OBJ_PROPERTY(workbook, 'Worksheets'); -- Get the first Worksheet in the Worksheets collection -- worksheet:=OLE2.GET_OBJ_PROPERTY(worksheets,'Add'); args:=OLE2.CREATE_ARGLIST; OLE2.ADD_ARG(args, 1); worksheet:=OLE2.GET_OBJ_PROPERTY(worksheets,'Item',args); OLE2.DESTROY_ARGLIST(args); OPEN c_round_off_rules; FETCH c_round_off_rules INTO v_round_off_rules; CLOSE c_round_off_rules; BEGIN SELECT x_company_name INTO v_company_name FROM gem01_company WHERE c_company_cd = :GLOBAL.COMPANY_CODE; EXCEPTION WHEN OTHERS THEN v_company_name := ' '; END; --Here data will be loaded into excel file. -----TILL HERE-- --message('autofit columns'); -- Autofit columns and rows range := OLE2.GET_OBJ_PROPERTY( worksheet,'UsedRange'); range_col := OLE2.GET_OBJ_PROPERTY( range,'Columns'); OLE2.INVOKE( range_col,'AutoFit' ); OLE2.RELEASE_OBJ( range ); OLE2.RELEASE_OBJ( range_col ); -- create a file on server location ---- --message('create file'); v_as_file:= WEBUTIL_FILE_TRANSFER.Get_Work_Area ||userenv('SESSIONID') || '.xls'; --message('create arguments'); args := OLE2.CREATE_ARGLIST; OLE2.ADD_ARG( args, v_as_file ); OLE2.INVOKE( worksheet,'SaveAs',args ); OLE2.DESTROY_ARGLIST( args ); -- message('application close'); -- Quit application OLE2.INVOKE( workbook ,'Close'); OLE2.INVOKE(application,'Quit'); -- message('application quit'); -- Release the OLE objects OLE2.RELEASE_OBJ(worksheet); OLE2.RELEASE_OBJ(worksheets); OLE2.RELEASE_OBJ(workbook); OLE2.RELEASE_OBJ(workbooks); OLE2.RELEASE_OBJ(application); --message('object rleased'); p_filename := client_get_file_name('C:\', file_filter=>'Excel files (*.xls)|*.xls|', dialog_type=>save_file)||'.xls' ; --message(p_filename); --message('get file location'); --:file_name :=p_filename; -- Transfer the file to given Path ----- v_trf_stat := WEBUTIL_FILE_TRANSFER.AS_To_Client_With_Progress(p_filename, v_as_file, 'PentaFinancial','File Transfer from Application Server'); --message('file transfered at new location'); IF v_trf_stat THEN SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT'); synchronize; message('Writing to excel file complete.'); message(' ',no_acknowledge); -- ELSE synchronize; message('Writing to excel file incomplete.'); message(' ',no_acknowledge); -- END IF; -- Focus to the original location go_block(cur_block); go_record(cur_record); go_item(cur_block||'.'||cur_item); HOST('DEL ' || v_as_file,screen); END;