阅读:2953回复:3
使用DGN2SDO装载数据到Oracle Spatial
<P>DGN2SDO是Bentley在GSX(GeoSpatial Extension)中提供的命令行数据装载工具。它可以把DGN数据转换为SQL Loader脚本。</P>
<P>以下通过一个例子介绍它的使用。首先我们可以创建一个批处理文件以方便我们多次使用。</P> <P>文件名:load2sdo.bat</P> <P>文件内容:</P> <P>set dgn2sdo=C:\ms08090365en\GeospatialExtension\bin\dgn2sdo.exe<br></P> <P>set inmetadb=gsx/gsx@dev</P> <P>%dgn2sdo% IN_FILE=C:\usa.dgn IN_TYPE=XFM IN_METADB=%inmetadb% IN_WU=usa_imp IN_FEATURE=roadtrl020</P> <P>DGN2SDO支持DGN/XFM两种类型数据的转换,必须的参数为IN_TYPE、IN_FILE、IN_METADB。IN_TYPE的值为DGN或XFM;IN_FILE的值为文件路径名列表,可以使用通配符;IN_METADB为Oracle数据库连接信息。</P> <P>对于DGN模式,必须的参数为IN_GEOM_TYPE、OUT_GEOM_TABLE。IN_GEOM_TYPE的值为Oracle geometry类型;OUT_GEOM_TABLE的值为输出的表名。</P> <P>对于XFM模式,必须的参数为IN_WU、IN_FEATURE。IN_WU的值为XFM工作空间名;IN_FEATURE为转换的要素名称列表。</P> <P>其他可选参数参见文档。</P> <P>运行load2sdo.bat会生成output目录,里面有日志和SQL Loader文件(.SQL, .CTL, .DAT)。</P> <P>然后运行生成的MasterLoad.BAT文件,将会自动加载数据到Oracle数据库。</P> |
|
1楼#
发布于:2007-06-29 15:07
<P>DGN2SDO.log内容:</P>
<P>2007-6-29 12:56:56<BR>Output directory has been set to (C:\output)<BR>Loading the Geospatial Extension<BR>Opening design file "C:\usa.dgn"<BR>Obtaining instance cursor<BR><ECCompoundCriteria combinationOperator="COMBO_Or"><BR> <criteriaList><BR> <ECClassCriteria className="roadtrl020" /><BR> </criteriaList><BR></ECCompoundCriteria><BR>Commencing translation<BR>Total instances read = 47014<BR>Total instances written = 47014<BR>Translation completed<BR>Closed design file "C:\usa.dgn"<BR>Generating scripts for (roadtrl020). <BR>Generating master batch file (MasterLoad). <BR>2007-6-29 13:01:34<BR></P> <P>可以看到转换了47014个要素,耗时4分38秒(在MS VPC2004中运行的结果)。</P> |
|
2楼#
发布于:2007-06-29 15:09
<P>GeomTableLoad_roadtrl020.log内容:</P>
<P><BR>SQL*Loader: Release 10.2.0.1.0 - Production on Fri Jun 29 13:11:46 2007</P> <P>Copyright (c) 1982, 2005, Oracle. All rights reserved.</P> <P>Control File: C:\output\GeomTableLoad_roadtrl020.CTL2A<BR>Data File: Feature_ROADTRL020.dat<BR> Bad File: C:\output\Feature_ROADTRL020.bad<BR> Discard File: none specified<BR> <BR> (Allow all discards)</P> <P>Number to load: ALL<BR>Number to skip: 0<BR>Errors allowed: 50<BR>Bind array: 64 rows, maximum of 256000 bytes<BR>Continuation: 1:1 = 0X23(character '#'), in next physical record<BR>Path used: Conventional</P> <P>Table ROADTRL020, loaded from every logical record.<BR>Insert option in effect for this table: REPLACE<BR>TRAILING NULLCOLS option in effect</P> <P> Column Name Position Len Term Encl Datatype<BR>------------------------------ ---------- ----- ---- ---- ---------------------<BR>FNODE_ FIRST * | CHARACTER <BR>TNODE_ NEXT * | CHARACTER <BR>LPOLY_ NEXT * | CHARACTER <BR>RPOLY_ NEXT * | CHARACTER <BR>LENGTH NEXT * | CHARACTER <BR>ROADTRL020 NEXT * | CHARACTER <BR>FEATURE NEXT * | CHARACTER <BR> NULL if FEATURE = BLANKS<BR>NAME NEXT * | CHARACTER <BR> NULL if NAME = BLANKS<BR>STATE_FIPS NEXT * | CHARACTER <BR> NULL if STATE_FIPS = BLANKS<BR>STATE NEXT * | CHARACTER <BR> NULL if STATE = BLANKS<BR>OGC_GEOMETRY DERIVED * COLUMN OBJECT </P> <P>*** Fields in OGC_GEOMETRY<BR>SDO_GTYPE NEXT * | CHARACTER <BR>SDO_SRID NEXT * | CHARACTER <BR>SDO_ELEM_INFO DERIVED * / VARRAY </P> <P>*** Fields in OGC_GEOMETRY.SDO_ELEM_INFO<BR>E FIRST * | CHARACTER <BR>*** End of fields in OGC_GEOMETRY.SDO_ELEM_INFO</P> <P>SDO_ORDINATES DERIVED * / VARRAY </P> <P>*** Fields in OGC_GEOMETRY.SDO_ORDINATES<BR>O FIRST * | CHARACTER <BR>*** End of fields in OGC_GEOMETRY.SDO_ORDINATES</P> <P>*** End of fields in OGC_GEOMETRY</P> <P>XFM_ID NEXT * | CHARACTER <BR> NULL if XFM_ID = BLANKS</P> <P><BR>Table ROADTRL020:<BR> 47014 Rows successfully loaded.<BR> 0 Rows not loaded due to data errors.<BR> 0 Rows not loaded because all WHEN clauses were failed.<BR> 0 Rows not loaded because all fields were null.</P> <P><BR>Space allocated for bind array: 248192 bytes(64 rows)<BR>Read buffer bytes: 1048576</P> <P>Total logical records skipped: 0<BR>Total logical records read: 47014<BR>Total logical records rejected: 0<BR>Total logical records discarded: 0</P> <P>Run began on Fri Jun 29 13:11:46 2007<BR>Run ended on Fri Jun 29 13:12:15 2007</P> <P>Elapsed time was: 00:00:28.68<BR>CPU time was: 00:00:08.36<BR></P> <P>创建了一个新的ROADTRL020空间数据表。</P> |
|
3楼#
发布于:2007-06-30 17:28
dddddddddddddddddd
|
|