Oracle
 sql >> Base de données >  >> RDS >> Oracle

Utilisation des noms de service Oracle avec SQLAlchemy

J'ai trouvé la réponse que vous devez utiliser la même chaîne de connexion qui serait utilisée dans un fichier tnsnames.ora dans la chaîne de connexion après le '@" comme ceci

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")

Cet exemple fonctionne très bien, et vous pouvez commenter l'instruction drop et vérifier la base de données pour voir que la table a été créée.