2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
👨 作者简介:大家好,我是Taro,全栈领域创作者
✒️ Page d'accueil personnelle :Don Juan Taro
🚀 支持我:点赞👍+📝 评论 + ⭐️收藏
Récemment, j'ai dû me connecter au système SIS de l'hôpital et à la base de données de l'autre partie. Il s'est avéré que l'hôpital utilisait Oracle.AMERICAN_AMERICA.US7ASCIILe format de codage est codé, ce qui entraîne une déformation des données chinoises lues dans le programme.
以下是本篇文章正文内容,下面案例可供参考
Le codage des données de l'unité hospitalière ne pouvant pas être modifié, nous avons testé de nombreuses méthodes et avons finalement choisi une méthode de traitement plus efficace (ODAC + OleDbConnection) utilisant un pilote Oracle indépendant pour le traitement.
Oracle.ManagedDataAccess.Client Il s'agit du package le plus couramment utilisé en C# pour se connecter à la base de données Oracle. Il s'agit également de la bibliothèque d'accès aux données .NET officiellement fournie par Oracle, mais elle ne peut pas résoudre le problème des caractères tronqués.
doit être adoptéSystème.Données.OleDb , il utilise un pilote Oracle indépendant pour le traitement, ce qui est la clé pour résoudre les caractères chinois tronqués.
Système.Données.OleDb Dépendances :
Code de base :
<add connectionString="Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User ID=db;Password=db;" name="HIS" />
Appel de programme :
Source ODAC : https://www.oracle.com/database/technologies/dotnet-utilsoft-downloads.html
Une fois ODAC installé, l'ordinateur doit être redémarré.
Continuez à cliquer sur "Suivant" jusqu'à ce que l'installation soit terminée
Cette étape consiste à maintenir la cohérence des jeux de caractères de la base de données locale et client afin d'éviter des données tronquées lors de leur visualisation locale.
变量名:NLS_LANG | 变量值:AMERICAN_AMERICA.US7ASCII
Le code est le suivant (exemple) :
C'est de ce dont je vais parler aujourd'hui. Pour des raisons historiques, les premiers Oracle n'avaient pas de jeux de caractères chinois (tels que oracle6, oracle7, oracle7.1), mais certains utilisateurs ont utilisé la base de données depuis lors et l'ont stockée dans le format US7ASCII. jeu de caractères chinois, cet article ne présente que brièvement l'utilisation de la bibliothèque System.Data.OleDb, qui résout parfaitement le problème du chinois tronqué de la base de données Oracle du jeu de caractères US7ASCII.