0

Oracle からレコードを読み取り、それらを Vertica に挿入する小さなアプリケーションを Python で作成しています。

Oracle から読み取るにはcx_Oraclepython パッケージを使用し、Vertica に書き込むにはpyodbcパッケージを使用しています。

Oracle から日付列を読み取ると、次の形式で取得されます。

datetime.datetime(2011, 9, 13, 10, 47, 54, 795658)

編集:

vertica で次のクエリを実行すると:

INSERT INTO "TEST" (COL1) values(datetime.datetime(2011, 9, 13, 10, 47, 54, 795658))

次のエラーが表示されます。

Error: ERROR: schema "datetime" does not exist
SQLState:  3F000
ErrorCode: 0

私の質問は、これを Vertica タイムスタンプ列に変換する方法です。

4

1 に答える 1

1

Python コードと SQL を混在させようとしています。Vertica サーバーはdatetime.datetime情報を SQL スキーマとして解釈しようとしますが、失敗します。

代わりにパラメーターを使用します。

from datetime import datetime

cursor.execute('INSERT INTO "TEST" (COL1) values(?)',
    datetime(2011, 9, 13, 10, 47, 54, 795658))
于 2012-07-10T13:31:08.080 に答える