問題タブ [cx-oracle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
17518 参照

python - Python でデータベース接続タイムアウトを設定する

データベースにアクセスする必要がある RESTful API を作成しています。Restish、Oracle、および SQLAlchemy を使用しています。ただし、Restish やその他の Web API を考慮せずに、できるだけ一般的に質問を組み立てようとします。

クエリを実行する接続のタイムアウトを設定できるようにしたいと考えています。これは、実行時間の長いクエリが破棄され、接続が破棄 (またはリサイクル) されるようにするためです。このクエリ タイムアウトはグローバル値にすることができます。つまり、クエリまたは接続の作成ごとに変更する必要はありません。

次のコードがあるとします。

上記のコードを変更して、クエリのタイムアウトを設定するにはどうすればよいですか? このタイムアウトは接続の作成にも適用されますか?

これは、java.sql.Statement の setQueryTimeout(int seconds) メソッドが Java で行うことと似ています。

ありがとう

0 投票する
1 に答える
6371 参照

python - cx_Oracleおよび出力変数

Oracle10データベースでこれをもう一度実行しようとしています。

しかし、私は得ています

この方法でcx_OracleでPL/SQLブロックを定義することは可能ですか?

0 投票する
3 に答える
56297 参照

python - UPDATEを実行するときに明示的にコミットする必要があるのはなぜですか?

これが私のコードです:

を削除してもconn.commit()、テーブルは更新されません。しかし、selectステートメントの場合、それは必要ありませんconn.commit()。なんで気になるの?

0 投票する
2 に答える
2506 参照

python - cx_oracle execute() が私の文字列を気に入らないのはなぜですか?

少し前に cx_oracle をダウンロードし、データを XML に変換するスクリプトを作成しました。OS を再インストールし、最新バージョンの cx_Oracle (5.0.3) を取得する必要がありましたが、突然コードが壊れてしまいました。

最初のことは、cx_Oracle.connect がユーザー名とパスワードに文字列ではなく Unicode を必要としていたことでした。これは非常に簡単に修正できました。しかし、今はcursor.executeで失敗し続け、type()が文字列であると私に言ったとしても、私の文字列は文字列ではないことを教えてくれます。

これは、私が何年も前に最初に使用したテストスクリプトで、古いバージョンでは問題なく動作しましたが、現在 cx_Oracle では動作しません。

それを実行すると、次のようになります。

トレースバック (最新の呼び出しが最後): ファイル "C:\NetBeansProjects\Python\src\db_temp.py"、48 行目、cursor.execute(sql) の TypeError: None または文字列を予期しています

私が間違っているかもしれないことを誰かが知っていますか?

0 投票する
3 に答える
36842 参照

python - cx_Oracle の使用時に列名を出力するより良い方法

cx_Oracle を使用した例が見つかりました。この例は のすべての情報を示していますCursor.description

私が見たかったのはCursor.description[0](名前)のリストだったので、コードを変更しました:

列の名前を出力するより良い方法があると思います。Python 初心者の代替手段を教えてください。:-)

0 投票する
2 に答える
482 参照

python - cx_Oracle.OracleCursor の型検証

これは非常に基本的な質問かもしれません。変数の型が cx_Oracle.OracleCursor であることを検証したいので、いくつか試してみましたが、すべて失敗しました。

のタイプを検証するにはどうすればよいcursorですか?

追加の質問は、無効な型エラーに適した例外/エラーは何ですか?

助けてくれてありがとう!

0 投票する
0 に答える
1482 参照

python - cx_Oracle の Unicode SQL クエリ

私は以下を持っています:

これを行うと、次のエラーが表示されます。

クエリを非ユニコード (u なし) にすると、クエリは実行されますが、何も返されません

編集:最初のコメントへの返信:

NLS_LANGUAGE はブルガリア語です。

NLS_CHARACTERSET は CL8MSWIN1251 です

言語はパイソン...

はい、cty_name = 'София' のレコードがあります

接続は次のとおりです。

0 投票する
2 に答える
3666 参照

python - Pythonをインポートしようとするcx_Oracleの問題

Linux RHEL x86_64 の Apache WS で python を実行しようとしています。

Python2.5 と Apache をインストールして構成した後、Oracle Instant Client (basic と sdk) を .rpm ファイルで問題なくインストールします。

環境変数を設定しました

次に、cx_Oracle も .rpm ファイルでインストールし、問題なく再インストールします。

Pythonでcx_Oracleをインポートしようとすると、メッセージが表示されました

私は成功せずに答えを探します。ヒントはありますか?

0 投票する
1 に答える
3521 参照

python - cx_OracleをさまざまなバージョンのOracleクライアントにデプロイする

cx_Oracleを使用してOracleデータベースに接続する小さなPythonアプリがいくつかあります。これらのアプリは、多くの場合正常に機能するpy2exeを使用してコンパイルすることでデプロイします。

問題は、これをインストールする必要のある多くの人々に標準のOracle Clientバージョン(たとえば、9iおよび10g)がないことであり、すべての人に単一のOracleClientバージョンで標準化させようとするのは非常に苛立たしいことです。現在、9i用のcx_Oracle 4.4.1で9.2クライアントを使用しているため、py2exeを実行すると、結果のexeにはcx_Oracle 4.4.1ライブラリが含まれ、10gクライアントでは機能しません。

Oracleのどのバージョンの特定の機能も使用していないため、cx_Oracleの互換性の問題を除いて、使用されているクライアントのバージョンを気にする必要はありません。

理想的な解決策は、マシンにインストールされているOracleClientから完全に独立したバージョンを何らかの方法でコンパイルすることです。

それが不可能な場合は、Oracleのメジャーバージョン(my_app_9i.exe、my_app_10g.exeなど)ごとに個別のexeをコンパイルしますが、新しいcx_Oracleをインストールすると、古いバージョンでは、変更を加えるたびに他のバージョンをコンパイルするためにライブラリを前後に交換し続ける必要がありました。

アドバイスやその他のオプションは大歓迎です。

0 投票する
2 に答える
1248 参照

python - cx_Oracle を使用して、長い文字列 (>4000 バイト) の配列を Oracle (11gR2) ストアド プロシージャに渡す

cx_Oracle を使用して、多くの長い文字列 (>4000 バイト、ただし <10,000 バイト) を一括ロードする必要があります。表のデータ型は CLOB です。これらの文字列を 1 億以上ロードする必要があります。これを1つずつ行うのは面倒です。一括で行う、つまりcursor.arrayvar()を使用するのが理想的です。ただし、CLOB は配列をサポートしていません。BLOB、LOB、LONG_STRING LONG_RAW も同様です。どんな助けでも大歓迎です。