Hallo Robert!
Zur Ergänzung noch ein Link wie du ein Java-Objekt
serialisierst und damit speichern kannst:
Danke, das funktioniert jetzt soweit. Ich habe jetzt eine kleine Java-Anwendung geschrieben, die ein Objekt in eine Datei speichert und wieder auslesen kann.
Mein Problem ist jetzt, daß ich nicht weiß, wie ich die Oracle-DB mit Java ansprechen kann. Ich habe folgende Angaben: Datenbankname, Port, Rechnername, Username und Passwort.
// Load the Oracle JDBC driver:
Class.forName ("oracle.jdbc.driver.OracleDriver");
// Connect to the database:
Connection conn =
DriverManager.getConnection ("jdbc:oracle:oci8:Rechnername:stuck\_out\_tongue:ort", "Username", "Passwort");
Stimmt das so? Wo muß ich den Datenbanknamen angeben? Was muß ich sonst noch beachten? Ich habe bis jetzt noch nie mit Oracle, sondern immer nur mit Java und Access gearbeitet.
Im Oracle Technet habe ich zwei gute Code-Beispiel gefunden (siehe unten). Irgendwie sind mir aber noch einige Sachen unklar. In der Klasse Ex2_66 wird doch nur der String „Some Text To Write“ als CLOB gespeichert, und keine Datei, oder? Wie müßte es aussehen, wenn ich eine Datei speichern will?
Grüße, Tanja
-----------------------------------------------
// Example: Write Data to a LOB Using Java (JDBC)
// Java IO classes:
import java.io.InputStream;
import java.io.OutputStream;
// Core JDBC classes:
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
// Oracle Specific JDBC classes:
import oracle.sql.\*;
import oracle.jdbc.driver.\*;
public class Ex2\_66
{
static final int MAXBUFSIZE = 32767;
public static void main (String args [])
throws Exception
{
// Load the Oracle JDBC driver:
Class.forName ("oracle.jdbc.driver.OracleDriver");
// Connect to the database:
Connection conn =
DriverManager.getConnection ("jdbc:oracle:oci8:@", "samp", "samp");
// It's faster when auto commit is off:
conn.setAutoCommit (false);
// Create a Statement:
Statement stmt = conn.createStatement ();
try
{
CLOB lob\_loc = null;
String buf = new String ("Some Text To Write");
ResultSet rset = stmt.executeQuery (
"SELECT intab.transcript FROM TABLE(
SELECT mtab.inseg\_ntab FROM multimedia\_tab mtab
WHERE mtab.clip\_id = 1) intab WHERE intab.segment=1 FOR UPDATE");
if (rset.next())
{
lob\_loc = ((OracleResultSet)rset).getCLOB (1);
}
OracleCallableStatement cstmt = (OracleCallableStatement)
conn.prepareCall ("BEGIN DBMS\_LOB.OPEN( ?,
DBMS\_LOB.LOB\_READWRITE); END;");
cstmt.setCLOB(1, lob\_loc);
cstmt.execute();
long pos = 0; // This is the offset within the CLOB where the data is to be written
long length = 0; // This is the size of the buffer to be written.
// This loop writes the buffer three times consecutively:
for (int i = 0; i