Je dois mentionner qu'il y avait plusieurs anciennes officieux DB2 pilotes pour Python. ibm-db est celui que vous devriez utiliser.
6
La documentation est difficile à trouver, et une fois que vous le trouvez, c'est assez catastrophique. Voici ce que j'ai trouvé sur les 3 dernières heures.
Vous devez installer ibm_db à l'aide de pipcomme suit:
from ibm_db import connect
# Careful with the punctuation here - we have 3 arguments.# The first is a big string with semicolons in it.# (Strings separated by only whitespace, newlines included,# are automatically joined together, in case you didn't know.)# The last two are emptry strings.
connection = connect('DATABASE=<database name>;''HOSTNAME=<database ip>;'# 127.0.0.1 or localhost works if it's local'PORT=<database port>;''PROTOCOL=TCPIP;''UID=<database username>;''PWD=<username password>;','','')
Prochaine, vous devriez savoir que les commandes de ibm_db jamais réellement vous donner les résultats. Au lieu de cela, vous devez appeler l'un des fetch méthodes sur la commande, à plusieurs reprises, pour obtenir les résultats. J'ai écrit cette fonction d'assistance à gérer.
def results(command):from ibm_db import fetch_assoc
ret =[]
result = fetch_assoc(command)while result:# This builds a list in memory. Theoretically, if there's a lot of rows,# we could run out of memory. In practice, I've never had that happen.# If it's ever a problem, you could use# yield result# Then this function would become a generator. You lose the ability to access# results by index or slice them or whatever, but you retain# the ability to iterate on them.
ret.append(result)
result = fetch_assoc(command)return ret # Ditch this line if you choose to use a generator.
Maintenant, avec l'aide de la fonction définie, vous pouvez facilement faire quelque chose comme obtenir de l'information sur toutes les tables de votre base de données avec les éléments suivants:
from ibm_db import tables
t = results(tables(connection))
Si vous voulez tout voir en une table donnée, vous pourriez faire quelque chose comme ceci maintenant:
from ibm_db import exec_immediate
sql ='LIST * FROM '+ t[170]['TABLE_NAME']# Using our list of tables t from before...
rows = results(exec_immediate(connection, sql))
Et maintenant rows contient un list de lignes de la 170e table dans votre base de données, où chaque ligne contient un dict du nom de la colonne: valeur.
Espère que cela aide tous.
1
Vous pouvez vous connecter à db2 à partir de python à l'aide de jaydeapi
La première installation de la bibliothèque de l'exécution du pip install jaydeapi
télécharger db2jcc4.jar
Ensuite, vous pouvez vous connecter à l'aide du code ci-dessous :
en passant le nom d'hôte,portno, l'identifiant,le mot de passe de la base de données nom de
import jaydebeapi
conn_src = jaydebeapi.connect('com.ibm.db2.jcc.DB2Driver',['YourHostName:PortNo/DatabaseName','userid','password'],'C:/db2jcc4.jar')
cursor=conn_src.cursor()
sql ='Select * from schemaname.TableName fetch first 100 rows only '
cursor.execute(sql)print("fetchall:")
result = cursor.fetchall()for r in result:print(r)
1
Après beaucoup de creuser, j'ai découvert comment se connecter avec DB2 à l'aide de ibm_db.
Tout d'abord, si vous utilisez une version de python supérieur à 3,2 utilisation
pip install ibm_db==2.0.8 un
version 2.0.8 (la dernière) ne parvient pas à installer.
puis utilisez la commande suivante pour vous connecter
import ibm_db_dbi as db
conn = db.connect("DATABASE=name;HOSTNAME=host;PORT=60000;PROTOCOL=TCPIP;UID=username;PWD=password;","","")
liste des tables avec
for t in conn.tables():print(t)
et exécuter SQL avec
cursor = conn.cursor()
cursor.execute("SELECT * FROM Schema.Table")for r in cursor.fetchall():print(r)
vérifier ce lien pour officiel pas si de la documentation précise
0
Vous pouvez utiliser ibm_db bibliothèque pour connecter DB2.
Python 2.5 ou plus tard, à l'exclusion de Python 3.X.
pip install ibm_db
Il n'a travaillé que sur Python 2.7 pour moi; il n'a pas pour 3.X. Aussi, j'ai eu à faire de Python 2.7 par défaut (au lieu de Python 3), de sorte que l'installation serait de travailler (sinon, il y aurait des erreurs d'installation).
ibm db, l'officiel DB2 pilote pour Python et Django est ici:
Voici un tutoriel pour savoir comment installer le tout sur Ubuntu Linux:
Je dois mentionner qu'il y avait plusieurs anciennes officieux DB2 pilotes pour Python. ibm-db est celui que vous devriez utiliser.
La documentation est difficile à trouver, et une fois que vous le trouvez, c'est assez catastrophique. Voici ce que j'ai trouvé sur les 3 dernières heures.
Vous devez installer
ibm_db
à l'aide depip
comme suit:Vous aurez envie de créer un objet de connexion. La documentation est ici.
Voici ce que j'ai écrit:
Prochaine, vous devriez savoir que les commandes de
ibm_db
jamais réellement vous donner les résultats. Au lieu de cela, vous devez appeler l'un desfetch
méthodes sur la commande, à plusieurs reprises, pour obtenir les résultats. J'ai écrit cette fonction d'assistance à gérer.Maintenant, avec l'aide de la fonction définie, vous pouvez facilement faire quelque chose comme obtenir de l'information sur toutes les tables de votre base de données avec les éléments suivants:
Si vous voulez tout voir en une table donnée, vous pourriez faire quelque chose comme ceci maintenant:
Et maintenant
rows
contient unlist
de lignes de la 170e table dans votre base de données, où chaque ligne contient undict
du nom de la colonne: valeur.Espère que cela aide tous.
Vous pouvez vous connecter à db2 à partir de python à l'aide de jaydeapi
La première installation de la bibliothèque de l'exécution du pip install jaydeapi
télécharger db2jcc4.jar
Ensuite, vous pouvez vous connecter à l'aide du code ci-dessous :
en passant le nom d'hôte,portno, l'identifiant,le mot de passe de la base de données nom de
Après beaucoup de creuser, j'ai découvert comment se connecter avec DB2 à l'aide de ibm_db.
Tout d'abord, si vous utilisez une version de python supérieur à 3,2 utilisation
version 2.0.8 (la dernière) ne parvient pas à installer.
puis utilisez la commande suivante pour vous connecter
liste des tables avec
et exécuter SQL avec
vérifier ce lien pour officiel pas si de la documentation précise
Vous pouvez utiliser ibm_db bibliothèque pour connecter DB2.
C'est pour une référence future:
L'installation officielle docs dire:
Il n'a travaillé que sur Python 2.7 pour moi; il n'a pas pour 3.X. Aussi, j'ai eu à faire de Python 2.7 par défaut (au lieu de Python 3), de sorte que l'installation serait de travailler (sinon, il y aurait des erreurs d'installation).
Officiel docs exemple d'utilisation: