| /*
jdbcthin-server-side.sql */
/*
Dated: 3-Jan-2001 */
/*
Author: Teddy Graham, teddy@exzilla.net */
/*
Subject: Oracle JDBC: Java Database Administration */
/*
Edition: 1.0 */
/* */
/*
The local user requires JAVAUSERPRIV or the appropriate
permission */
/*
(something like java.net.SocketPermission <remote_host>
resolve). */
/*
*/
CREATE
OR REPLACE JAVA SOURCE NAMED "jdbcthin" AS
import
java.sql.*;
import
oracle.jdbc.driver.*;
public
class jdbcthin {
static public void test (String user, String password,
String database)
throws SQLException {
// Load the Oracle JDBC driver.
// But apparently this is not required for the server-side
thin driver.
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
String connectString = "jdbc:oracle:thin:@" + database;
System.out.print("Connecting to " + connectString + "...
");
System.out.flush();
Connection conn =
DriverManager.getConnection(connectString, user, password);
System.out.println("Connected.");
// Create a statement.
Statement stmt = conn.createStatement();
// Do the SQL "Hello World" thing.
ResultSet rset = stmt.executeQuery(
"select
'Hello OS user ' || osuser || ' on machine ' || machine
|| " +
"'
running program ' || program" +
"
from v$session" +
"
where sid = (select sid from v$mystat where rownum <
2)");
while (rset.next())
System.out.println(rset.getString(1));
System.out.println("Your server-side thin JDBC connection
succeeded.");
// Close the result set, statement and connection.
rset.close();
stmt.close();
conn.close();
}
}
/
CREATE
OR REPLACE PROCEDURE jdbcthin (
user VARCHAR2,
password VARCHAR2,
database VARCHAR2)
AS
LANGUAGE JAVA NAME 'jdbcthin.test(
java.lang.String,
java.lang.String,
java.lang.String)';
/
set
serveroutput on format wrapped
CALL
dbms_java.set_output(2000)
/
CALL
jdbcthin('&user', '&password', '&database')
/
|