最近对oracle学习培训了一下,学到了不少东西,主要是对系统表了解了很多,再加上最近在做GDB反向生成ER图的工作,更是觉得很受用,但是还是没能很好的解决问题。我的需求是:将GDB中要素类和对象类的表名和字段名的别名放到oracle的注释中去,可是arcgis10之后,GDB的系统表关于字段的这些信息都是用XML来保存,并且以blob的数据格式存储的,我目前提取出来的XML中还有中文乱码,不知道改如何解决,才能不显示中文乱码!
SELECT sdexmltotext(d1.xml_doc) as definition ,d1.xml_doc_val ,GDB_ITEMS.Name,d1.xml_doc
FROM GDB_ITEMS LEFT OUTER JOIN SDE_XML_DOC1 d1 ON
GDB_ITEMS.definition = d1.sde_xml_id where name='SDE.Road'
其中sdexmltotext我用sql语句 select * from all_objects where object_name=upper('sdexmltotext'); 在数据库查了一下,object_type是opetator类型的,之前还认为是个函数,现在不知道它究竟是个什么东东。。。。!这个sdexmltotext,是引入的一个dll文件,是arcgis下的一个,这个dll文件最终会出现在oracle的library下,但是我在其中没有找到sdexmltotext,不知道它是在哪里定义的!
在oracle中查看所有表字段的注视sql: select * from user_col_comments ,需要注意的是,这个语句提取的是当前用户下的注释,如果是DBA用户的话会出现很多条数据,不好找,所以提前先用你自己的用户!
其他的:
1、如何监控当前数据库谁在运行什么SQL语句?
SELECT osuser, username, sql_text from v$session a, v$sqltext b
where a.sql_address =b.address order by address, piece;
今天发现了一款在arcgis中和PD一样功能的工具,只是不是很会用,它是ArcGIS Diagrammer,我现在真在想怎么样将别名显示在实体里面。。。