質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Q&A

解決済

2回答

1427閲覧

PythonでOracle11gに接続する方法がわからない!

Pano-mie

総合スコア7

Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

0グッド

0クリップ

投稿2017/11/08 00:34

編集2017/11/08 03:59

###前提・実現したいこと
初投稿です。
python3でOracleDatabase11gアクセスしたいです。
普段はsqlplusを使って接続しています。
学校に立てられているOracleサーバにアクセスしたいのですが、文字コードなどのエラーが出ました。
そもそも接続の方法が間違っているのか文字コードの設定が間違っているかなど全く分かりません。
OracleもPythinもまだ始めたばかりです。
できるだけ詳しくお手柔らかにお願いします。

※そもそものやり方が違う場合は初めから教えてください…。

conn = cx_Oracle.connect('ユーザ名','パスワード','192.168.XXX.XX/orcl1')より下はまだ途中なので間違っているかもしれません。
パソコンのユーザ名は半角英語です。

###発生している問題・エラーメッセージ

utf-8 utf-8 utf-8 utf-8 Traceback (most recent call last): File "test.py", line 11, in <module> connection = cx_Oracle.connect('XXXXXX','XXXXXX','192.168.XXX.XX/orcl1') UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 125-126: invalid continuation byte

###該当のソースコード

python

1# coding: utf-8 2import cx_Oracle 3import sys 4 5# 文字コードとかを調べる? 6print(sys.getdefaultencoding()) 7print(sys.stdin.encoding) 8print(sys.stdout.encoding) 9print(sys.stderr.encoding) 10 11# ユーザ名とパスワードは半角英数字です。 12conn = cx_Oracle.connect('ユーザ名','パスワード','192.168.XXX.XX/orcl1') 13cursor = conn.cursor() 14cursor.execute("select * from REGIONS") 15 16for row in cursor: 17 print(row) 18

###試したこと
コマンドプロンプトでchcpを使って文字コードを変更しました。
chcp 65001で試したのですが結果は変わらなかったです。
ファイルの文字コードをshift_jisで保存して実行しましたが、結果は変わらなかったです。

###補足情報(言語/FW/ツール等のバージョンなど)
pythonのバージョン
Python 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)] on win32
sqlplus Oracleサーバ

C:\Users\username>sqlplus ユーザ名/パスワード@192.168.XXX.XX/orcl1 SQL*Plus: Release 11.1.0.6.0 - Production on X YY月 7 HH:MM:SS YYYY Copyright (c) 1982, 2007, Oracle. All rights reserved. Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options に接続されました。 >SQL

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Microsoft Visual Studio 2005 Redistributable for the 11.2 clientのインストールでうまくいったようです
こちらでも試してみます
https://github.com/oracle/python-cx_Oracle/issues/71

投稿2017/11/21 00:06

nakano24

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

全く同じ状況で困ってます
ところでOracleクライアントは32bit版ではないですか?
https://github.com/oracle/python-cx_Oracle/issues/65

投稿2017/11/20 23:55

nakano24

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問