2016-05-22 7 views
0

DB2で分離レベルを設定する非常に単純なSQL文を実行しようとしています。私はそうのようにそれを実行します。IBM DB2用のPythonドライバが動作しません

>>> import ibm_db 
>>> cnx = ibm_db.connect("sample", "root", "root") 
>>> sql = "CHANGE ISOLATION TO CS" 
>>> query_stmt = ibm_db.prepare(cnx, sql) 
>>> ibm_db.execute(query_stmt) 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
Exception 

は、私もこれを試してみました:

>>> stmt = ibm_db.exec_immediate(cnx, sql) 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
Exception 

私はthis公式のチュートリアルから取っ分離レベルを設定するためのクエリ。だから何が問題なのですか?どうすれば修正できますか?

EDIT

私はまた、他の単純なクエリを試してみました。そして、それらのどれも機能しません:

>>> ibm_db.exec_immediate(cnx, "LIST TABLES") 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
Exception 

私がいくつかの設定が不足しているように思えるが、私はそれをチェックして、どのようにそれをデバッグする方法がわかりません。助けが必要。

db2 => set schema sample 

をこのエラーメッセージました:

EDIT私はDB2 CLPでこれをしようとしたデータベース接続が存在しない

SQL1024Nを。 SQLSTATE = 08003

私はこれを行うときしかし、:一体何が起こっているか、そう

... 
database alias SAMPLE 
database name SAMPLE 
... 

db2 => LIST DATABASE DIRECTORY 

を私はこれを取得しますか? PS。私はWindows 10で作業しています。

EDIT

まあ、私は、コマンドラインでデータベースをサンプリングしても、すべてのテーブルをリストされているために接続することができました。しかし、私はPythonで同じことをすることはできません。私はselect * from actのような他の簡単なクエリを試してみました - コンソールではいくつかの行を取得しましたが、Pythonではまだこれが得られますException

PROOFここ

が証拠である:

enter image description here

あなたが最初の画面で見ることができるように、すべてがOKです。しかし、同じことは、第2の画面に従ってPythonでは機能しません。

enter image description here

答えて

0

1)まず、いくつかのダムチェックは:接続を実行し、受付DBサーバです。コマンドプロンプトのSQLツールから接続してテーブルとリストテーブルを作成できるかどうかを確認しましたか?

2)ibm_dbドライバーのソースコードをhttps://pypi.python.org/pypi/ibm_db/からダウンロードし、テスト用フォルダーがいくつかあります。 はダウンロードしたテストフォルダのconfig.pyと接続設定を比較します。

これは基本的な接続性を解決するためのものです。

引用した公式チュートリアルでは、「タイプ2接続を使用して分離変更が許可されています」と記載されています。 ibm_dbがタイプ2のドライバーであるかどうかはわかりません。ダウンロードしたソースのREADMEには、ドライバの種類に関連するものは表示されません。

よろしく -Manas

+0

これですべてを少し詳しく説明できれば素晴らしいと思います。たとえば、いくつかの "ダムチェック"などを行う方法を説明します。私はDB2を初めて使い、すべてのコマンドがすべて正常に設定されていることを確認するためのすべてのコマンドを知っていません。 – Jacobian

+0

db2インストールのドキュメントを確認してください。私は決してdb2を使用していません –

0

のDB2 CLPコマンドSQLステートメントではありません。それらはCLP自体によってのみ解釈することができます。正確な文構文については、SQL referenceを参照してください。たとえば、セッション分離レベルを設定するには、文set current isolation csを使用します。

+0

私は 'select * from act'のような他のsqlコマンドも試しました。コマンドラインでは、このクエリはサンプルテーブルからデータを返しますが、Pythonでは動作しません。 – Jacobian

関連する問題