Maven们
我必须处理电子邮件中收到的原始数据。这是一次请求,所以我试图找出简单有效的方法来处理它,而无需创建表。
原始数据有3列,最多可达100条记录。请参见下面的原始数据样本:
x1c 0d1x的数据
我创建了一个接受参数的存储过程:participant_id, category_nmbr, group_id
并创建必要的事务。
我试图找出创建一个 Package 程序(匿名PL/SQL块)的最佳方法,该程序从原始数据中读取每一行,并使用上述参数调用存储过程。
我确实研究了复合数据类型,但是,我希望尽可能地保持实现的简单性,而不创建表和类型对象(如果可能的话)
感谢帮助!
TIA
2条答案
按热度按时间i2loujxw1#
如果不想将数据加载到表中,则可以选择创建一个外部表,该表是存储在文件系统目录中的文件的 * 指针 *,并且可以通过Oracle目录对象访问。
由于您不能自己创建它(作为普通用户),您必须与DBA交谈,以便为您准备(创建目录,授予权限)。
然后创建一个外部表,并使用已经编写的过程处理它。 Package 器过程(或匿名PL/SQL块)很简单-只需循环所有行,例如
字符串
如果您更愿意将数据加载到表中,则可以使用SQL Loader实用程序,该实用程序不需要DBA操作,因为文件可以驻留在您自己的PC上。您将创建目标表、控制文件(它指示实用程序如何加载数据)、执行加载操作,并在数据准备就绪后使用我之前发布的PL/SQL块。
还有一个选择是使用
UTL_FILE
内置包读取文件内容,但它同样需要目录对象,并且可能比以前的选项更复杂。dbf7pr2w2#
这是为我工作的解决方案。我必须将每列数据转换为CSV,然后对每列使用以下查询来获取数据
字符串