Oracle DB Abfrage

Status
Nicht offen für weitere Antworten.

Astra

Aktives Mitglied
Hallo, hat jemand nen Link oder nen paar Tips wie man auf eine Oracle-Datenbank zugriff erhällt, also öffnen, schließen, auslesen?
Ich weiss, icst jetzt ziemlich grob, aber irgendwo muss ich ja anfangen.
Gruß
Astra
 
B

bygones

Gast
wie (nahezu) mit jeder anderen DB auch - über ein SQL Dialekt...

bei oracle fallen mir da sqlplus bzw. PL/SQL ein...

oder meinst du von Java aus? was im prinzip nichts anderes ist... anfrage in sql und das in java code rein setzen
 

Astra

Aktives Mitglied
Ja, die sql-statements sind klar, ich denke da nur an die anbindung über java zu einer Oracle-DB. Diese DB ist zudem auf einer Unix Maschine. Und darauf dann nen Zugriff über Ports,Username,Passwort. Vom Prinzip her ähnlich wie mit TOAD nur halt über Java. Ich will ja nicht jedes Rad von vorn entwickeln. Gibts da nicht so allgemein gültige Klassen oder etwas ähnliches?
 

Bleiglanz

Gesperrter Benutzer
du wirst lachen, aber normalerweise ist bei einer oracle installation eine doku mit dabei, und da drin sind auch ein paar JDBC Beispiele

Gibts da nicht so allgemein gültige Klassen oder etwas ähnliches?
ja, die JDBC Api
 

abollm

Top Contributor
deathbyaclown hat gesagt.:
[..]
bei oracle fallen mir da sqlplus bzw. PL/SQL ein...

oder meinst du von Java aus? was im prinzip nichts anderes ist... anfrage in sql und das in java code rein setzen
<klugscheiss>
SQL*Plus ist ein Oracle-Tool, dass den Zugriff vom Client zum Oracle-RDBMS gestattet, Hiermit können sowohl (einfache) SQL-Statements (SELECT-, DDL- oder DML-Statements) als auch solche, die mit PL/SQL-Sprachelementen arbeiten, verwendet werden.
Bei PL/SQL handelt es sich um eine prozedurale Sprache, die von Oracle geschaffen wurde, um die (4GL-Sprache) SQL um prozedurale Elemente (Schleifen, GOTOs, IF-THEN-ELSE etc.) zu erweitern. Es ist klar, dass es sich bei PL/SQL um eine proprietäre Sprache handelt.
</klugscheiss>
 

Astra

Aktives Mitglied
Das hab ich so gefunden:

Anbindung an Oracle
Oracle-JDBC-Type-4-Treiber laden von:
http://technet.oracle.com/software/tech/java/sqlj_jdbc/software_index.htm
"Oracle8i JDBC Drivers for use with JDK 1.2.x"
"JDBC-Thin, 100% Java (classes12.zip, 1.5MB)".

Datei classes12.zip nicht entzippen, sondern:
CLASSPATH muss Oracle-JDBC-Treiber beinhalten:
set CLASSPATH=<...>\classes12.zip

(eventuell reicht Kopieren des JDBC-Treibers nach %JAVA_HOME%\jre\lib\ext).

Connection-Url nach dem Schema 'drivername@HostName_or_IP:port:sid' (siehe auch unten 'Programmierbeispiele'):
Class.forName( "oracle.jdbc.driver.OracleDriver" );
cn = DriverManager.getConnection( "jdbc:eek:racle:thin:mad:MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );

Programmierbeispiel:


Code:
import java.io.*;
import java.sql.*;

public class ShowSqlTable
{
  // Extend String to length of 14 characters
  private static final String extendStringTo14( String s )
  {
    final String sFillStrWithWantLen = "              ";
    final int    iWantLen = sFillStrWithWantLen.length();
    if( s.length() < iWantLen )
      s = (s + sFillStrWithWantLen).substring( 0, iWantLen );
    return s;
  }

  // main()
  public static void main( String[] argv )
  {
    String sDbDriver=null, sDbUrl=null, sTable=null, sUsr="", sPwd="";
    if( 3 <= argv.length )
    {
      sDbDriver = argv[0];
      sDbUrl    = argv[1];
      sTable    = argv[2];
      if( 4 <= argv.length )  sUsr = argv[3];
      if( 5 <= argv.length )  sPwd = argv[4];
    }
    else
    {
      try {
        BufferedReader in = new BufferedReader(
                            new InputStreamReader( System.in ) );
        System.out.println( "Name des Datenbanktreibers eingeben (z.B. org.gjt.mm.mysql.Driver):" );
        sDbDriver = in.readLine();
        System.out.println( "Url der Databank eingeben (z.B. jdbc:mysql://localhost:3306/MyTest):" );
        sDbUrl = in.readLine();
        System.out.println( "Name der Tabelle eingeben:" );
        sTable = in.readLine();
      } catch( IOException ex ) {
        System.out.println( ex );
      }
    }
    if( null != sDbDriver && 0 < sDbDriver.length() &&
        null != sDbUrl    && 0 < sDbUrl.length()    &&
        null != sTable    && 0 < sTable.length()    )
    {
      try {
        // Select fitting database driver and connect:
        Class.forName( sDbDriver );
        Connection cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
        Statement  st = cn.createStatement();
        ResultSet  rs = st.executeQuery( "select * from " + sTable );
        ResultSetMetaData rsmd = rs.getMetaData();
        int i, n = rsmd.getColumnCount();
        for( i=0; i<n; i++ )
          System.out.print( "+---------------" );
        System.out.println( "+" );
        for( i=1; i<=n; i++ )    // Attention: first column with 1 instead of 0
          System.out.print( "| " + extendStringTo14( rsmd.getColumnName( i ) ) );
        System.out.println( "|" );
        for( i=0; i<n; i++ )
          System.out.print( "+---------------" );
        System.out.println( "+" );
        while( rs.next() )
        {
          for( i=1; i<=n; i++ )  // Attention: first column with 1 instead of 0
            System.out.print( "| " + extendStringTo14( rs.getString( i ) ) );
          System.out.println( "|" );
        }
        for( i=0; i<n; i++ )
          System.out.print( "+---------------" );
        System.out.println( "+" );
        rs.close();
        st.close();
        cn.close();
      } catch( ClassNotFoundException ex ) {
        System.out.println( ex );
      } catch( SQLException ex ) {
        System.out.println( ex );
      }
    }
  }
}


Was muss ich tun wenn ich nur auf eine oracle Datenbank zugreifen will, öffnen möchte und ein SQL-Statement durchgeben will?
Ich weiss das klingt jetzt zwar etwas faul von mir, aber ich hab hier noch so viel zutun, mir brennt der Kopf.. :(
 

DP

Top Contributor
abollm hat gesagt.:
deathbyaclown hat gesagt.:
[..]
bei oracle fallen mir da sqlplus bzw. PL/SQL ein...

oder meinst du von Java aus? was im prinzip nichts anderes ist... anfrage in sql und das in java code rein setzen
<klugscheiss>
SQL*Plus ist ein Oracle-Tool, dass den Zugriff vom Client zum Oracle-RDBMS gestattet, Hiermit können sowohl (einfache) SQL-Statements (SELECT-, DDL- oder DML-Statements) als auch solche, die mit PL/SQL-Sprachelementen arbeiten, verwendet werden.
Bei PL/SQL handelt es sich um eine prozedurale Sprache, die von Oracle geschaffen wurde, um die (4GL-Sprache) SQL um prozedurale Elemente (Schleifen, GOTOs, IF-THEN-ELSE etc.) zu erweitern. Es ist klar, dass es sich bei PL/SQL um eine proprietäre Sprache handelt.
</klugscheiss>

<klugscheiss>
er hat auch nicht sql*plus sondern sicherlich sql*net gemeint
</klugscheiss>
 

Astra

Aktives Mitglied
Wie krieg ich denn ne select Anweisung hin die ich auch in ner Hashtable speichern kann?

Ist nur ne Tabelle mit 2 Spalten, so ne Art Übersetzung.

Oder kann ich zweimal eine Spalte abfragen, in jeweils einem Resultset speichern und zu ner Hashtable hinzufügen?
Das ganze natürlich dann auch in ner schleife, damit ich alle zeilen abfrage.
 

abollm

Top Contributor
DP hat gesagt.:
[..]
<klugscheiss>
er hat auch nicht sql*plus sondern sicherlich sql*net gemeint
</klugscheiss>

Das glaube ich 1. nicht und 2. bliebe dann die nächste Frage, warum er ausgerechnet SQL*Net (man beachte auch hier den "*") mit PL/SQL in Verbindung gebracht hat.

Das ist ja noch kruder.

SCNR
 

DP

Top Contributor
while(rs.next())
{
System.out.println(rs.get("spalte1"));
}

bzw.

while(rs.next())
{
String toll = rs.getString("spalte1"));
}

oder

while(rs.next())
{
String toll = rs.getString(int spalte));
}


oder

*RTFM*
 

DP

Top Contributor
abollm hat gesagt.:
DP hat gesagt.:
[..]
<klugscheiss>
er hat auch nicht sql*plus sondern sicherlich sql*net gemeint
</klugscheiss>

Das glaube ich 1. nicht und 2. bliebe dann die nächste Frage, warum er ausgerechnet SQL*Net (man beachte auch hier den "*") mit PL/SQL in Verbindung gebracht hat.

Das ist ja noch kruder.

SCNR

hä? sql+ z.b. kommuniziert über sql net... also wo ist das problem bzgl. plsql?!
 

abollm

Top Contributor
Astra hat gesagt.:
Kann mir da keiner helfen, wie krieg ich nen Wert aus nem resultset in eine Variable?

Siehe z.B. oben bei DP.
Zum Thema HashTable:
Wenn du das jeweilige Ergebnis z.B. in eine HashTable speichern willst nimmst du z.B. für reine Integer-Objekte

Code:
...
Map map;
map.put(new Integer(i), new Integer(i));
...

Das Ganze packst du in eine Methode, die vom Typ HashTable ist, und wie folgt aufrufst
Code:
...
testHashMapInteger(new Hashtable(tableSize), keys);
...

Die einzelnen Werte mit dem Index i hast du dabei natürlich vorher zugewiesen.
Hth
 

Astra

Aktives Mitglied
public static void main( String[] argv )
{
String sDbDriver=null, sDbUrl=null, sTable=null, sUsr="", sPwd="";



{
try {
// Select fitting database driver and connect:
Class.forName( sDbDriver );
Connection cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery( "select * from " + sTable );

while(rs.next())
{
String spalteA = rs.getString("spalte1");
String spalteB =rs.getString("spalte2");
excepHash.put(spalteA,spalteB);
}
rs.close();
st.close();
cn.close();

}
}


Geht sowas, ich brauchs so einfach wie möglich.
 

abollm

Top Contributor
DP hat gesagt.:
[..]

hä? sql+ z.b. kommuniziert über sql net... also wo ist das problem bzgl. plsql?!

Stell dich doch nicht absichtlich so blöd an, bitte.

SQL*Net - oder für Oracle 8i auch Net8 genannt - ist für die Verbindungsherstellung zu einer Oracle-DB zuständig. Es handelt sich um eine Art "Überprotokoll", das sich zwischen der Anwendung und dem eigentlichen Netzwerk befindet. Der Begriff hat mit SQL überhaupt nichts zu tun.

Dass es ein Problem bzgl. PL/SQL gibt habe ich nie behauptet und auch nicht gemeint. Vielmehr störte mich am Posting von dbac oben, dass ziemlich zusammenhangslos die Begriffe SQL*Plus und PL/SQL in einem Atemzug genannt wurden.

Ich frage mich, was ein Anfänger damit anfangen soll. Falls dbac SQL*Net gemeint haben sollte, dann siehe meinen ersten Absatz in diesem Posting. Außerdem ist es immer müßig über das, was einer gemeint haben _könnte_, zu spekulieren.

Das einfache Einstreuen von Begriffen bringt da nicht so viel. Nur einmal ein Beispiel zu SQL*Net:

Die Kommunikation zwischen Client und Server via SQL*Net basiert schematisch jeweils auf vier Schichten, nämlich auf Clientseite
1. der eigentlichen Anwendung,
2. der SQL*Net-Ebene,
3. dem Oracle-Protokoll-Adapter und
4. dem Netzwerkprotokoll.

Auf Serverseite
1. dem Oracle-DBMS,
2. der SQL*Net-Ebene,
3. dem Oracle-Protokoll-Adapter und
4. dem Netzwerkprotokoll.

Bei einer deutlich erkennbaren Anfängerfrage, die sich auf Öffnen und Schließen der DB sowie dem Auslesen der Daten aus der DB bezog, fand ich den Hinweis ein wenig irreführend und zudem fachlich nicht korrekt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JDK installieren Open JDK und Oracle Lizenzen Java Basics - Anfänger-Themen 13
J Mit OpenJDK entwickeln aber Oracle SE Runtime installieren? Java Basics - Anfänger-Themen 6
J Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu Java Basics - Anfänger-Themen 1
A JDK installieren Oracle JDK oder was anderes? Java Basics - Anfänger-Themen 6
H Pfad Program Files\Common Files\Oracle\Java\javapath Java Basics - Anfänger-Themen 3
N Oracle SQL mit Zwischenergebnis rechnen Java Basics - Anfänger-Themen 2
N Oracle SQL Anfrage. Problem Java Basics - Anfänger-Themen 2
M Frage bzgl. Oracle Java Zertifizierung Java Basics - Anfänger-Themen 4
J ORACLE Spatial ungültiger Spaltenindex beim Import Java Basics - Anfänger-Themen 2
J Oracle JDBC Driver funktioniert nur in einer Klasse Java Basics - Anfänger-Themen 2
A Oracle Verbindungsaufbau klappt nicht Java Basics - Anfänger-Themen 7
M OpenJDK und Oracle JDK proprieträre API Java Basics - Anfänger-Themen 11
? Oracle jpr runnable target Java Basics - Anfänger-Themen 2
alderwaran closed source jar, kein javadoc. was macht methode x eigentlich? ( oracle forms pjc beans ) Java Basics - Anfänger-Themen 2
J Oracle XE bekannt machen Java Basics - Anfänger-Themen 8
J Oracle Anbindung Java Basics - Anfänger-Themen 3
M Problem: JSP für Zugriff auf Oracle-Server/Datenbank - sinnvoll? Java Basics - Anfänger-Themen 35
A Oracle DB Java Basics - Anfänger-Themen 3
G Oracle SQL JDBC in Eclipse laden Java Basics - Anfänger-Themen 2
G Maven Dependency für Oracle JDBC-Driver korrekt festlegen Java Basics - Anfänger-Themen 4
G Verbindung zu einer Oracle DB aufbauen Java Basics - Anfänger-Themen 2
3 User erstellen / Oracle Content DB Java Basics - Anfänger-Themen 2
K Java Oracle getString() Java Basics - Anfänger-Themen 2
J JTable mit Oracle-Daten aus DB füllen Java Basics - Anfänger-Themen 6
E Oracle,Eclipse und zwei Javaversionen Java Basics - Anfänger-Themen 6
G Datenformate für Tabellendeklaration in einer ORACLE-DB Java Basics - Anfänger-Themen 2
D null über ein Integerfeld in ein Numberfeld in Oracle schrei Java Basics - Anfänger-Themen 5
M No suitable driver bei einer Oracle Datenbank Java Basics - Anfänger-Themen 9
M Variablen Werte nach setzen, bei Abfrage wieder alter Wert Java Basics - Anfänger-Themen 11
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
L If Abfrage Java Basics - Anfänger-Themen 4
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
W if-Abfrage bei ArrayList-Methodenaufrufen - Wie löse ich das? Java Basics - Anfänger-Themen 6
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
P Amazon SQS abfrage Java Basics - Anfänger-Themen 1
Marlena Bauer IBAN generieren (Deutschland) aus Abfrage von BLZ und Kontonummer? Java Basics - Anfänger-Themen 31
M Abfrage j/n und Bildschirm löschen Java Basics - Anfänger-Themen 3
S Und-Abfrage mit mehreren Ungleich-Operatoren Java Basics - Anfänger-Themen 17
O if Abfrage erkennt String nicht Java Basics - Anfänger-Themen 1
NeoLexx Abfrage mit instanceof führt zu unerwarteten Wert Java Basics - Anfänger-Themen 9
N Bedinugng If-Abfrage wird nie erfüllt Java Basics - Anfänger-Themen 4
L boolean-Abfrage enumeration Java Basics - Anfänger-Themen 3
Y Methoden Wie kann ich eine if-Abfrage bei Setters bauen? Java Basics - Anfänger-Themen 6
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
F POST-Request mit json - Abfrage mit Java Java Basics - Anfänger-Themen 2
C Javafunktion zur Abfrage eines Quellcodes Java Basics - Anfänger-Themen 15
A JOPtionPaneOptionDialog Abfrage welcher Button gedrückt wurde? Java Basics - Anfänger-Themen 8
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
G if Abfrage: Nicht jeder Fall berücksichtigt Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
J Erste Schritte if Abfrage von JButton in 2. Klasse Java Basics - Anfänger-Themen 27
S If Abfrage nur mit bestimmter Initialisierung? Java Basics - Anfänger-Themen 8
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
deatzi Variable aus If Abfrage später nutzen Java Basics - Anfänger-Themen 4
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
S Backspace Abfrage funktioniert nicht Java Basics - Anfänger-Themen 4
F Interface JFrame mit if-Abfrage automatisch schließen lassen? Java Basics - Anfänger-Themen 3
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
P Altklausur: Abfrage der Summe Java Basics - Anfänger-Themen 9
N Methoden Attribut Abfrage eines anderen Objektes Java Basics - Anfänger-Themen 36
D MySQL Abfrage in JTable speichern Java Basics - Anfänger-Themen 43
D SQL Abfrage anpassen Java Basics - Anfänger-Themen 17
H For-Schleife innerhalb If-Abfrage? Java Basics - Anfänger-Themen 3
F Abfrage ob Eingabe eine Zahl ist Java Basics - Anfänger-Themen 3
O Datentypen Volle 16 Bit eines Short für flags Abfrage nutzen Java Basics - Anfänger-Themen 11
S Input/Output Doppelte Input-Abfrage Java Basics - Anfänger-Themen 3
S Input/Output Programm läuft nach input-Abfrage nicht weiter. Java Basics - Anfänger-Themen 2
M Variablen Eine etwas andere if Abfrage ! Java Basics - Anfänger-Themen 10
H if-Abfrage, ungleich und falscher true Wert? Java Basics - Anfänger-Themen 11
F Ja Nein Abfrage und andere Probleme Java Basics - Anfänger-Themen 5
OlafHD Fehler Bei der if Abfrage Java Basics - Anfänger-Themen 5
quecksilver if-Abfrage in main ausführen Java Basics - Anfänger-Themen 4
D if-Abfrage Java Basics - Anfänger-Themen 12
J Abfrage für Programmwiederholung Java Basics - Anfänger-Themen 2
K Alternative zur If-Abfrage Java Basics - Anfänger-Themen 3
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
D Abfrage ob Variableninhalt korrekt Java Basics - Anfänger-Themen 5
W Vergleich mit If-Abfrage nur für Zahlen bis 07 möglich - Warum? Java Basics - Anfänger-Themen 7
D Operatoren IF Abfrage liefert falsches Ergebnis Java Basics - Anfänger-Themen 4
X Ja nein abfrage? Java Basics - Anfänger-Themen 9
A Erste Schritte Problem bei meiner if-Abfrage! Java Basics - Anfänger-Themen 5
M Enum-Variabel-Abfrage funktioniert nicht? Java Basics - Anfänger-Themen 2
S Java Counter: nur 1 mal hochzählen auch wenn Abfrage mehrmals zutrifft. Java Basics - Anfänger-Themen 1
E Erste Schritte [Noob-Frage] Meine If-Abfrage macht nicht, was sie soll... Java Basics - Anfänger-Themen 2
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
A Key Event - Abfrage von 2 gedrückten Tasten Java Basics - Anfänger-Themen 6
T Klasse für Google-Abfrage Java Basics - Anfänger-Themen 9
Z If abfrage - Minimum 0 Java Basics - Anfänger-Themen 9
J Abfrage versetzen Java Basics - Anfänger-Themen 2
D Methoden Abfrage ob ein Wert bereits vorhanden ist Java Basics - Anfänger-Themen 1
thet1983 if() Abfrage Java Basics - Anfänger-Themen 2
A charAt(x)-Abfrage lässt bei Strings<x das Pgrogramm abstürzen. Kann man das verhindern? Java Basics - Anfänger-Themen 4
Uzi21 if - else Abfrage Java Basics - Anfänger-Themen 6
T Index-Abfrage von Pi Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben