java - 从PLSQL调用JAVA FTP程序

标签 java plsql ftp

根据我的要求,我开发了一个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知之甚少。有人可以在这里指导我吗?

最佳答案

您的问题是 Oracle 数据库 10.2 中的 Oracle JVM 使用 Java 1.4.x ,因此在 1.4 中 String.format () 不存在。 当您使用javac编译时,您使用的是最新版本的java(1.5或更高版本),因此没有问题。 我的建议是删除 String.format() 并且您应该遵循 1.4 java 风格。

关于java - 从PLSQL调用JAVA FTP程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21875202/

相关文章:

oracle - 如何在PL/SQL包中将 session 变量skip_unusable_indexes设置为true以加速表删除/插入?

plsql - 甲骨文 11gR2 : Can I use DBMS_PARALLEL_EXECUTE to run my custom PL/SQL code?

oracle - 字符到数字转换错误

windows - 如何自动 FTP 我正在编辑的文件

iOS:使用 PDF 下载的应用程序,建议使用哪种方法? (ftp,休息, SOAP ,..)

java - 如何使用信号量进行信号发送?

java - 如何使用 SpringJUnit4ClassRunner 使用 RunNotifier 或 RunListener

java - maven可执行jar找不到资源

java - SecureFileTransferClient 性能改进

java - 为什么 Google App Engine 文档强调 JDO 而不是 JPA?