2009年12月3日星期四
Google maps CellTower 基站定位 接口
2009年11月1日星期日
手机彩信方式更新BLOGGER/发邮件
彩信可以直接给flickr发照片,并同步更新到twitter.
注册了爱拍网 ipai.cn ,是个通过手机彩信上传照片的分享站点,支持同步flickr/picasa/kaixin001/msn space/renren/douban/twitter等多种常用的SNS站点
很不错。
只用在手机上发送彩信给 m@ipai.cn 这个地址,照片就可以同时在 ipai/flickr/picasa等多家同时出现,同步速度也很不错,目前的bug就是 kaixin001没有显示出来照片,msn space也没有反应
2009年9月21日星期一
UE(UltraEdit)的一些高级技巧(正则表达式)
一. 正则表达式主要符号
1. % 匹配行首 - 表示搜索字符串必须在行首,但不包括任何选定的结果字符中的行终止字符。
2. $ 匹配行尾 - 表示搜索字符串必须在行尾,但不包括任何选定的结果字符中的行终止字符。
3. ? 匹配任何除换行符的字符。
4. * 匹配任何除换行符外所出现的任意数量的字符。
5. + 匹配一个或多个前面的字符/表达式。必须找到至少一个出现的字符。不匹配重复的换行符。
6. ++ 零次或多次匹配前面的字符/表达式。不匹配重复的换行符。
7. ^b 匹配一个分页符。
8. ^p 匹配一个换行符 (CR/LF) (段落) (DOS 文件)
9. ^s 替换为被选择 ( 加亮 ) 活跃的文件窗口的文章。
10. ^c 替换为剪贴板的内容
11. ^r 匹配一个换行符 (仅 CR) (段落) (MAC 文件)
12. ^n 匹配一个换行符 (仅 LF) (段落) (UNIX 文件)
13. ^t 匹配一个制表符
14. [ ] 匹配任何括号中的单个字符或范围
15. ^{A^}^{B^} 匹配表达式 A 或 B
16. ^ 忽略其后的正则表达式字符
注: ^ 是实际字符 ^不是Ctl + 键值。
17. ^(*^) 在表达式加上括号或标签在替换命令中使用。
18. [xyz] 一个字符集。匹配在方括号之间的任何字符。
19. [^xyz] 一个否定的字符集。不匹配在方括号之间的任何字符。
20. d 匹配一个数字字符。等价于[0-9]。
21. D 匹配一个非数字字符。等价于[^0-9]。
22. f 匹配一个换页字符。
23. n 匹配一个换行字符。
24. r 匹配一个回车符字符。
25. s 匹配任何空白的空格, 标签, 换页, 包括空格等等,但不匹配换行符。
26. S 匹配任何非空白的字符,但不匹配换行符。
27. t 匹配一个标签TAB字符。
28. v 匹配一个垂直的标签字符。
29. w 匹配任何词语字符包括下划线。
30. W 匹配任何非词语字符字符。
二. 相关功能使用搭配
1. 删除空行: 替换 %[ ^t]++^p 为 空串
2. 删除行尾空格: 替换 [ ^t]+$ 为 空串
3. 删除行首空格: 替换 %[ ^t]+ 为 空串
4. %[ ^t]++^([~ ^t^p]^) 表示开头,如果想在行首添加字符值,则如:
Ø 替换 %[ ^t]++^([~ ^t^p]^) 为 北京市^1
Ø 每行设置为固定的4个空格开头: 替换 %[ ^t]++^([~ ^t^p]^) 为 " ^1" (操作时去掉^1两边的双引号)
5. 删除文本中指定的前2列字符: 替换 %?? 为 空串 (一个汉字为两个字符,需要两个??,如果需要删除多个汉字,则输入相应数量的?即可)
6. 如果首行以空格开头,想将每段设置改为固定的4个空格开头: 替换 %[ ^t]+ 为 " " %[ ^t]+ 代表每行行首(操作时去掉空格两边的双引号; 如果一行是以空格开始的,则视之为一段的开始行)
7. 在第4列后插入2列空白字符: 替换 %^(????^)^(?^) 为 "^1 ^2" (操作时去掉空格两边的双引号)
8. 查找所有的数字: [0-9]+[.]++[0-9]+
9. 查找所有的单词: [a-z]+
10. 查找所有的网址: http://[a-z0-9^~`_./^-^?=&]+
11. 查找行首为数字的行:%[(0-9)^t]+
12. 去掉所编辑文本中包含特定字符串的行
CTRL+R 调出来替换(Replace)窗口,选中"使用正则表达式";然后用查找 %*你的字符串*^p 替换成空内容即可.如,我当前有个文本文件,需要去掉所有包含 http://www.dbanotes.net/ 这个字符串的行,查找 %*http://www.dbanotes.net/*^p 替换成空即可.注意,^p 是 DOS 文件类型的换行符.如果是 Unix 类型文件,则用 ^n.
13. %1 搜索以1开头的行
1$ 搜索以1为结尾的行
2009年8月23日星期日
2009年5月14日星期四
存一些oracle的简单资料
查看ORACLE数据库信息的一些SQL 1、查看表空间的名称及大小
set linesize 140;set pages 200;column tablespace_name format a30;select tablespace_name,min_extents,max_extents,pct_increase,status from dba_tablespaces;select tablespace_name,initial_extent,next_extent,contents,logging,extent_management,allocation_type from dba_tablespacesorder by tablespace_name;
2、查看表空间物理文件的名称及大小
column db_block_size new_value blksz noprintselect value db_block_size from v$parameter where name='db_block_size';column tablespace_name format a16;column file_name format a60;set linesize 160;select file_name,round(bytes/(1024*1024),0) total_space,autoextensible,increment_by*&blksz/(1024*1024) as incement,maxbytes/(1024*1024) as maxsize from dba_data_files order by tablespace_name;
3、查看回滚段名称及大小
COLUMN roll_name FORMAT a13 HEADING 'Rollback Name'COLUMN tablespace FORMAT a11 HEADING 'Tablspace'COLUMN in_extents FORMAT a20 HEADING 'Init/Next Extents'COLUMN m_extents FORMAT a10 HEADING 'Min/Max Extents'COLUMN status FORMAT a8 HEADING 'Status'COLUMN wraps FORMAT 999 HEADING 'Wraps' COLUMN shrinks FORMAT 999 HEADING 'Shrinks'COLUMN opt FORMAT 999,999,999 HEADING 'Opt. Size'COLUMN bytes FORMAT 999,999,999 HEADING 'Bytes'COLUMN extents FORMAT 999 HEADING 'Extents'SELECT a.owner || '.' || a.segment_name roll_name , a.tablespace_name tablespace , TO_CHAR(a.initial_extent) || ' / ' || TO_CHAR(a.next_extent) in_extents , TO_CHAR(a.min_extents) || ' / ' || TO_CHAR(a.max_extents) m_extents , a.status status , b.bytes bytes , b.extents extents , d.shrinks shrinks , d.wraps wraps , d.optsize optFROM dba_rollback_segs a , dba_segments b , v$rollname c , v$rollstat dWHERE a.segment_name = b.segment_name AND a.segment_name = c.name (+) AND c.usn = d.usn (+)ORDER BY a.segment_name;
4、查看控制文件
select name from v$controlfile;
5、查看日志文件
select member from v$logfile;
6、查看表空间的使用情况
select * from( select sum(bytes)/(1024*1024) as 'free_space(M)',tablespace_name from dba_free_spacegroup by tablespace_name) order by 'free_space(M)';
7、查看数据库库对象
select owner, object_type, status, count(*) count# from all_objects
group by owner,object_type,status;
8、查看数据库的版本
select * from v$version;
9、查看数据库的创建日期和归档方式
select created,log_mode,log_mode from v$database;
10、查看临时数据库文件
select STATUS, ENABLED, NAME from v$tempfile;
2009年5月13日星期三
在oracle中直接计算经纬度距离的方法
select sdo_geom.sdo_distance(mdsys.sdo_geometry(2001,8307,mdsys.sdo_point_type(111.12,33.34,0),null,null),mdsys.sdo_geometry(2001,8307,mdsys.sdo_point_type(111.12,33.33,0),null,null),0.005) from dual;
其中2001代表简单点类型,8307代表为WGS84坐标系, 0.005为oracle计算时候的误差精度,本案中为5毫米
2009年5月12日星期二
oracle spatial 的一个bug
表结构:
SQL> desc us_dma;
Name Type Nullable Default Comments
-------- ------------------ -------- ------- --------
NAME VARCHAR2(36) Y
DMA VARCHAR2(3) Y
MI_STYLE VARCHAR2(254) Y
MI_PRINX NUMBER(10)
GEOLOC MDSYS.SDO_GEOMETRY Y
geoloc是空间字段类型。
如下sql语句,报告oracle ORA-00904 无效标识符 错误
select geoloc.sdo_point.x from us_dma
给该表起别名后,解决此问题。
select t.geoloc.sdo_point.x from us_dma t
结合网上资料分析,可以认为此种情况是oracle的特定版本bug所导致。
2009年5月8日星期五
一、Oracle Spatial简介
支持自定义的数据类型,可以用数组,结构体或者带有构造函数,功能函数的类来定义自己的对象类型。这样的对象类型可以用于属性列的数据类型,也可以用来创建对象表。而Oracle
Spatial也正是基于此种特性所开发的一套空间数据处理系统。
的自定义数据类型有很多,全部在MDSYS方案下,经常使用到的是SDO_GEOMETRY类型。SDO_GEOMETRY表示一个几何对象,可以是点、线、面、多点、多线、多面或混合对象。
在此数据类型的基础上,实现了R树空间索引和四叉树空间索引,还以SQL函数的形式实现了多种空间分析功能。
二、测试表的建立与应用(点类型)
| -- 创建测试用表 CREATE TABLE "SPATIALTEST" ( )LOGGING; |
| -- 创建主键约束 ALTER TABLE "SPATIALTEST" KEY("ID"); |
| -- 根据用户表填写空间元数据 INSERT INTO USER_SDO_GEOM_METADATA |
| -- 建立空间索引 CREATE INDEX SPATIAL_IDX |
| -- 导入测试数据
--其他 INSERT INTO cola_markets VALUES( |
| -- 属性信息查询 SQL> select location from spatialtest; LOCATION(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SQL> select s.location.SDO_POINT.x langtitude LANGTITUDE |
| -- 空间分析查询(113.2359818,23.16937253)周边十公里信息5条 SELECT dist FROM ( A.name name, SDO_GEOM.SDO_DISTANCE(A.location,MDSYS.SDO_GEOMETRY(2001,8307,MDSYS.SDO_POINT_TYPE(113.2359818,23.16937253,0),NULL,NULL),1) dist A SDO_WITHIN_DISTANCE(A.LOCATION,MDSYS.SDO_GEOMETRY(2001,8307,MDSYS.SDO_POINT_TYPE(113.2359818,23.16937253,0),NULL,NULL),'distance=10000') = 'TRUE' WHERE ; |
| -- 空间分析查询(113.2359818,23.16937253)附近的5条信息 SELECT langtitude, A.location.SDO_POINT.y latitude,MDSYS.SDO_NN_DISTANCE(1) distance FROM WHERE SDO_NN(A.LOCATION,MDSYS.SDO_GEOMETRY(2001,8307,MDSYS.SDO_POINT_TYPE(113.2359818,23.16937253,0),null,null),'SDO_NUM_RES=5',1) = 'TRUE' ; |
| -- Return the topological difference of two geometries. SELECT SDO_GEOM.SDO_DIFFERENCE(c_a.shape, m.diminfo, c_c.shape, m.diminfo) user_sdo_geom_metadata m m.column_name = 'SHAPE' 'cola_c'; |
三、MDYSYS.SDO_GEOMETRY结构
| CREATE TYPE SDO_GEOMETRY AS OBJECT( |
MDSYS.SDO_GEOMETRY <--> OCCI
对照模型:
四、Oracle Spatial 几个自定义函数(转帖)
--------------------------------------
| |
| |
| |
| |
| |
| |
| create or replace function To_Geomerty_Point(x in number,y in number ) return MDSYS.SDO_GEOMETRY is begin Result := MDSYS.SDO_GEOMETRY(2001, return(Result); |
--------------------------------------------------------------------------
-------------------查询
及测试语句---------------------------------------
| --求线路的长度 sdo_geom.sdo_length(c.geoloc,m.DIMINFO,'unit=KM') select * from tg_routev2 select a.geoloc.SDO_ORDINATES from tgs_route a select GetStartNodeXY(a.geoloc.SDO_ORDINATES) from tgs_route select GetEndNodeXY(a.geoloc.SDO_ORDINATES) from tgs_route |
| --计算线路的起始点和终止点坐标 |
| --更新tg_routev2 中的线起始点 终止点坐标 key(routename) update (select a.*,b.* from tg_routev2 a,routeNodeXY b |
| select sdo_geom.sdo_distance( from dual |
| --node1距离物流中心的 “南北直角折线” (sdo_geom.sdo_distance(To_Geomerty_Point(a.node1x, a.node1y), To_Geomerty_Point(116.635056, a.node1y), 0.005, 'unit=KM') + sdo_geom.sdo_distance(To_Geomerty_Point(a.node1x, a.node1y), To_Geomerty_Point(a.node1x, 39.869170), 0.005, 'unit=KM')) dis1 --node2距离物流中心的 |