【发布时间】:2014-02-19 08:46:27
【问题描述】:
根据我的要求,我开发了一个 java 代码,它将通过 FTP 将文件从本地路径传输到服务器。现在我想将它作为过程/函数存储在数据库中,并想从后端调用它。 以下是我的代码:
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "FtpUrlUpload" AS
package net.codejava.ftp;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.lang.String;
public class FtpUrlUpload {
private static final int BUFFER_SIZE = 4096;
public static void main(String[] args) {
String ftpUrl = "ftp://%s:%s@%s/%s;type=i";
String host = "127.23.21.10";
String user = "samuser";
String pass = "password";
String filePath = "E:/Work/Project.zip";
String uploadPath = "/MyProjects/archive/Project.zip";
ftpUrl = String.format(ftpUrl, user, pass, host, uploadPath);
System.out.println("Upload URL: " + ftpUrl);
try {
URL url = new URL(ftpUrl);
URLConnection conn = url.openConnection();
OutputStream outputStream = conn.getOutputStream();
FileInputStream inputStream = new FileInputStream(filePath);
byte[] buffer = new byte[BUFFER_SIZE];
int bytesRead = -1;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
inputStream.close();
outputStream.close();
System.out.println("File uploaded");
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
我在尝试在数据库中编译它时遇到问题。下面是问题: JAVA SOURCE FtpUrlUpload 的错误:
LINE/COL
--------------------------------------------------------------------------------
ERROR
--------------------------------------------------------------------------------
0/0
FtpUrlUpload:22: cannot resolve symbol
0/0
symbol : method format (java.lang.String,java.lang.String,java.lang.String,java
.lang.String,java.lang.String)
0/0
1 error
LINE/COL
--------------------------------------------------------------------------------
ERROR
--------------------------------------------------------------------------------
0/0
ftpUrl = String.format(ftpUrl, user, pass, host, uploadPath);
0/0
^
0/0
location: class java.lang.String
LINE/COL
--------------------------------------------------------------------------------
ERROR
--------------------------------------------------------------------------------
但我已经使用 JAVAC 编译它,它正在成功编译。我基本上是一名数据库程序员(SQL/PLSQL),并且对 java 有一点了解。任何人都可以在这里指导我。
【问题讨论】:
-
也许您使用的是旧版本的 java
-
我使用的是 java 版本 1.6.0_29。但我尝试使用标准命令“CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED”通过 Oracle 数据库对其进行编译。我的 Oracle 版本是 10.2.0.1.0。