Oracle
 sql >> Database >  >> RDS >> Oracle

Utilizzo dei nomi dei servizi Oracle con SQLAlchemy

Ho trovato la risposta che devi usare la stessa stringa di connessione che verrebbe utilizzata in un file tnsnames.ora nella stringa di connessione dopo la "@" in questo modo

from sqlalchemy import create_engine

if __name__ == "__main__":                                                                                                                                                        
    engine = create_engine("oracle+cx_oracle://<username>:<password>@(DESCRIPTION = (LOAD_BALANCE=on) (FAILOVER=ON) (ADDRESS = (PROTOCOL = TCP)(HOST = <host>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = devdb)))")                                                                                                                                                   
    result = engine.execute("create table test_table (id NUMBER(6), name VARCHAR2(15) not NULL)")
    result = engine.execute("drop table test_table")

Questo esempio funziona perfettamente e puoi commentare l'istruzione drop e controllare il DB per vedere che la tabella è stata creata.