python 해결 cx 를 통 해Oracle 모듈 이 Oracle 난 코드 를 연결 하 는 문제

python 으로 Oracle 을 연결 하 는 것 은 항상 난 장 판 입 니 다.가장 가능성 이 높 은 것 은 Oacle 클 라 이언 트 의 문자 인 코딩 설정 이 잘못 되 었 습 니 다.
저 는 데이터 삽입 을 할 때 항상 키워드'From'가 존재 하지 않 습 니 다.인쇄 에 삽 입 된 Sql 은 pl/sql 에 삽 입 됩 니 다.문제 없습니다.그래서 나중에 문자 집합 인 코딩 에서 문 제 를 고려 하고 해결 했다.
작성 한 python 스 크 립 트 에 추가 해 야 합 니 다:

import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
이렇게 하면 select 에서 나 온 중국어 디 스 플레이 에 문제 가 없다 는 것 을 보증 할 수 있다.
정상 적 인 insert 와 update 중국 어 를 사용 하려 면 python 원본 파일 의 문자 집합 암 호 를 Oacle 과 일치 시 켜 야 합 니 다.

# -*- coding: utf-8 -*-
예시:

# -*- coding: utf-8 -*- 
import os 
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' #  os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8' 
import cx_Oracle 
db = cx_Oracle.connect(username/passwd@host:port/sevicename) 
cursor = db.cursor() 
#     
 
db.commit() 
db.close() 
클 라 이언 트 의 NLSLANG 설정 및 인 코딩 변환
Oracle 클 라 이언 트 가 서버 에 SQL 문 구 를 제출 할 때 Oracle 클 라 이언 트 는 NLS 에 따라LANG 와 데이터베이스 문자 집합 은 응용 프로그램 에서 전 송 된 문자열 인 코딩 을 변환 처리 합 니 다.하면,만약,만약...LANG 는 데이터베이스 문자 집합 과 같 아서 변환 하지 않 습 니 다.그렇지 않 으 면 데이터베이스 문자 집합 으로 변환 하여 서버 로 전송 해 야 합 니 다.서버 는 문자열 인 코딩 을 받 은 후 일반적인 CHAR 또는 VARCHAR 2 형식 에 대해 직접 저장 합 니 다.NCHAR 또는 NVARCHAR 2 유형 에 대해 서버 측은 이 를 국가 문자 집합 으로 변환 하여 저장 합 니 다.
이상 python 해결 cxOracle 모듈 이 Oracle 난 코드 를 연결 하 는 문 제 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기