Ich benutze SQLAlchemy mit dem Modul cx_Oracle um mich mit meiner Oracle Datenbank zu verbinden!
Im nächsten Schritt erstelle ich meine Tabelle. Danach führe ich den Query aus:
Code: Alles auswählen
import cx_Oracle
import json
from sqlalchemy import create_engine
from sqlalchemy import select
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
engine = create_engine('oracle+cx_oracle://TEST_3D:limo1013@10.40.33.160:1521/sdetest')
conn = engine.connect()
metadata = MetaData(engine)
a = Table('building', metadata, autoload=True )
b = Table('thematic_surface', metadata, autoload=True )
d = Table('surface_geometry', metadata, autoload=True )
e = Table('objectclass', metadata, autoload=True )
result2 = conn.execute("SELECT a.id AS building_nr, c.Geometry AS geometry, d.Classname AS polygon_typ FROM building a, THEMATIC_SURFACE b, SURFACE_GEOMETRY c, OBJECTCLASS d WHERE a.grid_id_400 = 4158 AND a.id = b.BUILDING_ID AND b.LOD2_MULTI_SURFACE_ID = c.ROOT_ID AND c.GEOMETRY IS NOT NULL AND b.OBJECTCLASS_ID = d.ID")
- (1508351, <cx_Oracle.OBJECT object at 0x02EF7460>, 'BuildingWallSurface')
(1508351, <cx_Oracle.OBJECT object at 0x02F3C7A0>, 'BuildingWallSurface')
(1508351, <cx_Oracle.OBJECT object at 0x02EF7460>, 'BuildingWallSurface')
(1508351, <cx_Oracle.OBJECT object at 0x02F3C720>, 'BuildingWallSurface')
(1508351, <cx_Oracle.OBJECT object at 0x02EF7460>, 'BuildingWallSurface')
(1508351, <cx_Oracle.OBJECT object at 0x02F3C7A0>, 'BuildingWallSurface')
(1508351, <cx_Oracle.OBJECT object at 0x02EF7460>, 'BuildingWallSurface')
(1508351, <cx_Oracle.OBJECT object at 0x02F3C720>, 'BuildingWallSurface')
(1508351, <cx_Oracle.OBJECT object at 0x02EF7460>, 'BuildingWallSurface')
(1508351, <cx_Oracle.OBJECT object at 0x02F3C7A0>, 'BuildingWallSurface')
(1508351, <cx_Oracle.OBJECT object at 0x02EF7460>, 'BuildingWallSurface')
(1508351, <cx_Oracle.OBJECT object at 0x02F3C720>, 'BuildingWallSurface')
(1508351, <cx_Oracle.OBJECT object at 0x02EF7460>, 'BuildingGroundSurface')
Kann SQLAlchemy Geometrien aus einer Datenbank lesen oder muss ich die Erweiterung GeoAlchemy nutzen?
Geht das auch mit web.py? Bei PostgreSQL habe ich es mit Web.py gemacht. Aber Web.py unterstützt nicht Oracle. Von daher nutze ich SQLAlchemy.
Mein Ziel ist ein JSON aus dem Ergebnis zu erstellen.