我正在使用Oracle APEX API,apex_data_export.export上的一个按钮点击下载输出的SQL查询作为一个平面文件通过传递SQL查询通过连接多个表和传递页面项目在哪里子句的p_sql_query参数。由于表数据有数百万条记录,API要么是采取更多的时间来处理输出和下载文件或它是导致超时错误。因此,想知道是否有任何替代方法来实现这一点,通过自定义pl/sql过程,无论是通过创建一个包或一个过程。感谢任何帮助。谢谢你,Richa
apex_data_export.export
p_sql_query
8wigbo561#
Apex不会是我将 * 数百万行 * 加载到Oracle中的第一选择。我会使用SQL*Loader。该实用程序非常非常快。在与您的数据库版本相关的Oracle文档中阅读它(尽管,多年来大多数基本功能没有太大变化)。基本上,
出口时:我建议你写一个存储过程,它利用内置的UTL_FILE包,并利用其功能创建文件。缺点是它将被创建在一个文件夹中,(最有可能)驻留在数据库服务器上,因此您必须与DBA讨论如何创建它,创建Oracle目录,给将要使用它的用户授予读/写权限,然后**你就可以使用它了。读:创建一个导出文件。有什么好的?它是一个PL/SQL程序单元,它允许你做各种事情--不仅连接任意数量的表,而且还可以执行某些计算(如果你必须这样做的话),一旦你准备好了一切--在结果文件中放一行(这里我们还有另一个缺点:你会一行一行地做)。但是,尝试它不会花费太多。DBA可以在一两分钟内完成他们的工作。您将在半小时内编写一个过程。给予一个尝试。
UTL_FILE
vohkndzv2#
看看zip_util,它是开源APEXIR_XLSX APEX插件的一部分,可以从交互式报表创建Excel电子表格。我们在工作中经常使用该插件;我偶尔会浏览一下zip-util的代码,我认为它可以单独使用来做你想做的事情。
2条答案
按热度按时间8wigbo561#
Apex不会是我将 * 数百万行 * 加载到Oracle中的第一选择。我会使用SQL*Loader。该实用程序非常非常快。
在与您的数据库版本相关的Oracle文档中阅读它(尽管,多年来大多数基本功能没有太大变化)。
基本上,
**[编辑]**实际上,事实证明,你想 * 导出 * 数据,而不是 * 导入 *。我不知道是什么让我有不同的想法;但是,如果你想听听我对 * 导入 * 的看法,你已经得到了:)
出口时:我建议你写一个存储过程,它利用内置的
UTL_FILE
包,并利用其功能创建文件。缺点是它将被创建在一个文件夹中,(最有可能)驻留在数据库服务器上,因此您必须与DBA讨论如何创建它,创建Oracle目录,给将要使用它的用户授予读/写权限,然后**你就可以使用它了。读:创建一个导出文件。有什么好的?它是一个PL/SQL程序单元,它允许你做各种事情--不仅连接任意数量的表,而且还可以执行某些计算(如果你必须这样做的话),一旦你准备好了一切--在结果文件中放一行(这里我们还有另一个缺点:你会一行一行地做)。
但是,尝试它不会花费太多。DBA可以在一两分钟内完成他们的工作。您将在半小时内编写一个过程。给予一个尝试。
vohkndzv2#
看看zip_util,它是开源APEXIR_XLSX APEX插件的一部分,可以从交互式报表创建Excel电子表格。我们在工作中经常使用该插件;我偶尔会浏览一下zip-util的代码,我认为它可以单独使用来做你想做的事情。