首页 文章

在不使用UTL_FILE的情况下从/向PL / SQL中的文件读/写数据

提问于
浏览
1

是否可以在不使用Oracle 10g中的UTL_FILE包的情况下从/向PL / SQL块中的文件读取/写入数据?

我目前有一个包含一组主键(大约28000)的文件,我需要查询一个表,以获取需要写入文件的其他数据 . 我使用的架构非常受限制,没有任何创建权限 . 此外,没有为UTL_FILE中的过程设置具有必要读/写权限的目录才能正常工作 . 要求DBA提供额外的权限将花费太多时间 .

有办法解决这个问题吗?

提前致谢 .

[Edit] 我无法将数据加载到表中 . Don 't have a table to load into or the privileges to create one. I think this is the most difficult part of the problem. How to query the database if the criteria for the query can' t方便地成为查询本身的一部分(即在单独的文件中)?如果主键的数量很小,我可以生成一些select语句来提取sqlplus中的数据(使用spool),但是28000似乎太大了 .

2 回答

  • 2

    如果你不能设置目录,我会说你运气不好 . 您要求在数据库服务器上读取和创建文件 . 这是您的DBA应该了解的内容 .

    您确定需要服务器上的文件吗?您可以将客户端的文件加载到表中(使用通常的客户端工具),并从那里读取/写入数据吗?

    Update:

    我无法将数据加载到表中 . 没有要加载的表或创建一个表的权限 . 如果主键的数量很小,我可以生成一些select语句来提取sqlplus中的数据(使用spool),但是28000似乎太大了 .

    28000并不是那么多 . 在客户端循环 .

  • 0
    • 您可以使用UTL_TPC程序包使用TCP数据包写入FTP服务器 .

    • 最好在运行包之前将主键加载到表中,以允许pl / sql读/写主键表 .

    • 用20000个密钥编写一个巨大的pl / sql程序作为插入语句来构建内存表并使用它来查询/等等 . 然后使用sqlplus来调整结果 . 或邮件包将结果通过电子邮件发送给您自己 .

相关问题