Maison >développement back-end >Tutoriel Python >Configurer Python pour se connecter à Oracle, lire les données Excel et écrire dans la base de données

Configurer Python pour se connecter à Oracle, lire les données Excel et écrire dans la base de données

coldplay.xixi
coldplay.xixiavant
2021-03-18 10:29:433798parcourir

Configurer Python pour se connecter à Oracle, lire les données Excel et écrire dans la base de données

Condition préalable : une instance unique Oracle a été installée localement et vous pouvez utiliser le développeur plsql pour vous connecter, ou vous pouvez utiliser la chaîne de connexion TNS pour vous connecter à distance au cluster Oracle

Lire Excel et écrire Il existe de nombreuses façons d'entrer dans la base de données. Celle présentée ici consiste à utiliser des pandas pour écrire, ce qui est relativement simple. Il n'est pas nécessaire d'organiser les données après avoir lu Excel

. (recommandation d'apprentissage gratuite : tutoriel vidéo python)

L'ensemble du processus doit être effectué en deux étapes :

1. Configurez Python Connectez-vous à Oracle et testez avec succès

Il existe de nombreux tutoriels sur Internet, mais la plupart d'entre eux ne sont pas si détaillés et n'expliquent pas la différence. entre la connexion à une seule instance et la connexion à un cluster. Ici, nous présentons d'abord comment se connecter à une instance unique Oracle, et la méthode de connexion au cluster Oracle sera ajoutée plus tard.

Version :
windows 10 64 bits
python 3.6.8
cx-Oracle 7.3.0

Processus d'installation :

1 . Utilisez pip pour installer le package qui fait fonctionner Oracle :

pip install cx_Oracle==7.3.0

Configurer Python pour se connecter à Oracle, lire les données Excel et écrire dans la base de données

2. Manuellement. configurer cx_Oracle temporairement Client :

Notez que l'ordinateur ici est en 64 bits, et le client instantané utilisé est également en 64 bits. Pour 32 bits, vous devez le trouver à l'adresse de téléchargement ci-dessous.

2.1. Décompressez le fichier suivant

Lien : https://pan.baidu.com/s/1ARcdK8kgNKfQsNbP5ZEbKg
Code d'extraction : lz0g
Configurer Python pour se connecter à Oracle, lire les données Excel et écrire dans la base de données
Oracle Instant Client Instructions d'utilisation du client :
https://docs.oracle.com/en/database/oracle/oracle-database/19/lnoci/instant-client.html#GUID-6895DB45-97AA -4738-9959-BD677D610186
Adresse de téléchargement du client instantané Oracle :
https://www.oracle.com/database/technologies/instant-client/downloads.html

Placez-le quelque part. sur le lecteur D, par exemple :

Configurer Python pour se connecter à Oracle, lire les données Excel et écrire dans la base de données

2.3. Configurer les variables d'environnement

Panneau de configuration - Système et sécurité - Système
Configurer Python pour se connecter à Oracle, lire les données Excel et écrire dans la base de données
Configurer Python pour se connecter à Oracle, lire les données Excel et écrire dans la base de données
Configurer Python pour se connecter à Oracle, lire les données Excel et écrire dans la base de données
Configurer Python pour se connecter à Oracle, lire les données Excel et écrire dans la base de données

2.4. Redémarrez l'ordinateur pour que les variables d'environnement nouvellement configurées prennent effet

2.5. Testez si la configuration est réussie.

Bien que l'importation de cx_Oracle comporte des lignes ondulées rouges, elles sont généralement considérées comme un échec d'importation, mais vous pouvez l'ignorer ici et exécuter directement le code de test. S'il n'y a pas d'erreur, cela signifie qu'il n'y a pas de problème.
Si aucune donnée n'est trouvée, il se peut que l'utilisateur ne dispose pas de table emp.

import cx_Oracleimport os# 设置环境编码方式,可解决读取数据库中文乱码问题os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'# 用户名/密码@IP:端口/实例名conn = cx_Oracle.connect('kplin/12sss3456@192.168.124.102:1521/ORCL')cursor = conn.cursor()try:
    sql = 'select * from emp'
    cursor.execute(sql)
    ret = cursor.fetchall()
    print(ret)
    # cursor.commit()except Exception as e:
    print(e)finally:
    cursor.close()

Configurer Python pour se connecter à Oracle, lire les données Excel et écrire dans la base de données

2. Utilisez des pandas pour lire les données Excel et utilisez sqlalchemy pour vous aider à écrire dans la base de données

1. . Installez sqlalchemy , pandas

La version pandas est spécifiée ici car la dernière version de pandas signalera des erreurs étranges lors de la lecture et de l'écriture d'Excel.

pip install pandas==1.1.4pip install sqlalchemy

2. Préparez un tableau Excel, nommé test.xlsx, et écrivez les données de test suivantes

Configurer Python pour se connecter à Oracle, lire les données Excel et écrire dans la base de données

3 , testez la lecture et l'écriture dans la base de données

#!/usr/bin/env python# -*- coding:utf-8 -*-# date: 2021/3/14# filename: excel_to_db# author: kplinimport pandas as pdfrom sqlalchemy import create_enginefrom sqlalchemy import types# conn_string='oracle+cx_oracle://user:pass@host:port/dbname'conn_string='oracle+cx_oracle://KPLIN:654321@192.168.124.6:1521/ORCL'engine = create_engine(conn_string, echo=False)df = pd.read_excel('test.xlsx')# if_exists有三个可选值,'fail':如果存在该表则报错,'append':如果存在该表则将数据追加到列尾,'replace':如果存在该表则替换# df.to_sql('test', con=engine, if_exists='replace')# 按上面这种写入方式name字段将被写成clob字段类型,# 如果我们希望把name改为varchar2类型,怎么做?# 我们可以利用sqlalchemy的types把name指定为varchar2()类型len = df.name.str.len().max()df.to_sql('test', engine, if_exists='replace', dtype={'name': types.VARCHAR(len)})rows = engine.execute("SELECT * FROM TEST").fetchall()print(rows)

Recommandations d'apprentissage gratuites associées : tutoriel python( Vidéo)

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer