在這裡把我遇到的一些問題寫一下,做個記錄。
Ora2Pg:
- Ora2Pg.pm 這個檔案放在 /usr/lib/perl5/site_perl/5.10.0 。
主要是改這個檔
- SDO_GEOMETRY => point
懶的改 Ora2Pg.pm,就直接在輸出後的SQL,改成point。
但SDO_GEOMETRY的值,還是要靠改 Ora2Pg.pm程式來輸出。
- 如果遇到亂碼,可以利用Iconv 來解決
iconv -c -f UTF-8 -t UTF-8 orig_dump.sql > stripped_dump.sql
這個很方便,就直接把亂碼過濾掉,匯入資料時就不會出錯了。
- NUMBER < 5 => smallint
NUMBER < 10 => integer
NUMBER >=10 => bigint
- Oracle 中,END_TIME 預設值為sysdate + 7
"END_TIME" DATE DEFAULT sysdate+7,
Ora2Pg輸出後的 SQL 為
"end_time" timestamp DEFAULT CURRENT_TIMESTAMP+7
在匯入時會出現錯誤,所以要修改一下。
要改成
"end_time" timestamp DEFAULT CURRENT_TIMESTAMP+'7 days' -
如果要用 point 是 Index,則自己改輸出檔會比較方便。
CREATE INDEX ix_geo_position ON "geo_position" using gist(circle("position",0));
這樣可以成功建Index,但還沒有實際使用,所以不知道是不是正確。
- SYSDATE => NOW()
0 comments:
張貼留言