Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Einzelne Bausteine aus String auslesen (Oracle 10g)

Frage Entwicklung Datenbanken

Mitglied: DerLomi

DerLomi (Level 1) - Jetzt verbinden

10.11.2010, aktualisiert 15:42 Uhr, 7199 Aufrufe, 3 Kommentare

Mahlzeit Leute,

mal wieder nen Prob bei einer Abfrage.

Und zwar geht es darum, das ich aus einem String der in einer Spalte (Beschreibung) der Tabelle steht, die einzelnen Bausteine als einzelne Spalte extrahieren soll.

In dieser Spalte gibt es Strings wie "HPS-Rohr 75x6" oder aber auch "Rundstahl schwarz Rd.30". Ich müsste die Werte, die jeweils nach dem Komma sind, in einzelne Spalten bekommen.

Habe mich mit "Substr" und "instr" versucht, kriege es aber bisslang nur hin, das ich mir von links die Werte ausgeben kann, welche bis zum 1. Komma folgen. Wie komme ich an die anderen Strings, welche zwischen weiteren Kommatas stehen?

Wäre es möglich das die Werte die zwischen den Kommatas stehen aus dem String in einzelne Spalten extrahiert werden können?

Vielleicht hat einer von euch eine Idee oder eine Lösung dafür. Wäre echt dankbar ^^

Ein Dankeschön schonmal im Vorraus

Mit freundlichen Grüßen Tobias
Mitglied: BigWim
10.11.2010 um 15:53 Uhr
Eine direkte Antwort kann ich mangels Kenntnis nicht liefern, aber aus anderen Scriptsprachen kenne ich noch Funktionen wie Split (oder Join?), die dein String nach Angabe des Trennzeichens in ein Array umwandeln. Vielleicht hilft es ja weiter.

Ansonsten bleibt nur der Weg über ein Schleife, die Dir den String auseinander nimmt. Dafür gibt es massenhaft Beispiele, die Du ja für Deine Zwecke anpassen kannst.

Wenn gar nichts hilft, poste mal den Codeausschnitt.

Markus
Bitte warten ..
Mitglied: bastla
10.11.2010 um 16:01 Uhr
Hallo DerLomi!

Vielleicht hilft Dir Oracle PL/SQL function to split strings into tokens ...

Das Stichwort "split" hat BigWim ja schon genannt; ev findest Du auch noch Ansätze bei einer Suche nach "tokenize" ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
10.11.2010 um 19:53 Uhr
Moin derLomi,

ergänzend zu BigWim und bastla:

ja, die gute Nachricht ist: solche SPLIT() und JOIN()-Functions gibt es copy&pastebar einige dutzend Male im Netz.
Kannst du stressarm verwenden.

Schlechte Nachrichten sind:
  • es geht nur mit Unterstützung des DBAdmins bzw. sogar nur auf dem Server selbst. Einen Tod musst du sterben - entweder eine PL/SQL-Procedure/ein Package wird eingerichtet oder aber DBweit user-defined-types, die es dir mit nativem SQL ermöglichen. Dann könntest du mit "Table"-Datentypen arbeiten... ist aber auch auf dem Server, an der DB selbst zu tun und einzurichten.

  • Wenn du denn meinetwegen eine Function Split( csvText, delim, x) häätest, die dir aus deinem character separated text das x-te Element rausflöht... und das Ganze in einem dynamischen Statement oder in einem View passiert... dann hast du für jeden gatesverdammten Datensatz -ich schätz mal- 5 zusätzliche Aufrufe einer Funktion Zerlege-Split(), wenn du mit max. 5 "Elementen" in dem csvText-Feld rechnest.
---> da wird dir die DB und auch der DBA einen Vogel zeigen, damit nimmst du allen anderen DB-Benutzern die Luft zum Atmen.

Wenn wenn wenn überhaupt, also wenn sich die Tabelle nicht schon an der Quelle normalisieren lässt, dann mach diese Stringzerlege-Arie einmalig und schreibe die zerbröselten Felder als Einzelfelder in eine neue Tabelle. Aber eben kein Split()/Join()-gehampel bei Ad-Hoc-Abfragen.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

Batch & Shell
2 String aus PDF auslesen und diesen zum Umbenamsen benutzen (8)

Frage von ingo101 zum Thema Batch & Shell ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...