當初oracle提供這個功能是為了讓java的程式師可方便寫的一些功能在oracle中使用,這樣子也就可不必學pl/sql了
但我暫時還沒有找到效能上的差別是多少的官方資料。
不過有做過就記錄一下,以免以後真的遇到還要上網找資料
但我暫時還沒有找到效能上的差別是多少的官方資料。
不過有做過就記錄一下,以免以後真的遇到還要上網找資料
1、先寫一個很簡單的java程式 (檔名叫 test.java,請注意大小寫)
public class test { public static void main(String[] a) { System.out.println("this is java"); } } |
2、編譯成class
D:\>javac test.java |
3、查看一下是否ok
D:\>dir test.* 磁碟區 D 中的磁碟是 本機磁碟 磁碟區序號: 7098-7819 目錄: D:\ 2007-03-14 11:38a 414 test.class 2007-03-14 11:37a 120 test.java 2 個檔案 534 位元組 0 個目錄 9,290,588,160 位元組可用 |
4、進sqlplus了
D:\>sqlplus sys/binhu as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 3月 14 11:41:20 2007 Copyright (c) 1982, 2005, Oracle. All rights reserved. 連線至閒置的執行處理. SQL> startup ORACLE 執行處理已啟動. Total System Global Area 201326592 bytes Fixed Size 1248092 bytes Variable Size 92275876 bytes Database Buffers 104857600 bytes Redo Buffers 2945024 bytes 資料庫已掛載. 資料庫已開啟. |
5、建立相關的別名跟設定
SQL> create or replace directory java_dir as 'd:\'; 已建立目錄. SQL> create or replace java class using bfile(java_dir,'test.class'); 2 / 已建立 Java. SQL> create or replace procedure test_java as language java name 'test.main(java.lang.String[])'; 2 / 已建立程序. |
6、準備測試了
SQL> set serveroutput on size 2000 SQL> call dbms_java.set_output(2000); 已完成呼叫. SQL> execute test_java; this is java 已順利完成 PL/SQL 程序. SQL> call test_java(); this is java 已完成呼叫. |
心得:
使用上還算簡單,但真正上線的db會有多少人讓java在上面跑呢,因為這又多了一個變數
到時db掛了,還要多花心力去查看是否是由java引起的問題=.="
除非oracle有大力推行跟公司有規定使用的話,不然我還是不會讓java跑在db上的
source: http://blog.roodo.com/mywork/archives/2851269.html
沒有留言:
張貼留言