実現したいこと
python で SQL Server の varchar の文字列を取得したい。
前提
既存の SQL Server のデータを分析するための python のプログラムを作成しようとしています。
下記のプログラムで取得してる M_商品.商品名 は varchar 型ですが、これを取得しようとするとエラーが発生します。
SQL Server 側には変更を加えず、python 側で対応する方法を知りたいです。
pyodbc を使用していますが、他の接続方法で解消するならそれでも構いません。
もし python で解消できない場合は他の言語にすることも検討しますが、最終的に Docker コンテナにしたいので、その前提でお勧めの言語があれば教えていただけると助かります。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "/workspace/app/test.py", line 12, in <module> row = cursor.fetchone() ^^^^^^^^^^^^^^^^^ pyodbc.Error: ('HY000', '[HY000] [Microsoft][ODBC Driver 17 for SQL Server]Unicode conversion failed (22) (SQLGetData)')
該当のソースコード
python
1import pyodbc 2 3server = "xxxxxxxx" 4database = "xxxxxxxx" 5user = "xxxxxxxx" 6password = "xxxxxxxx" 7 8con = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=' + server + ';DATABASE=' + database + ';UID=' + user + ';PWD=' + password + ';') 9cursor = con.cursor() 10cursor.execute("SELECT 商品名 FROM M_商品 WHERE 商品CD = 1001;") 11 12row = cursor.fetchone() 13 14while row: 15 print(row) 16 row = cursor.fetchone() 17 18cursor.close()
試したこと
別途動作テスト用のテーブルを作成し、nvarchar 型の値を取得する場合は正常に動作することを確認しました。
補足情報(FW/ツールのバージョンなど)
Python 3.12.1
pyodbc 5.0.1
msodbcsql 17.10.5.1
SQL Server Standard 15.0.4236.7

回答1件
あなたの回答
tips
プレビュー