【问题标题】:execute Shell Commands From PL/SQL for copy file from a Network Drive从 PL/SQL 执行 Shell 命令以从网络驱动器复制文件
【发布时间】:2014-12-12 17:53:36
【问题描述】:

我的问题是我的 6i 表单很少,他们的任务很少使用 CMD 和批处理文件,我想将我的应用程序移动到 10g。我正在尝试使用以下代码使用 Java 功能将文件从一个网络驱动器复制到另一个网络驱动器(批处理文件活动示例之一): http://www.oracle-base.com/articles/8i/shell-commands-from-plsql.php

此示例在本地驱动器上运行良好,我可以执行 DIR 命令、移动命令 ro MD 命令,但是当我尝试连接到网络驱动器时它无法正常工作

SET SERVEROUTPUT ON SIZE 1000000
CALL DBMS_JAVA.SET_OUTPUT(1000000);
BEGIN
    host_command (p_command => 'dir p:\temp\');
END;

错误:

Process err :系统找不到指定的路径。

SET SERVEROUTPUT ON SIZE 1000000
CALL DBMS_JAVA.SET_OUTPUT(1000000);
BEGIN
    host_command (p_command => 'dir \\abcde-ef2\osbct01\DATA\Temp\');
END;
/

错误

处理输出:驱动器 \abcde-ef2\osbct01 中的卷是 osbct01 处理

err :File Not Found Process out : Volume Serial Number is B4F6-A843

处理出:处理出:目录

\abcde-ef2\osbct01\DATA\Temp\ 处理:

其实我对host_command ('dir c:\'); 没有任何问题,我可以看到所有的输出,但是当我将其更改为host_command('dir p:\') 时,它无法工作。 (p指的是在我的电脑上映射的网络位置

您能帮我解决我无法访问我的网络驱动器的问题吗?

(ps:我对在我的 oracle 表单中使用 web_util 不感兴趣。)

【问题讨论】:

  • 我已编辑您的问题以移动您在 cmets 中提供的一些信息。你能否回顾一下——并最终修复标签:它被标记为oracle10g,但在你的后记中你谈到了oracle9i。我离开了他们两个——但这可能不是必需的。

标签: java oracle plsql oracle10g oracle9i


【解决方案1】:

我认为您的问题与操作系统对“P:\”的访问权限有关 您正在尝试访问 P 而操作系统阻止了此操作,因为它已断开连接或受密码或受限用户保护。

【讨论】:

  • 好吧,我不拒绝您的想法,但我尝试在那台 PC 上运行相同的脚本,它运行良好。我记得对于 Microsoft SQL,我的 PC 中有一个用户,但对于 Oracle,情况并非如此,而且 Oracle 没有任何 Windows 用户...我使用的是 win server 2003。
猜你喜欢
  • 2019-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-04
  • 1970-01-01
  • 1970-01-01
  • 2016-08-29
  • 1970-01-01
相关资源
最近更新 更多