我的oracle apex表格有问题。
问题是我想以1种形式同时添加多条记录。我已经读过,最好的方法是使用csv文件但是没有教程可以做到这一点。
答案 0 :(得分:0)
Oracle是一个数据库,将文件与数据库相结合总是很棘手,并且由于显而易见的原因而没有得到广泛的支持。存储文件并提交下载是一回事。获取Oracle数据库以打开文件并读取和处理内容是另一回事。这肯定是可能的,但特别是将它与Apex应用程序结合起来我认为你会遇到很多挑战,例如安全限制。
然而,退出文件并不一定意味着退出CSV。您只需在页面上提供大文本输入,用户就可以在其中复制粘贴大型CSV字符串。然后可以由数据库提交和处理。为此,您可能需要创建一个在提交页面后被触发的进程。通过此过程,您可以解析CSV数据并在表中插入多行。对于XML或JSON这样的事情也可以这样做。
但是,谁在生成此CSV?要求用户构造CSV不是非常用户友好。它可能很复杂且容易出错。如果CSV是由另一个应用程序生成的,那么是否有办法绕过Apex并直接将CSV传递给数据库?
如果不需要单个基于文本的数据载体,我怀疑是否阅读了您的描述,为什么不简单地保留您的表单,但允许用户提交多个表单?是否足以在每次提交时插入一条记录,然后使用批处理来查询这些记录并开始一次格式化一个记录?
如果您只是希望用户能够输入多台计算机而无需为每台计算机提交页面,这也是可能的,但您必须保留一些标准的Apex功能并实现更多自定义的javascript和PL / SQL功能。 Apex只允许静态数量的页面项,需要定义设计时间。因此,如果要动态添加文本框和选择列表等字段,则必须使用javascript。您可以从定义一个在页面加载时呈现一行输入字段的区域开始,并在其下创建一个链接,说“添加另一行”,这将在现有的一行下呈现新的输入字段,并重复此次用户需要的时间。 这会照顾用户界面。现在,当用户输入了他想要的所有数据时,我们需要提交所有这些数据并将其输入数据库。所以是的,此时我们可能必须从输入字段中获取所有这些数据并将其转换为单个字符串。这都需要在您的javascript代码中完成客户端。然后,您可以使用Apex页面项API将此生成的字符串分配给单个页面项,使用$ x(...)或$ v(...)函数。然后提交页面,此时将触发页面进程。然后定义一个页面进程,该进程将解析页面项中的数据,并使用该数据在数据库中插入多行。