ODBC Verbindung zu Oracle Datenbank aufbauen

Ich bin jetzt auf dem Stand, dass die Connection wohl steht (sonst würde "conn" nicht u.a. die Serverversion erkennen).
Das Problem ist wohl, dass die Tabelle/n nicht bekannt ist/sind.
Muss ich die irgendwo explizit deklarieren? Wie?
 
Die Tabellen definierst du ja in deinen DML-Statements. Das jedoch sein kann ist, dass du ein Schema angeben musst. Am besten die SQL-Anweisungen aus dem VB-Script, welches dir zur Verfügung steht, überprüfen ob dort etwas wie:
Code:
SELECT * FROM irgendwas.Tabellenname
vorkommt.
 
Also mein SQL-String ist nach folgendem Schema gestrickt:

SELECT Feldname FROM Tabellenname WHERE ...

Habs auch probiert mit:

SELECT Tabellenname.Feldname FROM Tabellenname WHERE ...

Wenn ich es folgender Weise versuche:

SELECT 'Tabellenname'.'Feldname' FROM 'Tabellenname' WHERE ...

Kommt die Meldung "Schlüsselwort FROM nicht an erwarteter Stelle gefunden"
Setze ich Klammern

SELECT ('Tabellenname'.'Feldname') FROM 'Tabellenname' WHERE ...

Kommt die Meldung "rechte Klammer fehlt"


Bei
SELECT * FROM irgendwas.Tabellenname
Was müsste denn für "irgendwas" stehen?
 
Wow, jetzt habe ich mich durch diesen gesamten Threadmarathon gelesen...

gut, ich selbst ziehe in einer Anwendung ebenfalls Daten aus einer Oracle-Datenbank. Dieses "irgendwas" bezeichnet ein Schema in Oracle. Das was man bei MSSQL etc. aus Datenbank versteht ist in Oracle allgemein als Schema zu verstehen. Da man soweit ich weiß bei der Verbindung kein Standardschema angeben kann, muss man den Schemanamen durch einen Punkt getrennt dem Tabellennamen vorranstellen.

Soweit ich mich erinnere (ich habe das jedoch noch nie gemacht) kann man dem Datenbankbenutzer ein Standardschema angeben. Damit sollte man dann ohne diesen vorrangestellten Schemanamen auf die TAbellen zugreifen können.

Hinweis: Wenn du Tool wie den kostenlosen SQL Developer von Oracle benutzt, organisiert es diese Schemanamen als Benutzernamen. Schau es dir mal an!
 
Dieses "irgendwas" bezeichnet ein Schema in Oracle. Das was man bei MSSQL etc. aus Datenbank versteht ist in Oracle allgemein als Schema zu verstehen.

Das ist nicht richtig. Ein Schema ist eine Sammlung von Datenbanken und allem was dazu gehört. Ist (eventuell abhängig von einigen Funktionalitäten) gleichzusetzen mit dem Schema beim MSSQL.

Das heißt auch weiters zur Fehlerfindung: Wenn der User mit dem du dich anmeldest kein Defaultschema zugewiesen bekam, dann kannst du auf die gewollte Datenbank nicht zugreifen, da sie schlichtweg nicht gefunden wird (weil einem Schema zugewiesen).

Diese muss so ausgewählt werden. Wie du das unter Oracle machen kannst, ohne die Datenbank im ConnectionString anzugeben kann ich dir jetzt ad hoc nicht sagen. Oracle is not my home and castle.
 
Das ist nicht richtig. Ein Schema ist eine Sammlung von Datenbanken und allem was dazu gehört. Ist (eventuell abhängig von einigen Funktionalitäten) gleichzusetzen mit dem Schema beim MSSQL.
Danke die Aufklärung, da muss ich wohl nochmal etwas googlen ;)

Nochmal zu dem anderen Thema: Es wurde zwar bereits mehr als deutlich herausgestellt, dass eine ODBC Verbindung zu bevorzugen ist, ich verwende den OLEDB Provider von .NET Framework. Dieser benötigt natürlich einen installierten Oracle Client.

Der ConnectionString:
C#:
_connectionString = String.Format("Provider=MSDAORA;Data Source={0}:{1}/{2};User ID={3};Password={4}", server, port, servicename, user, password);

Ein beispielhaftes SQL Statement dazu:
C#:
string sql = "SELECT * FROM SCHEMA_NAME.TABELLE";
Im Grund das gleich, wie Nobert oben gepostet hat.

Interessant zu diesem Thema vielleicht der Screenshot im Anhang: Dieser zeigt den Oracle SQL Developer, indem die Schemanamen den Benutzernamen gleichgesetzt werden...
 

Anhänge

  • sqldeveloper.jpg
    sqldeveloper.jpg
    19,8 KB · Aufrufe: 84

Neue Beiträge

Zurück