在Linux機器上安裝執行Oracle(二)(轉)

subid發表於2007-08-12
在Linux機器上安裝執行Oracle(二)[@more@]您就可以自己看看結果如何了:

程式1:

/*
Applet that reads in several rows from a remote Oracle database and presents them in a listbox.
*/
import java.sql.*;
import java.awt.*;
import java.applet.*;
import java.lang.*;
public class JDBCTest extends Applet
{
file://Single-select ListBox
private List employee_list = new List(5, false)
public void init()
{
setLayout(new BorderLayout());
try {
file://Set up the Oracle JDBC driver
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
file://Connect to an Oracle database on machine sforza, using username
file://"scott" and password "tiger"
Connection DB_conn = DriverManager.getConnection
("jdbc:oracle:thin:@sforza:1521:ORCL", "scott", "tiger");
file://Connection DB_conn = DriverManager.getConnection
("jdbc:oracle:thin:scott/tiger@sforza:1521:ORCL");
file://Create a JDBC statement object
Statement statement_obj = DB_conn.createStatement();
file://Execute a query to get the employee names from the test DB
ResultSet results = statement_obj.executeQuery ("select ENAME from EMP");
file://Populate the list box with all the employee names
while (results.next ()){
employee_list.add(results.getString(1));
}
} catch (SQLException e) {
throw new RuntimeException("SQL Exception " + e.getMessage());
}
add(employee_list);
}
}
程式2:

Oracle JDBC driver test

  程式1的大部分都是與具體資料庫無關的JDBC呼叫,依樣畫葫蘆您也可以訪問PostgresQL,主要和Oracle相關的部分是:

Connection DB_conn = DriverManager.getConnection
("jdbc:oracle:thin:@sforza:1521:ORCL", "scott", "tiger");

  注意 Oracle thin JDBC driver中URI的格式:

jdbc:oracle:thin:@::
  如果您想在URI中包括使用者名稱和口令的話:

jdbc:oracle:thin:username/password@::


  同樣的URI還有一個較長的格式:

"jdbc:oracle:thin:@(description=(address=(host= _IP>)(protocol
=tcp)(port=))(connect_data=(sid=)))"

  注意ORCL是系統安裝的預設SID(System Identifier,系統識別符號)。如果您在安裝時使用了其他的SID,在URI裡也用那個SID。$ORACLE_HOME/network/admin/tnsnames.ora包括了Oracle伺服器的埠和SID設定。這是TNS Listener,Oracle網路連線程式的配置檔案。如果您無法透過網路連線資料庫的話,首先應該檢查埠號和SID是否正確,TNS listner是否正常(譯註:lsnrctl status,或者tnsping)。JDBC並不是開發SQL資料庫應用的唯一手段,ANSI標準SQLJ允許在JAVA程式中直接嵌入SQL語句。Oracle for Linux 8.0.5並沒有捆綁SQLJ,但可以作為另一個獨立產品獲得。SQLJ是100%的JAVA,應該在Linux上執行沒有問題,事實上SQLJ在底層使用的就是JDBC,因此可以同任何SQL資料庫互聯,並不限於Oracle。

  希望上面的這些例子能對您的程式設計有所幫助。可惜Oracle for Linux 的程式設計文件相當的少,要不就是隱藏得十分深:) 也許在資料庫程式設計得心應手之前,您得先啃它一兩本書。
PL/SQL

  對SQL的過程性語言擴充套件(PL/SQL)可能是Oracle最著名的特點。這種強大的專業資料庫管理語言允許您對宣告性的SQL加邏輯控制。

  一般,PL/SQL的儲存過程(stored procedure)用命令列的sqlplus,圖形化的Developer/2000(Linux上目前還沒有)或其他工具開發,允許您從Oracle眾多的查詢介面(Oracle Application Server, Python, Perl,JDBC 或者C)訪問。

程式3:

create or replace package stored_sample as
function get_annual_salary (emp_number in number) return number;
end stored_sample;
/
create or replace package body stored_sample as
function get_annual_salary (emp_number in number) return number
is
annual_salary number;
monthly_salary number;
begin
select sal into monthly_salary from emp where empno = emp_number;
annual_salary := monthly_salary * 24;
return (annual_salary);
end get_annual_salary;
end stored_sample;
/

  上面的程式3是儲存程式的一個小示範,它接受一個員工號,返回該員工的年薪。相關的函式get_annual_salary封裝在PL/SQL包sample_package中。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10796304/viewspace-952510/,如需轉載,請註明出處,否則將追究法律責任。

相關文章