本人现在为了把每天生成出来的数据 通过SFTP 的方式传到服务器上,但是遇到一些问题。1.现在数据每天是有 Oracle 中自动跑出,把文件生成到指定的目录下面。2.为了把每天备份出来的数据自动SFTP上传到服务器上面,需要编写脚本。3.因UTL_FTP包执行效率太低,考虑每天数据将近有1G左右。所以考虑Oracle 调用 JAVA 用 java实现此功能。4.我看到网上介绍,java制作SFTP 需要用到 import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties; import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
这些包,但是Oracle提供的LIB下面只有 java.io 和 java.util 包 并没有 com.jcraft.* 包所以比较棘手。
后来我将rt.jar包解压,把 com.jcraft.* 放入里面再次打包。但是重启Oracle后,Oracle中仍然找不到包。
========================================================================================================
因程序比较急
望知道的朋友们给我个提示。
1.如果有朋友知道如何在Oracle中添加JAR包,请和我说下。
2.我在做备份的时候,Oracle的生成路径Directory只能写死,如果有朋友知道如何在编写Oracle Procedure 的时候,JOB每天自动生成数据的时候,Oracle能自动创建好文件夹方式,也请给我提示。
我必重谢~~~另多加分~~
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties; import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
这些包,但是Oracle提供的LIB下面只有 java.io 和 java.util 包 并没有 com.jcraft.* 包所以比较棘手。
后来我将rt.jar包解压,把 com.jcraft.* 放入里面再次打包。但是重启Oracle后,Oracle中仍然找不到包。
========================================================================================================
因程序比较急
望知道的朋友们给我个提示。
1.如果有朋友知道如何在Oracle中添加JAR包,请和我说下。
2.我在做备份的时候,Oracle的生成路径Directory只能写死,如果有朋友知道如何在编写Oracle Procedure 的时候,JOB每天自动生成数据的时候,Oracle能自动创建好文件夹方式,也请给我提示。
我必重谢~~~另多加分~~
http://translate.google.com.hk/translate?hl=zh-CN&langpair=en|zh-CN&u=http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/consolehelp/jars.html
begin
execute immediate 'create directory utl_file_dir as ''c:\temp''';
end;
另外,导出数据用也有很多方法,给出你的ORACLE版本和具体操作系统环境和要求,然后找一个较好的方案。
你真猥琐~~这个办法你也能想到~~小弟真佩服~呵呵~
但是你有没有想到一个问题,create directory 是创建一个指定的目录,而不是创建一个目录。
如果这样,例如
E:\databackup\
20100401 --文件夹
20100402 --文件夹
20100403 --文件夹
20100404 --文件夹
... --文件夹我每天要新增一个文件夹,把当天备份的数据放进去。用你这种方法,ORACLE就不能找到最新那天的路径。
此时我就要手动去服务器上面创建一个当天的目录,那么我就失去了自动化的意义。
我是在 LINUX 上面创建了一个 shell 脚本自动上传FTP~~
但是有个问题就是,我不好在服务器上面创建 当天的目录。所以我要在本地把目录创建好,然后再将目录连文件一起上传至接口机上。
例如: 本地备份机
E:\databackup\
20100401 --文件夹
20100402 --文件夹
20100403 --文件夹
20100404 --文件夹
... --文件夹FTP接口机
..\jsgame\data\
20100401\day\数据文件存放处 --文件夹
20100402\day\数据文件存放处 --文件夹
20100403\day\数据文件存放处 --文件夹
20100404\day\数据文件存放处 --文件夹
..... --文件夹所以我的FTP上传路径只能定在JSGAME\DATA\ 目录下,但是我每天是需要在服务器上面有20100401\day\的文件目录,然后再在里面放数据文件。
故然我要在本地每天创建目录。
我只是菜鸟``如果不对不要骂我 呵呵