- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Oracle APEX 4.1.1 构建一个简单的查看应用程序。要显示的信息位于不同数据库的表中,然后是包含 APEX 应用程序访问的架构的数据库。使用 View (RemoteTableView) 和数据库链接访问此远程表。 View 按预期工作,包括 Oracle 无法通过数据库链接选择 LOB 列项目。
根据 Oracle Application Express Advanced Tutorials 中的说明,在 APEX 应用程序中,我定义了一个程序 (DownloadFiles),每当需要从 View 下载 BLOB 时都会运行该程序。
当 APEX 应用程序构建在包含 BLOB 项目的现有表上时,这非常有效,没有问题。
但是,在 RemoteTableView 上,过程略有不同。将额外的代码行添加到 DownloadFiles 过程中,每当调用 View 中的项目进行下载时,将 RemoteTableView 中的实际 BLOB 插入到临时表 (TempTable) 中。然后在 TempTable 上调用 DownloadFile 以下载(现在本地存储的)BLOB。 (这样做是为了避免通过 DB-Link 直接选择 LOB 项)。没有提交。
不幸的是,APEX 应用程序在调用项目下载时失败,并显示“找不到此网页。未找到该网址的网页:.../f?p=101:7:1342995827199601::NO::P7_DOC_ID :3001"。
对这个问题的研究已被证明是徒劳的。插入过程按预期工作(在 PL/SQL Developer 中),并且可以轻松下载任何其他本地表中的任何其他 BLOB。
因此问题是,为什么 APEX 应用程序不能处理这种情况。使用临时表或插入语句时是否有我应该注意的限制?此外,下载 LOB 对象的最佳实践是什么。
详细说明插入行和下载 BLOB 的过程。 (我尝试过不同的方法)。这个 PL/SQL 块被称为'on load before header',:P2_BLOB_ID 用标识符列值填充到 BLOB 列。
DECLARE
v_mime VARCHAR2(48);
v_length NUMBER(38);
v_file_name VARCHAR2(38);
Lob_loc BLOB;
BEGIN
DELETE FROM [TemporaryTable];
--
INSERT INTO [TemporaryTable]( [attr1]
, [attr2]
, [blob]
, [mime] )
SELECT [attr1]
, [attr2]
, [blob]
, [mime]
FROM [RemoteTableView]
WHERE [attr1] = :P2_BLOB_ID
AND ROWNUM = 1;
--
SELECT [mime]
, [blob]
, [attr1]
, DBMS_LOB.GETLENGTH( [blob] )
INTO v_mime
, lob_loc
, v_file_name
, v_length
FROM [TemporaryTable]
WHERE [attr1] = :P2_BLOB_ID;
--
owa_util.mime_header( nvl(v_mime,'application/octet'), FALSE );
htp.p('Content-length: ' || v_length);
htp.p('Content-Disposition: attachment; filename="'||replace(replace(substr(v_file_name,instr(v_file_name,'/')+1),chr(10),null),chr(13),null)|| '"');
owa_util.http_header_close;
wpg_docload.download_file( Lob_loc );
END;
最佳答案
尝试添加 apex_application.stop_apex_engine后 wpg_docload
称呼。这将避免 HTTP header 的进一步输出,可能会因为生成更多的顶点代码而破坏您的下载。
owa_util.mime_header( nvl(v_mime,'application/octet'), FALSE );
htp.p('Content-length: ' || v_length);
htp.p('Content-Disposition: attachment; filename="'||replace(replace(substr(v_file_name,instr(v_file_name,'/')+1),chr(10),null),chr(13),null)|| '"');
owa_util.http_header_close;
wpg_docload.download_file( Lob_loc );
apex_application.stop_apex_engine;
Are there limitations when working with temporary tables or insert statements that I should be aware of?
HTTP, the protocol over which HTML pages are most often delivered, is a stateless protocol. A web browser is only connected to the server for as long as it takes to download a complete page. In addition, each page request is treated by the server as an independent event, unrelated to any page requests that happened previously or that may occur in the future. To access form values entered on one page on a subsequent page, the values must be stored as session state. Oracle Application Express transparently maintains session state and provides developers with the ability to get and set session state values from any page in the application.
2.4.1 What Is a Session?
A session is a logical construct that establishes persistence (or stateful behavior) across page views. Each session is assigned a unique identifier. The Application Express engine uses this identifier (or session ID) to store and retrieve an application's working set of data (or session state) before and after each page view.
Because sessions are entirely independent of one another, any number of sessions can exist in the database at the same time. A user can also run multiple instances of an application simultaneously in different browsers.
Sessions are logically and physically distinct from Oracle database sessions used to service page requests. A user runs an application in a single Oracle Application Express session from log in to log out with a typical duration measured in minutes or hours. Each page requested during that session results in the Application Express engine creating or reusing an Oracle database session to access database resources. Often these database sessions last just a fraction of a second.
关于oracle - 顶点 : Download BLOB from temporary table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22940521/
我正在尝试从 Azure 容器中删除 blob。我能够连接到它并列出此问题中代码后面的所有 blob:Upload and Delete Azure Storage Blob using azure-
我正在尝试从 Azure 容器中删除 blob。我能够连接到它并列出此问题中代码后面的所有 blob:Upload and Delete Azure Storage Blob using azure-
运行我的 azure 函数(用于读取 azure blob 存储)后出现错误。 错误是 ID 0dad768d-36d4-4c1a-85ae-2a5122533b3c fail: Func
运行我的 azure 函数(用于读取 azure blob 存储)后出现错误。 错误是 ID 0dad768d-36d4-4c1a-85ae-2a5122533b3c fail: Func
我正在使用 C# 控制台应用程序 (.NET Core 3.1) 从 Azure Blob 存储读取大量图像文件并生成这些图像的缩略图。新图像将保存回 Azure,并将 Blob ID 存储在我们的数
我没有在网上看到任何有关如何获取位于 BlobContainerClient 内特定目录内的所有 blob 的示例。 以前,我使用的是 Microsoft.Azure.Storage 软件包,但这些软
我正在使用 C# 控制台应用程序 (.NET Core 3.1) 从 Azure Blob 存储读取大量图像文件并生成这些图像的缩略图。新图像将保存回 Azure,并将 Blob ID 存储在我们的数
我没有在网上看到任何有关如何获取位于 BlobContainerClient 内特定目录内的所有 blob 的示例。 以前,我使用的是 Microsoft.Azure.Storage 软件包,但这些软
我正在编写一些代码,允许用户使用麦克风录制自己的声音,然后将录音上传到 Azure Blob 存储。 为了录制音频,我使用类似于下面的代码 let recordedBlobs = []; this.m
当前使用:https://github.com/Azure/azure-sdk-for-go 概述:我当前正在从 azure blob 存储中下载一个 blob,解析该 blob,然后将转录的 blo
正在观看 this video about how to design Tinder ,在 06:50 提出了关于文件与 BLOBS 的观点。 我想知道大二进制文件和 BLOB(二进制大对象)之间有什
目前我有 hibernate JPA HSQLDB 来自动创建我的数据库表。 如何告诉 JPA 或 Hibernate 将字符串保存为 clob/blob 字段?即一个很长的字符串。到目前为止我找不
我有一个一维 NumPy 数组,其中包含一些“坏”值。我想剔除它们。 每个坏值的邻居只是“顽皮”,但我也想剔除它们。 对不良值的可靠测试是询问: arr<0.1 但是,(我能想到的)对于顽皮值的唯一可
查看有关获取 Blob 和获取 Blob 属性的 MSDN 文档。两个请求看起来相同 "https://myaccount.blob.core.windows.net/mycontainer/mybl
我有 2 个 Blob 存储,一个在 eastus,一个在 canadaeast,我想将一个 .vhd 从 eastus 复制到 canadaeast。我去了 eastus,在我想要复制的 blob
所以场景如下: 我有多个 Web 服务实例,用于将 blob 数据写入 Azure 存储。我需要能够根据收到的时间将 blob 分组到容器(或虚拟目录)中。偶尔(最坏的情况是每天)旧的 blob 会被
在 Azure Blobstorage 中,我有 100 个 Blob,但我只想列出前 10 个 Blob。我该怎么做? 我写的{maxResults:1}没有任何效果,它仍然列出了我所有的 Blob
我们当前的代码使用 Azure SDK 1.8,为了生成共享访问签名,它将首先调用 CloudBlobContainer.GetBlobReference(),然后调用 CloudBlob.GetSh
我有大量文件存储在公共(public) Azure blob 容器中,所有这些文件都通过我的 ASP.NET MVC Web 应用程序中的 HTML 直接引用。例如,blob 存储中一个图像的路径如下
我有一个 NodeJS 后端,它使用 Microsoft 的官方 Blob 存储库 (@azure/storage-blob) 来管理我的 Blob 存储: https://www.npmjs.com
我是一名优秀的程序员,十分优秀!