Maison  >  Article  >  développement back-end  >  Explication détaillée de Python utilisant le module cx_Oracle pour faire fonctionner la base de données Oracle

Explication détaillée de Python utilisant le module cx_Oracle pour faire fonctionner la base de données Oracle

不言
不言original
2018-05-07 11:47:556197parcourir

Cet article présente principalement l'utilisation par Python du module cx_Oracle pour faire fonctionner la base de données Oracle. Il analyse en détail le téléchargement et l'installation du module cx_Oracle, ainsi que la connexion à la base de données Oracle, l'exécution des instructions SQL, les procédures stockées et d'autres techniques d'exploitation connexes sous forme d'exemples. Les amis dans le besoin peuvent se référer à

Cet article décrit l'exemple d'utilisation de Python pour faire fonctionner la base de données Oracle à l'aide du module cx_Oracle. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :

Paramètre ORACLE_SID. Ce paramètre est utilisé dans le système d'exploitation. Il décrit l'instance de base de données à laquelle nous souhaitons nous connecter par défaut. plusieurs instances sur une machine Ensuite, vous devez le modifier avant de pouvoir vous connecter via conn/as sysdba, car le nom d'instance par défaut est utilisé ici.

En bref, par exemple, vous vous appelez Xiao Ming, mais vous avez de nombreux surnoms. Tes parents t'appellent Xiao Ming, mais tes amis t'appellent tous par ton surnom.

Ici, vos parents sont l'instance oracle, Xiao Ming est le sid et le nom du service est votre surnom.

sid est utilisé pour distinguer chaque base de données d'une instance, et le nom du service est utilisé pour les liens externes. Ils peuvent être différents, alors faites attention au nom que vous obtenez et utilisez-le de manière appropriée, sinon des erreurs peuvent survenir lors de la connexion à distance à d'autres bases de données.

Préface

Il existe de nombreux modules fournis avec Python pour manipuler des fichiers. Nous pouvons lire les données du fichier et écrire les données dans le fichier après traitement. Mais pour la gestion et l’analyse des données, les bases de données sont encore plus professionnelles. Si Python peut être combiné avec une base de données, il peut combiner les avantages des deux et améliorer l’efficacité.

La base de données Oracle est utilisée au travail. Python possède un module cx_Oracle qui peut être connecté à Oracle. Pour utiliser cx_Oracle, vous devez d'abord le télécharger.

1. Téléchargez cx_Oracle

Python est un site officiel PyPI, qui possède une multitude de modules. cx_Oracle peut être téléchargé depuis PyPI. Ouvrez l'URL PyPI https://pypi.python.org/pypi et recherchez cx_Oracle pour trouver le module. Son adresse de téléchargement est http://cx-oracle.sourceforge.net/. Bien sûr, vous pouvez également le télécharger par d’autres moyens.

Vous pouvez l'utiliser après le téléchargement.

2. Processus d'utilisation

Le processus d'utilisation simple est le suivant :

① Référencez le module cx_Oracle
②. base de données
③ .Obtenir le curseur
④.Utiliser le curseur pour diverses opérations
⑤.Fermer le curseur
⑥.Fermer la connexion

Voici un exemple simple :

cx_Oracle.connect("Username/Password@Oracle Server IP/Oracle's SERVICE_NAME")

Obtenez le SERVICE_NAME d'Oracle :

su - oracle #Passer à l'utilisateur Oracle

env | grep ORACLE #Query variables d'environnement ORACLE

ORACLE_SID=benguo # benguo est SERVICE_NAME

import cx_Oracle                     #引用模块cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g')  #连接数据库
c=conn.cursor()                      #获取cursor
x=c.execute('select sysdate from dual')          #使用cursor进行各种操作
x.fetchone()
c.close()                         #关闭cursor
conn.close()                       #关闭连接

Exemple :

#coding:utf-8
import cx_Oracle
def main():
  conn = cx_Oracle.connect("zebra/zebra@192.168.0.113/benguo")
  cur =conn.cursor()
  r= cur.execute("select * from userinfo")
  print
  print r.fetchone()
if __name__ == '__main__':
  main()

Plusieurs usages

Les opérations de Python sur la base de données comprennent principalement deux aspects : l'un consiste à écrire des données et l'autre à lire des données. La mise en œuvre de ces deux aspects peut être réalisée via des instructions SQL ou des procédures stockées. Par conséquent, les principales utilisations de cx_Oracle sont :

① Exécuter des instructions SQL

② Appeler des procédures et des fonctions stockées.

4. Exécuter des instructions SQL

L'exécution d'instructions SQL est très simple, comme le montre l'exemple ci-dessus. Utilisez cursor.execute pour exécuter. Utilisez fetchone ou fetchall pour lire les résultats de l'exécution.

L'exemple suivant est une instruction Insert utilisant une liaison de variable.

import cx_Oracle
conn=cx_Oracle.connect('load/123456@loaclhost/ora11g')
c=conn.cursor()
x=c.execute('insert into demo(v) values(:1)',['nice'])
conn.commit();
c.close()
conn.close()

La liaison de variable est la même que le SQL dynamique d'Oracle. Elle utilise deux points pour remplacer l'espace réservé, qui est : 1 dans le code, à copier. la variable. Passez simplement une liste, qui est ['nice'] dans le code. Combien y a-t-il de variables, combien de valeurs doivent correspondre à la liste et les nombres doivent être cohérents, sinon une erreur sera signalée.

Après l'exécution, vous pouvez utiliser l'une des méthodes de connexion connect.commit() pour valider la transaction.

5. Appeler les procédures et méthodes stockées

Saisir directement le code :

--存储过程代码:
CREATE OR REPLACE PROCEDURE P_DEMO(V1 IN VARCHAR2, V2 OUT VARCHAR2) IS
BEGIN
  V2 := V1;
END;

#Python代码:
import cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g')
c=conn.cursor()
str1='nice'
str2='  '#需要有值,即len(str2)>=len(str1)
x=c.callproc('p_demo',[str1,str2])
print(str2)
c.close()
conn.close()

appelle la procédure stockée en utilisant la méthode cursor.callproc. Dans la procédure stockée ci-dessus, la valeur d'une variable est de type OUT. En Python, lors de l'attribution d'une valeur à une variable de type OUT, la longueur de la variable ne peut pas être inférieure à celle de la procédure stockée.

--函数代码:
CREATE OR REPLACE function F_DEMO(V1 VARCHAR2) RETURN VARCHAR2 IS
BEGIN
  RETURN V1;
END;

#Python代码:
import cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g')
c=conn.cursor()
str1='nice'
str2=c.callfunc('f_demo',cx_Oracle.STRING,[str1])
print(str2)
c.close()
conn.close()

La méthode utilisée pour appeler la fonction est cursor.callfunc. La différence entre cela et l'appel d'une procédure stockée est que cela nécessite de spécifier le type de paramètres de transmission.

Fin

Grâce à cx_Oracle, les bases de données Python et Oracle peuvent communiquer entre elles, afin que les deux puissent se compléter mutuellement.

Par exemple, Python peut être utilisé comme outil de collecte de données. Vous pouvez obtenir des données à partir du Web et de fichiers, puis enregistrer les données dans une base de données Oracle pour une analyse plus approfondie des données.

Recommandations associées :

Python utilise la bibliothèque openpyxl pour modifier la méthode de données du tableau Excel

Python utilise le module de messagerie pour encoder et décoder les e-mails

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn