[PYTHON] [Cx_Oracle Primer] (Teil 3) Grundlagen zum Durchsuchen von Tabellen

Überprüfungsumgebung

Grundlagen der SELECT-Verarbeitung

Um SQL-Anweisungen auszugeben, die nicht auf SELECT beschränkt sind, müssen Sie zuerst ein Curosr-Objekt in der folgenden Form erstellen. cursor = connection.cursor() Fahren Sie zum Beispiel fort cursor.execute("select sysdate from dual") Rufen Sie mit der Anweisung SELECT als Argument die Methode execute () des Curosr-Objekts auf. Durch Schleifen des Aufrufergebnisses mit einer for-Anweisung wird der Datensatz in Form eines Taples abgerufen. Schließlich das Curosr-Objekt cursor.close() Schließen mit. Unten finden Sie ein Ausführungsbeispiel. Da die Ansicht ALL_OBJECTS in der Reihenfolge OBJECT_ID abgerufen wird, funktioniert sie ohne besondere Vorbereitung, wenn Sie Erfahrung mit der Ausführung der Anwendung cx_Oracle haben.

sample03a.py


#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import cx_Oracle

USERID = "admin"
PASSWORD = "FooBar"
DESTINATION = "atp1_low"
SQL = """
        select object_id, owner, object_name, object_type
          from all_objects
         order by object_id
         fetch first 5 rows only
"""

with cx_Oracle.connect(USERID, PASSWORD, DESTINATION) as connection:
        cursor = connection.cursor()
        cursor.execute(SQL)
        for row in cursor:
                print(row)
        cursor.close()

In meiner Umgebung ist die Ausgabe wie folgt.

$ python sample03a.py
(2, 'SYS', 'C_OBJ#', 'CLUSTER')
(3, 'SYS', 'I_OBJ#', 'INDEX')
(4, 'SYS', 'TAB$', 'TABLE')
(5, 'SYS', 'CLU$', 'TABLE')
(6, 'SYS', 'C_TS#', 'CLUSTER')

Cursorobjekt und mit Syntax

Im obigen Beispiel wird die with-Syntax nur für das Connection-Objekt verwendet, das Curosr-Objekt unterstützt jedoch auch die with-Syntax. Wenn Sie also die letzten 6 Zeilen des obigen Beispiels wie folgt umschreiben, ist dies eine sicherere Codierung mit einer einfacheren Beschreibungsmenge und weniger Problemen wie einer unzureichenden Anzahl von Cursorn (ORA-1000). Als Bonus habe ich auch den SQL-Ausgabe-Teil gekürzt.

sample03b.py(Auszug)


with cx_Oracle.connect(USERID, PASSWORD, DESTINATION) as connection:
        with connection.cursor() as cursor:
                for row in cursor.execute(SQL):
                        print(row)

Listeneinschlussnotation

Wenn Sie die Ergebnismenge als Liste behandeln möchten, können Sie die Listeneinschlussnotation auch wie folgt verwenden. Abhängig von der Umgebung muss das pprint-Modul vorinstalliert sein, um das folgende Beispiel auszuführen.

sample03c.py


#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import cx_Oracle
import pprint

USERID = "admin"
PASSWORD = "FooBar"
DESTINATION = "atp1_low"
SQL = """
        select object_id, owner, object_name, object_type
          from all_objects
         order by object_id
         fetch first 5 rows only
"""

with cx_Oracle.connect(USERID, PASSWORD, DESTINATION) as connection:
        with connection.cursor() as cursor:
                pprint.pprint([f"{r[1]}.{r[2]}Ist{r[3]}(ID:{r[0]})ist" for r in cursor.execute(SQL)])
$ python sample03c.py
['SYS.C_OBJ#Ist CLUSTER(ID:2)ist',
 'SYS.I_OBJ#Ist INDEX(ID:3)ist',
 'SYS.TAB$Ist TABELLE(ID:4)ist',
 'SYS.CLU$Ist TABELLE(ID:5)ist',
 'SYS.C_TS#Ist CLUSTER(ID:6)ist']

Recommended Posts

[Cx_Oracle Primer] (Teil 3) Grundlagen zum Durchsuchen von Tabellen
[Einführung in cx_Oracle] (Teil 11) Grundlagen der PL / SQL-Ausführung
[Einführung in cx_Oracle] (Teil 2) Grundlagen zum Verbinden und Trennen mit Oracle Database
[Einführung in cx_Oracle] (Teil 7) Umgang mit Bindevariablen
[Einführung in cx_Oracle] Übersicht über cx_Oracle
[Einführung in cx_Oracle] (Teil 4) Abrufen und Scrollen der Ergebnismenge
[Einführung in Data Scientist] Grundlagen von Python ♬
[Einführung in cx_Oracle] (16.) Umgang mit LOB-Typen
Einführung in PyQt4 Teil 1
[Einführung in cx_Oracle] (5.) Umgang mit japanischen Daten
[Einführung in cx_Oracle] (13.) Verbindung über Verbindungspool (Client-Seite)
Einführung in die Anomalieerkennung 1 Grundlagen
[Einführung in cx_Oracle] (8.) Version cx_Oracle 8.0
Einführung in Ansible Teil In'Inventory '
Serie: Einführung in den Inhalt von cx_Oracle
Python x GIS-Grundlagen (1)
Einführung in Ansible Teil ④'Variable '
[Einführung in cx_Oracle] (Teil 6) Zuordnung von DB- und Python-Datentypen
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und Klassen
Python x GIS-Grundlagen (3)
Einführung in Ansible Teil 2 'Grundlegende Grammatik'
Einführung in Python Hands On Teil 1
Grundlagen von Python x GIS (Teil 2)
Einführung in Ansible Teil 1'Hallo Welt !! '
Einführung in die Python-Grundlagen des maschinellen Lernens (unbeaufsichtigtes Lernen / Hauptanalyse)
[Einführung in Data Scientists] Grundlagen von Python ♬ Bedingte Verzweigung und Schleifen
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und anonyme Funktionen usw.
Web-WF Python Tornado Teil 3 (Einführung in Openpyexcel)
[Einführung in cx_Oracle] (12.) DB-Ausnahmebehandlung
[Einführung in cx_Oracle] (17.) Datumsbehandlung
[Einführung in Datenwissenschaftler] Grundlagen der Wahrscheinlichkeit und Statistik ♬ Wahrscheinlichkeits- / Wahrscheinlichkeitsvariable und Wahrscheinlichkeitsverteilung
Jupyter Notebook Grundlagen der Verwendung
Grundlagen von PyTorch (1) - Verwendung von Tensor-
Einführung in Scapy ① (Von der Installation bis zur Ausführung von Scapy)
Kaggle: Einführung in das manuelle Feature Engineering Teil 1
[Einführung in cx_Oracle] (Teil 9) Zuordnung von DB- und Python-Datentypen (Version 8 oder höher)
[Einführung in die Udemy Python3 + -Anwendung] 26. Kopie des Wörterbuchs
Grundlagen des Lernens mit einem Lehrer Teil 1 - Einfache Regression - (Hinweis)
[Einführung in die Udemy Python3 + -Anwendung] 19. Kopie der Liste
Von der Einführung von Pyethapp bis zur Vertragsabwicklung
Grundlagen des Lernens mit einem Lehrer Teil 3 - Multiple Regression (Implementierung) - (Anmerkungen) -
[Einführung in Python] Grundlegende Verwendung von Lambda-Ausdrücken
Einführung in MQTT (Einführung)
Einführung in Scrapy (1)
Erste Schritte mit Supervisor
Einführung von Scikit-Optimize
Einführung in Tkinter 1: Einführung
Einführung von PyGMT
Einführung in PyQt
Einführung in Scrapy (2)
Python-Grundlagen ①
Grundlagen von Python ①
[Linux] Einführung in Linux
Einführung in das maschinelle Lernen ~ Zeigen wir die Tabelle der K-Methode für den nächsten Nachbarn ~ (+ Fehlerbehandlung)
Einführung in Scrapy (4)
Einführung in discord.py (2)
Einführung von Python
Bildverarbeitung durch Matrix Basics & Contents-Reinventor der Python-Bildverarbeitung-