[pgsql-jp: 31718] [Q] can't inport/export with ODBC from/to PostgreSQL with datetime
Takayasu Penkiya Iwanashi
takayasu @ pooh3.a.perfect-liberty.or.jp
2003年 12月 6日 (土) 18:45:03 JST
岩梨と申します。
このたび、ODBC を使ってみて、不可解な症状に悩まされております。
是非、ご教授いただきたくお願いもうしあげます。
やりたい事:SQL Server のテーブルを Access で操作(テーブルをリンク、即、エクスポート)して
テーブルを PostgreSQL へ移したい。
できたこと:PostgreSQL 7.0.2 on i386-unknown-freebsdelf4.1, compiled by gcc 2.95.2
だと、SQL Server へリンクを張り、問題なくエクスポートできる。(約10 tables)
失敗した事:PostgreSQL 7.3.2 on i386-portbld-freebsd4.3, compiled by GCC 2.95.3
には、エクスポートできる場合とできない場合がある。(日付/時刻型が含まれるとできない)
環境:
ODBC側: windows98 + "Office Namiさんの PostgreSQL ODBC Driver 日本語版 ウェブサイト"
+ access2000
PostgreSQL : FreeBSD 4.3-RELEASE + PostgreSQL 7.3.2 (machine A)
FreeBSD 4.1-RELEASE + PostgreSQL 7.0.2 (macnine B)
検証その1:
SQL Server のテーブルをリンク。日付/時刻型を含むテーブルをエクスポートしてみる。
ODBC--呼び出しが失敗しました。
[Microsoft][ODBC Driver Manager]情報データ型が有効範囲にありません。(#0)
と表示されます。この時、PostgreSQL の log には、
ERROR: Type "datetime" does not exist
とでます。
検証その2:
Access で作成した table addressbook
(id オートナンバー 主キー, name text型, address text型, age 数値型)
は問題なくエクスポートできる。-> A,B
これと同じような、addressbook2
(id オートナンバー 主キー, name text型, address text型, age 数値型,birth 日付/時刻型)
を machine A へエクスポートしようとすると、-> A
ODBC--呼び出しが失敗しました。
[Microsoft][ODBC Driver Manager]情報データ型が有効範囲にありません。(#0)
と表示されます。Posgreの方のlog は、
ERROR: Type "datetime" does not exist
となります。
machine B へは問題なくエクスポートできています。
B => Table "addressbook2"
Attribute | Type | Modifier
-----------+-------------+----------
id | integer |
name | varchar(50) |
adress | varchar(50) |
age | integer |
birth | timestamp |
検証その3:
machine A で作成したテーブル
CREATE TABLE a1( no serial, name varchar(20), birth date);
をインポートする。
手作業で (1,papa,1970/01/01)と入力。
エクスポートする。検証1と同じエラーが、access と postgreSQL のログにでる。
ちなみに、インポートした a1 は、( no 数値型, name テキスト型, birth 日付/時刻型)
となっている。
検証その4:
machine A で作成したテーブル
CREATE TABLE a2( no serial, name varchar(20), birth timestamp);
をインポートしてみると、
( no 数値型, name テキスト型, birth テキスト型)となってしまっている。
考察(推測?): ODBC が日付/時刻型を 7.0.2 へはちゃんと timestamp として渡せているのに、
7.3.2 へは datetime として渡そうとして失敗している、、のでしょうかぁ?
とうざの解は、7.0.2 で pg_dump かな、と思っていますが、今後の事を考えると、悩ましいのです。
よろしくお願いもうしあげます。
--
Takayasu Penkiya Iwanashi
pgsql-jp メーリングリストの案内