Oracle DBMS_调度器获取/放置文件替代方案

Oracle DBMS_调度器获取/放置文件替代方案,oracle,plsql,ftp,dbms-scheduler,Oracle,Plsql,Ftp,Dbms Scheduler,我有一个目前正在进行的辅助项目,它要求我从远程FTP复制.csv文件并将其保存在本地。我想我会使用DBMS\u调度程序。GET\u文件,但我没有权限。当我问我的经理时,他说我无法获得这样做的特权,应该寻找其他方法 在研究了几天之后,我一直回到DBMS\u调度器,我是运气不好还是我的搜索技能很差 谢谢我不确定您是否愿意为此使用DBMS\u调度程序;据我从文档中了解(我自己从未使用过),FTP站点必须对所有人完全开放;有一个参数destination_permissions,但它只是“保留供将来使用

我有一个目前正在进行的辅助项目,它要求我从远程FTP复制.csv文件并将其保存在本地。我想我会使用
DBMS\u调度程序。GET\u文件
,但我没有权限。当我问我的经理时,他说我无法获得这样做的特权,应该寻找其他方法

在研究了几天之后,我一直回到
DBMS\u调度器
,我是运气不好还是我的搜索技能很差


谢谢

我不确定您是否愿意为此使用
DBMS\u调度程序
;据我从文档中了解(我自己从未使用过),FTP站点必须对所有人完全开放;有一个参数destination_permissions,但它只是“保留供将来使用”,即目前无法指定任何权限

如果我的观点是正确的,那么我同意你的经理的观点,尽管原因不一定相同(似乎你永远不会获得使用
DBMS\u调度器的许可,我希望这是错误的)

还有其他方法可以做到这一点:

  • );这只是一种通过TCP/IP协议进行交互的方法,其中包括一个基于
    UTL\u TCP
    的FTP包以及使用说明。这还需要使用可以编写OS文件的包

  • );我有99%的把握可以用这个连接到FTP;当然可以连接到SFTP/任何服务器。这将需要更多的工作,但从长远来看是值得的。它还需要使用
    UTL\u文件

  • 一个直接FTP的Java存储过程;这可能是最好的办法;使用其中一个创建一个

  • 调用OS命令的Java存储过程;这是最简单的方法,但扩展性最低。早在2008年,Oracle就发布了一个关于从PL/SQL内部调用OS命令的版本,但是还有很多其他的东西(包括)

  • 最后,你可以质疑这是否真的是你想要做的

  • 您使用什么计划程序?它是否有事件驱动的调度?如果是这样,就不需要从Oracle内部使用FTP;使用
    UTL_FILE
    将一个文件写入操作系统,然后从那里写入操作系统命令

  • 另一个文件最初是否在数据库中?如果是这样的话,你不需要提取它。您可以使用直接从数据库收集数据,甚至创建连接或(更简单地说)直接选择数据


  • 我不确定您是否希望为此使用
    DBMS\u调度程序
    ;据我从文档中了解(我自己从未使用过),FTP站点必须对所有人完全开放;有一个参数destination_permissions,但它只是“保留供将来使用”,即目前无法指定任何权限

    如果我的观点是正确的,那么我同意你的经理的观点,尽管原因不一定相同(似乎你永远不会获得使用
    DBMS\u调度器的许可,我希望这是错误的)

    还有其他方法可以做到这一点:

  • );这只是一种通过TCP/IP协议进行交互的方法,其中包括一个基于
    UTL\u TCP
    的FTP包以及使用说明。这还需要使用可以编写OS文件的包

  • );我有99%的把握可以用这个连接到FTP;当然可以连接到SFTP/任何服务器。这将需要更多的工作,但从长远来看是值得的。它还需要使用
    UTL\u文件

  • 一个直接FTP的Java存储过程;这可能是最好的办法;使用其中一个创建一个

  • 调用OS命令的Java存储过程;这是最简单的方法,但扩展性最低。早在2008年,Oracle就发布了一个关于从PL/SQL内部调用OS命令的版本,但是还有很多其他的东西(包括)

  • 最后,你可以质疑这是否真的是你想要做的

  • 您使用什么计划程序?它是否有事件驱动的调度?如果是这样,就不需要从Oracle内部使用FTP;使用
    UTL_FILE
    将一个文件写入操作系统,然后从那里写入操作系统命令

  • 另一个文件最初是否在数据库中?如果是这样的话,你不需要提取它。您可以使用直接从数据库收集数据,甚至创建连接或(更简单地说)直接选择数据


  • 非常感谢您的回复。关于权限,除了管理员之外,没有人拥有它,所以不仅仅是我。我将研究这些其他方法,并尝试找到一个可以使用的方法。至于使用方法,我们希望尝试创建一个过程来检查客户端FTP,并查看是否有任何新文件。当有新文件时,我们希望将其下载到临时文件夹,将其上载到数据库,然后删除该文件。我们都不知道这是否可能,但我正在做研究,看看我们能做些什么。是的,这是不可能的。我每天都不停地这样做(虽然不是用FTPs)。我怀疑你需要的权限比你目前拥有的要多。如果发生这种情况,DBA可能不得不放松钱包。使用FTP不太安全,但您可以创建一个单独的模式,而无需其他权限进行搜索,或者更好地使用一个完全独立的数据库。太棒了,这很好。再次感谢您的回复,非常感谢您的回复。关于权限,除了管理员之外,没有人拥有它,所以不仅仅是我。我将研究这些其他方法,并尝试找到一个可以使用的方法。至于使用方法,我们希望尝试创建一个过程来检查客户端FTP,并查看是否有任何新文件。当有一个新文件时,我们希望将其下载到一个临时文件夹,将其上载到我们的数据库,然后删除