oracle中偏移,怎么对相同的坐标点偏移?

上面说的第三步必须保证每个点不能重复分配,有些难度,还是用过程代码吧。

CREATE TABLE t_offset as

select 1           id,1.001  x,1.002   y, 10 mark from dual

union all

select 2011      id,1.001  x,1.012   y, 31 mark from dual

union all

select 34213     id,2.009  x,2.504   y, 51 mark from dual

union all

select 42        id,1.001  x,1.002   y, 92 mark from dual

union all

select 555       id,1.001  x,1.002   y, 71 mark from dual

union all

select 678       id,3.122  x,4.998   y, 43 mark from dual

union all

select 730       id,7.010  x,1.111   y, 11 mark from dual

;

CREATE INDEX t_offset_idx ON t_offset(x,y);

CREATE TYPE obj_dots AS OBJECT (id NUMBER,x number,y NUMBER);

/

CREATE TYPE t_obj_dots AS TABLE OF obj_dots;

/

DECLARE

lv_dots t_obj_dots:=t_obj_dots();

lv_level NUMBER;

BEGIN

FOR lv_dup IN

(   SELECT *

FROM (SELECT t_offset.*

,ROW_NUMBER() OVER(PARTITION BY x,y ORDER BY id) rn

FROM t_offset

)

WHERE rn>1

)

LOOP

lv_level :=1;

WHILE lv_level>0 LOOP

FOR lv_new IN

(   SELECT *

FROM (SELECT off_x

,off_y

,lv_dup.x + off_x*0.001 x

,lv_dup.y + off_y*0.001 y

FROM (SELECT LEVEL-lv_level-1 off_x FROM DUAL CONNECT BY LEVEL<=lv_level*2+1)

,(SELECT LEVEL-lv_level-1 off_y FROM DUAL CONNECT BY LEVEL<=lv_level*2+1)

WHERE off_x IN (lv_level,-lv_level) OR off_y IN (lv_level,-lv_level)

)

WHERE (x,y) NOT IN (SELECT x,y FROM t_offset)

AND (x,y) NOT IN (SELECT x,y FROM TABLE(lv_dots))

ORDER BY off_x*off_x+off_y*off_y

)

LOOP

lv_dots.EXTEND;

lv_dots(lv_dots.COUNT):=obj_dots(lv_dup.id,lv_new.x,lv_new.y);

lv_level := -999;

EXIT;

END LOOP;

lv_level := lv_level+1;

END LOOP;

END LOOP;

FOR i IN 1..lv_dots.COUNT LOOP

DBMS_OUTPUT.PUT_LINE('id:'||lv_dots(i).id||' x:'||lv_dots(i).x||' y:'||lv_dots(i).y);

END LOOP;

END;

/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式之--原型模式

1.原型模式定义 原型模式非常简单&#xff0c;定义如下&#xff1a; 用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象 2.通用类图 原型模式的核心是实现Cloneable接口&#xff0c;此接口为JDK提供的一个标识接口&#xff0c;只有实现了此接口的类才…

搜索目录里所有文件(包括子目录)

搜索目录里所有文件(包括子目录&#xff09; 资料来源&#xff1a;http://www.cnblogs.com/jjwwww/archive/2004/09/04/39559.aspx 用到两个函数ParseDirectory 和CreatePathListvoidParseDirectory(stringpath, stringfilter) { strin…

一张图理解buffer与cache

转载于:https://blog.51cto.com/11193863/2169166

oracle服务器不识别tc服务,记一次ORACLE无法启动登陆事故

打开XSHELL 登陆ORACLE用户1.sqlplus scott/scott 提示登陆失败2.sqplus / as sysdba 启动数据库提示3.查找日志操作日志&#xff1a;$ORACLE_HOME/startup.log启动日志&#xff1a;$ORACLE_BASE/diag/rdbms/ora11g/ora11g/trace/alert_ora11g.log (ora11g为SID值)启动日志如果…

重构(Refactoring)技巧读书笔记 之二

重构&#xff08;Refactoring&#xff09;技巧读书笔记 之二<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />General Refactoring Tips, Part 2本文继续《重构&#xff08;Refactoring&#xff09;技巧读书笔记 之一》&#xff…

史上最全的Angular.js 的学习资源

Angular.js 的一些学习资源 基础 官方&#xff1a; http://docs.angularjs.org angularjs官方网站已被墙&#xff0c;可看 http://www.ngnice.com/&#xff1b;官方zip下载包 http://best.factj.com/dolymood/angular-packages&#xff0c;已增加docs服务&#xff0c;输入地址即…

BMP位图之8位位图(三)

起始结构 typedef struct tagBITMAPFILEHEADER { WORD bfType; //类型名&#xff0c;字符串“BM”&#xff0c; DWORD bfSize; //文件大小 WORD bfReserved1; //保留字 WORD bfReserved2; //保留字 DWORD bfOffBits; //实际位图数据的偏移字节数&#xff0c;即前三个部分长度之…

DNN 汉化中的问题????

今天看到了一份已经汉化过的DNN但是比较奇怪&#xff0c;当第一次运行后我所指定的新数据库中并没有添加新的内容&#xff0c;但是网站上的确是已经汉化过了的&#xff0c;不知道它把汉化的内容放到了哪里&#xff1f;&#xff1f;&#xff1f; 另外他所汉化界面的地方&#x…

php 打印对象详细信息,php打印显示数组与对象的函数详解

php打印显示数组与对象的函数详解发布于 2014-11-17 18:55:49 | 699 次阅读 | 评论: 0 | 来源: 网友投递PHP开源脚本语言PHP(外文名: Hypertext Preprocessor&#xff0c;中文名&#xff1a;“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点&…

ios开发-调用系统自带手势

在 iPhone 或 iPad 的开发中&#xff0c;除了用 touchesBegan / touchesMoved / touchesEnded 这组方法来控制使用者的手指触控外&#xff0c;也可以用 UIGestureRecognizer 的衍生类別来进行判断。用 UIGestureRecognizer 的好处在于有现成的手势&#xff0c;开发者不用自己计…

Node.js 事件循环

Node.js 事件循环 Node.js 是单进程单线程应用程序&#xff0c;但是因为 V8 引擎提供的异步执行回调接口&#xff0c;通过这些接口可以处理大量的并发&#xff0c;所以性能非常高。 Node.js 几乎每一个 API 都是支持回调函数的。 Node.js 基本上所有的事件机制都是用设计模式中…

全国翻译专业资格(水平)考试

http://www.spta.gov.cn/moreksxx.jsp?lmCodeA02010205转载于:https://www.cnblogs.com/Danilo/archive/2004/10/31/58821.html

linux文件句柄,【LINUX】使用lsof处理文件恢复、句柄以及空间释放问题

曾经在生产上遇到过一个df 和 du出现的结果不一致的问题&#xff0c;为了排查到底是哪个进程占用了文件句柄&#xff0c;导致空间未释放&#xff0c;首先在linux上面&#xff0c;一切皆文件&#xff0c;这个问题可以使用lsof这个BT的命令来处理(这个哈还可以来查询文件句柄泄露…

android天气查询(二)之网络json数据的获取

前面一篇文章介绍了如何使用ksoap获取天气信息&#xff0c;但是使用的网络资源受到了限制&#xff0c;所以我们这里会采用第二种方法&#xff0c;可以无限制的获取。http://m.weather.com.cn/data/101010100.html 但是对应的101010100(北京)我们怎么获取呢&#xff0c;还有就是…

累.....

今天我真的蔫了&#xff0c;好累&#xff0c;脑子也好浊&#xff0c;但是还好&#xff0c;最终达到了预期的目的。我终于把henry的dataGrid实现了&#xff0c;犯了低级错误&#xff0c;和好多人讨论&#xff0c;但最终还是henry解决的。那一刻&#xff0c;真的好爽&#xff0c;…

001-pro ant design 升级2.0后变更

一、更新点 1、目录调整 2、本地代理服务器调整 roadhog→umi 配置方式 在这个config/config.js配置 "proxy": { "/api": { "target": "http://jsonplaceholder.typicode.com/", "changeOrigin": true, "pathRewrite&q…

linux cp 时 略过文件,CentOS下执行cp命令式提示略过文件夹

今天在CentOS下复制一个文件夹到另一个文件夹的时候cp ./res /usr 的时候出现了问题&#xff0c;提示我的是&#xff1a;cp略过了文件夹后来我找了一下在网上search了一下CP命令的用法&#xff1a;CP命令该命令的功能是将给出的文件或目录拷贝到另一文件或目录中&#xff0c;同…

属性页中的ON_UPDATE_COMMAND_UI

我前面翻译了一篇文章简单的谈了一下在对话框处理ON_UPDATE_COMMAND_UI 消息。又在www.codeguru.com上看到在属性页中处理ON_UPDATE_COMMAND_UI 消息的方法和在对话框中稍有不同。两者的处理大体上一样。只是在属性页中还需要一个步骤。需要从CPropertySheet派生类&#xff0c;…

linux基础命令rpm,rpm常用命令集合1

提要&#xff1a;RPM 是 Red Hat Package Manager 的缩写&#xff0c;原意是Red Hat 软件包管理&#xff1b;本文介绍RPM&#xff0c;并结合实例来解说RPM手工安装、查询等应用&#xff1b;正文&#xff1a;RPM包管理的用途&#xff1b;1、可以安装、删除、升级和管理软件&…

hibernate详解

Hibernate原理与应用 主要内容 1、引入 2、安装配置 3、基本概念和CURD 4、HQL和Criteria 5、关联映射 6、继承映射 7、集合映射 8、懒加载 9、缓存 10、事务 11、其他 12、Hibernate不适合的场景 13、与JPA的集成(annotation方式) 14、最佳实践 1、引入 模型不匹配(阻抗不匹配…