Pythonに関する追加情報
この項の内容は次のとおりです。
Pythonアプリケーションの型マッピング
python-oracledb型(言語拡張モジュールを介して入手可能)とTimesTen SQL型とのマッピングがあります。
表3-1に、python-oracledb型(言語拡張モジュールを介して入手可能)とTimesTen SQL型とのマッピングを示します。
ノート:
TimesTenでの暗黙的データ型変換により、追加のTimesTen SQL型をこれらのpython-oracledb型にマップできます。『Oracle TimesTen In-Memory Database SQLリファレンス』のデータ型の変換を参照してください。
現在のリリースでのデータ型サポートの最新情報については、TimesTen PythonのサンプルにあるREADME.md
ファイルを参照してください。
表3-1 python-oracledbの型マッピング
python-oracledbの型 | TimesTenの型 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pythonの障害モード
Pythonにはいくつかの障害モードがあります。
次のことに注意してください。
-
エラー・メッセージが、同じ条件下でOracleによって生成されるメッセージとは若干異なる場合があります。
-
Pythonのメソッド
Cursor.executemany()
については、TimesTenでは、batcherrors
オプションは無視されるためデフォルトのbatcherrors=false
設定のみがサポートされています。バッチ内のいずれかの行でエラーが発生した場合は、必ずエラーが返されます。(これに対して、Oracle Databaseではbatcherrors=true
がサポートされており、バッチ内のいずれかの行が成功すると必ず成功が返されます。)また、TimesTenデータベースに対して、1つのバッチ内で複数のエラーが発生した場合、TimesTenではエラーの順序付けは試行されませんが、Oracleデータベースに対して発生した場合にはそれらは順序付けられます。
Pythonサンプル: TimesTenに接続してSQLを実行する
このサンプル・プログラムは、次を実行します:
-
TimesTenデータベースに接続します。
-
employees
という名前の表を作成します。 -
表に3つの行を挿入します。
-
行を選択して表示します。
-
表を削除します。
-
データベースから切断します。
import oracledb
def run():
try:
oracledb.init_oracle_client();
connection = oracledb.connect(
user='appuser',
password='password',
dsn='localhost/sampledb:timesten_direct')
cursor = connection.cursor()
cursor.execute('''
CREATE TABLE employees(first_name VARCHAR2(20), last_name VARCHAR2(20))''')
print('Table created')
values = [['ROBERT', 'ROBERTSON'], ['ANDY', 'ANDREWS'], ['MICHAEL', 'MICHAELSON']]
cursor.executemany('INSERT INTO employees VALUES (:1, :2)', values)
print('Inserted', len(values), 'employees into the table')
cursor.execute('''
SELECT first_name, last_name FROM employees''')
for fname, lname in cursor:
print('Selected employee:', fname, lname)
cursor.execute('DROP TABLE employees')
print('Table dropped')
cursor.close()
connection.close()
print('Connection closed')
except Exception as e:
print('An error occurred', str(e))
run()
このサンプル・プログラムを実行してTimesTenデータベースに接続すると、次の出力が返されます:
Table created
Inserted 3 employees into the table
Selected employee: ROBERT ROBERTSON
Selected employee: ANDY ANDREWS
Selected employee: MICHAEL MICHAELSON
Table dropped
Connection closed
サンプル・プログラムでデータベースへの接続に使用される簡易接続方法の詳細は、「タスク4: TimesTenの接続の構成」を参照してください。