Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst SQL Statement Syntax Oracle Excel VBA

Mitglied: firsty78

firsty78 (Level 1) - Jetzt verbinden

20.03.2008, aktualisiert 31.03.2008, 15044 Aufrufe, 6 Kommentare

Hallo zusammen,

ich befinde mich im VBA Editor und möchte per ODBC eine Oracle 9 Datenbank abfragen und die Daten in Excel ausgeben. Folgenden Code verwende ich

Dim cnOra As ADODB.Connection
Dim rsOra As ADODB.Recordset
Dim StrSelect As String
Dim db_name As String
Dim UserName As String
Dim Password As String
Dim i As Long

Set cnOra = New ADODB.Connection
Set rsOra = New ADODB.Recordset

db_name = "Oracle"
UserName = "User"
Password = "pw"


cnOra.Open "DSN=" + db_name + ";UID=" + UserName + ";PWD=" + Password + ";"
rsOra.CursorLocation = adUseServer

rsOra.Open _
" select E.* " _
& " from (Infor_relEs E left join Infor_relAc A " _
& " on E.Datenfelder_1 = A.MNr) " _
& " where E.Satzart = 'UA' ", cnOra, adOpenForwardOnly _

i = 1
While Not rsOra.EOF
Worksheets("Oracle").Cells(i, 1) = rsOra![Datenfelder_1]
rsOra.MoveNext
i = i + 1
Wend

rsOra.Close
cnOra.Close
Set rsOra = Nothing

Die Datenbank wird gefunden nur das SQL Statement scheint einen Fehler zu haben, den ich einfach nicht finde. Im jetzigen Zustand kommt die Meldung "[Oracle][ODBC][Ora]ORA-00942: table or view does not exist.

Wo liegt mein Fehler?

Vielen Dank
Mitglied: Biber
22.03.2008 um 18:15 Uhr
Moin firsty78,

falls Dein verwendeter User nicht gleichzeitig der Owner des Schemas ist, dann solltest Du den Schema-Namen mit angeben, z.B. "...from UnserSchema.Infor_relEs E..."

[OT]
Abgesehen davon halte ich Dein SQL für ...na ja, sagen wir mal syntaktischen Overkill.

Wenn Ziel der Aktion ist, alle Datenfelder_1 in einer Excel-Spalte aufzulisten mit dem Kriterium, dass die Satzart gleich 'UA' ist und dass sich ein LEFT JOIN an irgendeine andere Tabelle flanschen lässt...

...dann reicht auch ein...
01.
 select Datenfelder_1 from UnserSchema.Infor_relEs where Satzart = 'UA';
[/OT]

Grüße
Biber
Bitte warten ..
Mitglied: firsty78
31.03.2008 um 11:02 Uhr
Hallo Biber,

vielen Dank für Deine Antwort und sorry für die späte Rückmeldung. Hatte Urlaub, Umzug, kein Internet,...

Wenn Du von einem "syntaktischen Overkill" sprichst meinst Du dann, dass mein komplettes Statement irgendwie "schrottig" ist? Oder meinst Du, dass es etwas überdimensioniert ist? Ich habe den left join, da ich aus der relac ebenfalls Daten laden möchte.

Gruß,
firsty
Bitte warten ..
Mitglied: Biber
31.03.2008 um 11:13 Uhr
Moin firsty78,

Oder meinst Du, dass es etwas überdimensioniert ist?
Dies meinte ich.
Ich habe den left join, da ich aus der relac ebenfalls Daten laden möchte.
Davon ist aber nichts zu sehen. Oben steht nur ein "select E.*", wobei E der Alias für die Tabelle Infor_relEs ist. Die Felder der geJOINten Tabelle A (= Infor_RelAc) erblicken nie das Tageslicht beziehungsweise sind nicht im Resultset enthalten.

Aber eigentlich ist das ein Nebenschauplatz.
Was macht denn das Hauptproblem? Wollen wir das erst abhandeln?

Grüße
Biber
Bitte warten ..
Mitglied: firsty78
31.03.2008 um 12:22 Uhr
Hallo Biber,

das Problem hängt tatsächlich mit dem User zusammen. Ich habe den User ausgetauscht und die Feldbezeichnungen abgeändert und der Import funktioniert - fast - korrekt.

Folgendermaßen sieht es im Moment aus:

Set cnOra = New ADODB.Connection
Set rsOra = New ADODB.Recordset

db_name = "Oracle"
UserName = "User"
Password = "pw"
StrSelect = "Select E.Datenfelder_1 ArtNr1, A.KTxt Bez from relEs E left join relAc A on E.Datenfelder_2 = A.MNr where Satzart ='UA'"

cnOra.Open "DSN=" + db_name + ";UID=" + UserName + ";PWD=" + Password + ";"
rsOra.CursorLocation = adUseServer

rsOra.Open StrSelect, cnOra, adOpenForwardOnly

i = 1
While Not rsOra.EOF
Worksheets("Oracle").Cells(i, 1) = rsOra![ArtNr1]
Worksheets("Oracle").Cells(i, 2) = rsOra![Bez]
rsOra.MoveNext
i = i + 1
Wend

rsOra.Close
cnOra.Close
Set rsOra = Nothing

"ArtNr1" enthält den korrekten Wert aus der relEs, wohingegen der Wert von "Bez" NULL ist.

Gruß,
firsty
Bitte warten ..
Mitglied: Biber
31.03.2008 um 12:51 Uhr
Hmmm, firsty87,

kann das daran liegen, dass Du die aktuelle Relation über "Datenfelder_2=A.Mnr" bildest statt wie oben über "Datenfelder_1"??

Grüße
Biber
Bitte warten ..
Mitglied: firsty78
31.03.2008 um 14:24 Uhr
Oje oje, ich schäme mich!!

Das war es, jetzt klappt alles wunderbar - ZAUBEREI!!

Vielen Dank.

Grüße,
firsty
Bitte warten ..
Ähnliche Inhalte
Datenbanken

SQL-Statement in Excel .dqy Query - (Zeitrahmen) funktioniert nicht ?

gelöst Frage von SchelinhoDatenbanken6 Kommentare

Hallo zusammen, folgendes Thema: ich habe ein SQL-Statement mit Variablen Usereingaben, welches im PL/SQL-Developer auch tadellos funktioniert. Die Variable ...

Datenbanken

Problem mit einem SQL Statement

gelöst Frage von sammy65Datenbanken2 Kommentare

Hallo zusammen, ich habe folgendes Problem mit einem SQL Select Befehl: Ergebnis sollen alle Datensätze sein, die 1. In ...

Datenbanken

SQL Statement auseinandernehmen Like

gelöst Frage von H41mSh1C0RDatenbanken20 Kommentare

Hi@All, Ziel: Beim erstellen eines Reports existiert ein Feld in der eine bestimmte OU ausgewählt werden kann. Wird keine ...

VB for Applications

VBA Excel Recordset - Abfrage auf SQL-Server

gelöst Frage von AximandVB for Applications4 Kommentare

Hallo, ich habe ein neuerliches Problem. Mitarbeiter sollen in einem Excel-Sheet die Artikelnummern ihrer benötigten Produkte runterschreiben. Ich ermittle ...

Neue Wissensbeiträge
Drucker und Scanner
HP-MF-Drucker per Fax angreifbsr
Information von Lochkartenstanzer vor 9 StundenDrucker und Scanner

Endlich eine sinnvolle Verwendung für Faxe: Damit kann man offensichtlich den Drucker übernehmen. lks

Router & Routing

Das pfSense Buch ist jetzt für jeden kostenlos zu beziehen

Tipp von magicteddy vor 1 TagRouter & Routing2 Kommentare

Bisher war das Buch nur für zahlende Unterstützer verfügbar, jetzt steht für Jedermann kostenlos zur Verfügung. Siehe auch The ...

Firewall

Möglicherweise neue Sicherheitslücke in Mikrotik-Firmware

Information von LordGurke vor 3 TagenFirewall3 Kommentare

Hallo zusammen, vor ein paar Monaten gab es ja bereits eine Sicherheitslücke in der Firmware von Mikrotik-Routern, über welche ...

Erkennung und -Abwehr
Rechner hacken mit Cortana, auch Remote
Information von Lochkartenstanzer vor 4 TagenErkennung und -Abwehr3 Kommentare

heise berichtet über den Vortrag von der Blackhat Open Sesame: Picking Locks with Cortana. Einige Fehler sind schon gefixt, ...

Heiß diskutierte Inhalte
Windows Netzwerk
Performance bei Terminalserver
Frage von azizalexanderWindows Netzwerk20 Kommentare

Hallo zusammen, Ich wusste nicht in welches Thema meine Frage passt ich Bitte um Vergebung falls ich hier falsch ...

Exchange Server
Exchange 2013 - Unable to Relay nach extern, SuperMailer
Frage von leon123Exchange Server15 Kommentare

Hallo zusammen, ich brauch mal wieder eure Hilfe. Ich beschäftige mich gerade mit dem SuperMailer und erhalte vom Exchange ...

Peripheriegeräte
Steckdose(nleiste) mit Schwellwert für off und mit externem Taster
Frage von ahstaxPeripheriegeräte15 Kommentare

Hallo, ich suche eine Steckdose oder Steckdosenleiste mit externem Taster und Schwellwerterkennung. Zu realisieren ist folgendes: Ein PC soll ...

Windows Server
Remote Desktop Services User Profile Disk - DFS
Frage von einzelkindWindows Server14 Kommentare

Hallo Miteinander, ich richte gerade eine neue RDS Farm auf Basis von Windows Server 2016 ein. Von Server 2012 ...