2014-10-28 71 views
0

我對java很陌生,實際上今天剛開始使用它是因爲我們正在開發Oracle數據庫,所以我們需要讓它運行java代碼。如何在Java類文件中包含引用(導入XY)?

我已經添加一個簡單的項目,這樣,沒有問題:

public class Test 
{ 
    public static string Result() 
    { 
    return "Test successful!"; 
    } 
} 

我可以將此加載到數據庫中,並與PL/SQL訪問它。 但是,當我上傳實際需要的類時,它在Oracle中被標記爲「INVALID」。 我想這是因爲缺少在java中的引用,例如,我有這些進口:

import java.text.SimpleDateFormat; 
import java.util.Date; 

我認爲這個問題是我的Oracle數據庫缺少所需的DLL(實際上相當於Java中的該)。

現在,有沒有什麼辦法可以編譯我的java類,幷包含我在我的類定義中聲明的所有引用?

非常感謝!

+0

如果您正在使用oracle(或任何其他)數據庫,則必須在代碼中的某處加載數據庫驅動程序。請參閱[Java教程:JDBC數據庫訪問](http://docs.oracle.com/javase/tutorial/jdbc/index.html)以獲取相關介紹。 – Barranka 2014-10-28 16:46:02

+1

我不熟悉你在oracle中的用例,但你可以隨時編譯和打包一個java應用程序/ api到一個jar文件,打包它們的依賴關係,但是你發佈的那些導入應該帶有標準的JRE ...所以除非你使用第三方API,否則我不會看到一個特別有用的jar,並且懷疑它因其他原因而失效。 – 2014-10-28 16:46:13

+0

代碼本身並不與數據庫交互,它實際上就像這樣:\t public static String ReturnSchema(String [] TopicTypes,String [] TopicStati,String [] TopicLabel,String [] SnippetTypes,String [] Priorities,String [] UserIDs) \t {...} 我一定會看看該教程,感謝您發佈。但我不認爲這是因爲當我刪除所有「導入」語句(並相應地更改代碼)時該方法起作用。 – GeorgDangl 2014-10-28 16:50:53

回答

1

所有Java編譯器都將導入語句放入.class文件中。沒有什麼你需要爲此做的。但他們不包括導入的類。因此,您有責任確保Oracle數據庫服務器可以訪問任何自定義類。

Oracle數據庫服務器附帶一個標準的Java虛擬機,因此當您上傳要在服務器上執行的Java代碼時,所有低於java.*的類型都應該可見。

其他類型可能會丟失。閱讀文檔,應該有一個解釋如何上傳一個JAR壓縮文件和你需要的所有類。然後創建這樣一個JAR並上傳它(而不是隻上傳一個類文件)。

0

我認爲Aaron Digullas的答案是最接近的答案,它看起來像數據庫已經可以訪問標準的Java類。

其實,我很抱歉,我認爲我導入java時犯了一個錯誤。

我可以用SQL Developer訪問數據庫,並直接在那裏輸入我的源代碼在我的數據庫中插入一個新的java類,一切正常。

看起來我編譯類時或者在使用「loadjava」命令將java類插入數據庫時​​發生錯誤。