將altibase記憶體庫的表匯出到oracle資料庫
將altibase記憶體庫的表匯出到oracle資料庫,目前還沒有比如dblink之類的可以直接使用。我們可以藉助altibase的iloader工具來進行匯出源表的表結構和資料,然後在oracle端藉助sqlldr進行匯入。iloader匯出的資料格式是以'^'來間隔欄位的。
從記憶體庫匯出表:
iloader -s 192.168.0.1 -u username -p passwd -port 20300 \
formout -f table_name.fmt -T table_name
iloader -s 192.168.0.1 -u username -p passwd -port 20300 \
out -f table_name.fmt -d table_name.dat -log table_name.log
table_name.fmt 內容:
table table_name
{
OWNER_ID integer;
OWNER_TYPE integer;
SYS_SVC_TYPE integer;
PRODUCT_ID integer;
ATTR_ID integer;
ATTR_VALUE bigint;
REGION_ID char (1);
ABS_ACTIVE_TIME date;
ABS_INACTIVE_TIME date;
MONTH integer;
VERSION_NO integer;
}
DATEFORM. YYYY/MM/DD HH:MI:SS
table_name.dat的內容
/home/altibase/tmp>more table_name.dat
1000000104017009^0^430418129^99020324^0^99010082^99020082^0^0^20090131164033^20500101000000
2009013000002049^0^430418129^99020324^0^99010082^99020082^0^0^20090201000000^20500101000000
2009013100002167^0^430418129^99030181^0^99000497^99420850^0^0^20090201000000^20500101000000
2009013100002213^0^430418129^99030194^0^99010086^99420850^0^0^20090131161120^20370101000000
2009013100002215^0^430418129^99020068^0^99010068^99020068^0^0^20090131161409^20090131164033
2009013100002222^0^431333326^99030205^0^99010082^99020082^0^0^20090201000000^20500101000000
2009013100002223^0^431333326^99030186^0^99010082^99020082^0^0^20090201000000^20500101000000
這裡的fmt和dat並不是匹配的,我只是為了說明一下格式而已。
根據上面的表結構和dat檔案,可以確定sqlldr用的控制檔案 table_name.ctl:
LOAD DATA
INFILE 'table_name.dat'
INTO TABLE table_name
fields terminated BY '^'
trailing nullcols
(
OWNER_ID decimal external,
OWNER_TYPE decimal external,
SYS_SVC_TYPE decimal external,
PRODUCT_ID decimal external,
ATTR_ID decimal external,
ATTR_VALUE decimal external,
REGION_ID char ,
ABS_ACTIVE_TIME date "YYYY/MM/DD HH24:MI:SS",
ABS_INACTIVE_TIME date "YYYY/MM/DD HH24:MI:SS",
MONTH decimal external,
VERSION_NO decimal external
)
然後在oracle庫建立表:
CREATE TABLE table_name
(
OWNER_ID NUMBER,
OWNER_TYPE NUMBER,
SYS_SVC_TYPE NUMBER,
PRODUCT_ID NUMBER,
ATTR_ID NUMBER,
ATTR_VALUE NUMBER,
REGION_ID CHAR(1),
ABS_ACTIVE_TIME DATE,
ABS_INACTIVE_TIME DATE,
MONTH NUMBER,
VERSION_NO NUMBER
)
;
匯入到oracle庫:
sqlldr username/passwd control=table_name.ctl log=table_name.log direct=true rows=10000
從記憶體庫匯出表:
iloader -s 192.168.0.1 -u username -p passwd -port 20300 \
formout -f table_name.fmt -T table_name
iloader -s 192.168.0.1 -u username -p passwd -port 20300 \
out -f table_name.fmt -d table_name.dat -log table_name.log
table_name.fmt 內容:
table table_name
{
OWNER_ID integer;
OWNER_TYPE integer;
SYS_SVC_TYPE integer;
PRODUCT_ID integer;
ATTR_ID integer;
ATTR_VALUE bigint;
REGION_ID char (1);
ABS_ACTIVE_TIME date;
ABS_INACTIVE_TIME date;
MONTH integer;
VERSION_NO integer;
}
DATEFORM. YYYY/MM/DD HH:MI:SS
table_name.dat的內容
/home/altibase/tmp>more table_name.dat
1000000104017009^0^430418129^99020324^0^99010082^99020082^0^0^20090131164033^20500101000000
2009013000002049^0^430418129^99020324^0^99010082^99020082^0^0^20090201000000^20500101000000
2009013100002167^0^430418129^99030181^0^99000497^99420850^0^0^20090201000000^20500101000000
2009013100002213^0^430418129^99030194^0^99010086^99420850^0^0^20090131161120^20370101000000
2009013100002215^0^430418129^99020068^0^99010068^99020068^0^0^20090131161409^20090131164033
2009013100002222^0^431333326^99030205^0^99010082^99020082^0^0^20090201000000^20500101000000
2009013100002223^0^431333326^99030186^0^99010082^99020082^0^0^20090201000000^20500101000000
這裡的fmt和dat並不是匹配的,我只是為了說明一下格式而已。
根據上面的表結構和dat檔案,可以確定sqlldr用的控制檔案 table_name.ctl:
LOAD DATA
INFILE 'table_name.dat'
INTO TABLE table_name
fields terminated BY '^'
trailing nullcols
(
OWNER_ID decimal external,
OWNER_TYPE decimal external,
SYS_SVC_TYPE decimal external,
PRODUCT_ID decimal external,
ATTR_ID decimal external,
ATTR_VALUE decimal external,
REGION_ID char ,
ABS_ACTIVE_TIME date "YYYY/MM/DD HH24:MI:SS",
ABS_INACTIVE_TIME date "YYYY/MM/DD HH24:MI:SS",
MONTH decimal external,
VERSION_NO decimal external
)
然後在oracle庫建立表:
CREATE TABLE table_name
(
OWNER_ID NUMBER,
OWNER_TYPE NUMBER,
SYS_SVC_TYPE NUMBER,
PRODUCT_ID NUMBER,
ATTR_ID NUMBER,
ATTR_VALUE NUMBER,
REGION_ID CHAR(1),
ABS_ACTIVE_TIME DATE,
ABS_INACTIVE_TIME DATE,
MONTH NUMBER,
VERSION_NO NUMBER
)
;
匯入到oracle庫:
sqlldr username/passwd control=table_name.ctl log=table_name.log direct=true rows=10000
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10867315/viewspace-573380/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大文字資料,匯入匯出到資料庫資料庫
- Oracle - 資料庫的記憶體結構Oracle資料庫記憶體
- Oracle - 資料庫的記憶體調整Oracle資料庫記憶體
- Oracle 巧用外部表將大量excel資料匯入資料庫OracleExcel資料庫
- 記憶體資料庫記憶體資料庫
- 將資料匯出到ExcelExcel
- 【大頁記憶體】Oracle資料庫配置大頁記憶體記憶體Oracle資料庫
- 將informix匯出的文字資料匯入oracle資料庫ORMOracle資料庫
- 轉載:利用SQL*Loader將 Excel 資料匯出到資料庫中SQLExcel資料庫
- ORACLE資料庫裡表匯入SQL Server資料庫Oracle資料庫SQLServer
- 將SQLServer表直接匯入Oracle資料庫(圖文教程)SQLServerOracle資料庫
- 將MYSQL中資料匯出到EXCEL表MySqlExcel
- Mongodb記憶體資料庫MongoDB記憶體資料庫
- 如何將資料從Hadoop匯出到關係型和NoSQL資料庫?HadoopSQL資料庫
- oracle資料庫記憶體分配(sga和pga)Oracle資料庫記憶體
- AIX 下oracle 資料庫記憶體優化AIOracle資料庫記憶體優化
- 用SQL Loader將Excel資料匯出到OracleSQLExcelOracle
- 如何配置oracle資料庫伺服器的記憶體Oracle資料庫伺服器記憶體
- 【記憶體資料庫】TimesTen記憶體資料庫
- 從Oracle資料庫故障到AIX記憶體管理Oracle資料庫AI記憶體
- Oracle資料庫記憶體監控及意義Oracle資料庫記憶體
- 磁碟資料庫與記憶體資料庫的特點比較資料庫記憶體
- 記憶體資料庫如何發揮記憶體優勢?記憶體資料庫
- PROC++批次匯入匯出ORACLE資料庫表 (轉)Oracle資料庫
- Python記憶體資料庫/引擎Python記憶體資料庫
- 構建個人記憶體資料庫記憶體資料庫
- 將XML匯入資料庫XML資料庫
- oracle 備份資料庫,匯出資料庫Oracle資料庫
- Oracle資料庫高效能秘密之資料快取記憶體Oracle資料庫快取記憶體
- 如何將資料熱匯出到檔案
- 從hive將資料匯出到mysql(轉)HiveMySql
- Aerospike 分散式記憶體資料庫 筆記ROS分散式記憶體資料庫筆記
- 將資料庫中資料匯入至solr索引庫資料庫Solr索引
- 記憶體資料庫的行存表索引是怎麼做到加速的記憶體資料庫索引
- 瀚高資料庫記憶體結構資料庫記憶體
- 記憶體資料庫發展歷程記憶體資料庫
- 記憶體資料庫快取介紹記憶體資料庫快取
- 主要測試記憶體和資料庫記憶體資料庫