自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海阔天空

原谅我这一生不羁放纵爱自由

  • 博客(46)
  • 资源 (4)
  • 收藏
  • 关注

原创 FineReport条形图分类名左对齐

默认的条形图分类名是右对齐的,整体效果看起来显得图表左侧有些凌乱,如下所示:1.2 实现效果如何使条形图的分类名左对齐,让视觉效果比较平整呢?

2022-10-03 11:12:01 455 1

原创 Oracle优化之直方图

当数据列基数较低的时候 ,该列数据分布就可能不均衡。这就导致在查询该列的时候,最优的结果可能走索引,也可能走全表扫描。但是如果我们没有对该列收集直方图统计信息,那么基于成本的优化器(CBO)就会认为该列数据分布是均衡的,导致没有按最优的执行计划来查询。这是因为执行计划里的rows是假的,是根据统计信息和一些数学公式计算出来的。而收集直方图信息,就是帮助执行计划计算 得到更加精准的rows。...

2020-10-04 15:59:19 195 1

原创 oracle优化之选择性

基数与表的总行数的比值就是选择性当我们学习了基数后,可以得出一个大概的结论:基数比较小时,查询不走索引,基数比较大时,查询走索引。但是这样太笼统了,什么情况下基数算大,什么情况下算小呢。比如一个字段的基数是10000,应该比较大了吧,但是这张表本身有100亿条数据。相形之下,就不那么大了。所以单独看列的基数就没有什么意义了,这就引入了列的选择性。当一个列的选择性大于20%时,说明这个列的数据分布就比较均衡了。这时如果在where子句中对这个字段做条件筛选,就应该创建索引。当然,如果表的数据量比较小的

2020-09-23 14:40:48 418

原创 oracle优化之基数

基数指的是一个字段中不重复值的个数。比如性别列,它的值有男和女两种情况,所以它的基数是2以scott账户的emp表为例,执行以下sqlselect count(1) as num,count(distinct job) as jobnum,count(distinct deptno) from emp由结果可以看出,emp表的行数为14,job列的基数为5,deptno列的基数为3当字段的基数越大时,该列数据的分布可能就越均衡。字段的基数越小时,该列数据的分布可能就越不均衡。举个

2020-09-22 17:19:04 624

原创 FineReport修改浏览器标题logo

fine-decision-10.0.jar文件以解压文件的方式打开找到登录页路径:com/fr/web/controller/decision/entrance/resources/login.html解压后添加代码<link rel="icon" href="webroot/favicon.ico" />找到首页路径:com/fr/web/controller/decision/entrance/resources/index.html解压后添加代码<lin..

2020-09-10 09:34:45 1405 1

原创 SqlServer求连续分组

with temp as (select 39 as a, 0.5 as b,'2020-08-25 09:00:00' as cunion allselect 39 as a, 0.4 as b,'2020-08-25 09:01:00' as cunion allselect 39 as a, 0.3 as b,'2020-08-25 09:02:00' as cunion allselect 39 as a, 78 as b,'2020-08-25 09:03:00' as cun.

2020-08-25 09:50:51 467

原创 SqlServer查看数据等待资源

SELECT der.[session_id],der.[blocking_session_id], sp.lastwaittype,sp.hostname,sp.program_name,sp.loginame, der.[start_time] AS '开始时间', der.[status] AS '状态', dest.[text] AS 'sql语句', DB_NAME(der.[database_id]) AS '数据库名', der.[wait_type] AS '等.

2020-08-24 10:24:07 766

原创 Selenium+Headless Firefox爬取JavaScript页面信息

Selenium+Headless Firefox前提条件:- 本地安装Firefox浏览器- 本地需要geckodriver驱动器文件(下载解压后直接放到python/scripts目录下)from selenium import webdriver# 创建Firefox参数对象opt = webdriver.FirefoxOptions()# 把Firefox设置成无界面模式,不论windows还是linux都可以,自动适配对应参数opt.add_argument('-he..

2020-08-02 23:17:18 246

原创 FineReport利用js获取控件方法总结

一、分页预览1.参数面板中获取参数面板控件:this.options.form.getWidgetByName("a");2.表格内获取参数面板控件:_g().parameterEl.getWidgetByName("a");二、填报预览1.参数面板中获取参数面板控件:this.options.form.getWidgetByName("a");2.表格内获取...

2020-03-07 09:41:43 5821

原创 一条普通的sql查询探索Oracle物理体系结构

Oracle体系结构—物理体系结构首先发起一条sql指令select object_name from t where object_id=29第一步该sql指令先进入1区PGA,该指令在这里主要完成了两件事情:1)连接信息的保存2)权限的保存只要session不断开连接,下次系统不用再去硬盘中读取数据,而直接从PGA内存中获取。此外,该sql还会立即匹配成一条唯...

2019-03-02 22:22:44 189

原创 Oracle体系结构—物理体系结构

Oracle由实例和数据库组成,其物理体系结构图如下:一区:PGA (Program Global Area)PGA是一块开辟出来的私有不共享的内存区,用户对数据库发起的无论查询还是更新的任何操作,都是在PGA先预处理,然后接下来才进入实例区域,由SGA和系列后台进程共同完成用户发起的请求。PGA的预处理作用:1)保存用户的连接信息,如会话属性、绑定变量等2)保存...

2019-02-19 15:49:22 768

原创 存储过程创建表

判断当前数据库是否有表CAP_LOG_变量,如果有,删除后新建,如果没有直接新建create or replace procedure pro_createtable(filename varchar2)authid current_user is --授予调用者在存储过程中拥有其角色权限num number;begin select count(1) into num f...

2018-10-11 16:57:49 8014

原创 简单的使用游标返回Oracle存储过程结果集示例

示例基于student表:创建存储过程:create or replace procedure read_stu(t out SYS_REFCURSOR)isbeginopen t for select sid,sname from student;end;使用存储过程:declare t sys_refcursor;s student%rowtype;b...

2018-09-26 17:39:59 3918 1

原创 Oracle速查手册

create user [用户名] identified by [密码];--创建用户 --如何修改用户密码: alter user [用户名] identified by [新密码]2.grant connect to [用户名]--赋予用户登录权限 grant create session to [用户名]3.grant resource to [用户名] --...

2018-09-26 15:07:40 332

原创 使用java获取kettle上个步骤的数据并处理输出到下步骤

import java.io.File;import java.io.IOException; //kettle中已定义好的行处理方法,每行记录都会运行一次public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException{ //(1)获取到上一个步骤的输入行 O...

2018-03-04 11:05:57 6417

原创 sql server 生成连续日期

在sqlserver里,可以利用系统表master..spt_values里面存储的连续数字0到2047,结合dateadd()函数生成连续的日期。SELECT    CONVERT (VARCHAR (10),dateadd(d, number, GETDATE()),23) AS rqFROM    master..spt_values WHERE    type =

2018-02-05 11:37:05 5912

原创 kettle设置变量不起作用

在kettle转换中设置了变量,但是在后续的步骤中引用该变量不起作用原因是因为转换中的所有步骤都是并行运行的,没有特定的执行顺序。也就是说,设置的变量在当前转换里是不起作用的。解决方法是在job里将设置变量作为一个前置的转换,然后将引用该变量的转换作为后置转换。

2018-01-30 21:13:47 10933 15

原创 Oracle求连续区间内的最大最小值

现在有一组数据记录了NBA球队每年的夺冠队伍,如下:要求求出连续夺冠的队伍和连续年月,效果如下:首先要判断一个队是否连续夺冠,我们可以通过lag函数来获取字段的上一个值,就比较容易判断了。然后给判断赋值,连续的为0,不连续的 为1。然后使用累加为后续的分组作准备:最后就是很基础的分组求最大最小值过程了,就不再赘述了。最终sql如下:s

2017-10-31 20:57:22 3324 1

原创 kettle处理mysql的tinyint字段类型

在使用kettle转换mysql的tinyint字段类型时,会将tinyint类型当成Boolean类型来处理,如图所示:解决方法:通过拼接字符串,如select type+'' as type .

2017-09-18 15:11:47 3064

原创 Oracle不引用对象名访问对象的表

在Oracle中,一个用户想访问其他用户的表时,首先要获得访问的权限,然后可以通过用户.表名的方式访问该表。比如我有一个新创建的用户,axing。若想访问scott的数据表,必须先授权,在scott用户下执行以下语句:grant select any table to axing;然后可以在axing用户下查询:select * from scott.emp每次访问的

2017-06-19 16:32:59 435 1

原创 Oracle对空值的排序处理

在对Oracle的结果集进行排序的时候,如果排序的列存在空值的情况,那么怎么在不改变原来的顺序(升序或降序)的情况下,如何控制空值最先显示或是最后显示呢?Oracle提供了一个很好的方法。select ename, commfrom emporder by comm以上语句的查询结果是:如果想把空值放在最前面,可以加上nulls first:selec

2017-06-15 09:43:29 5446

原创 SQL server列多次指定错误

今天在编写sql时,遇到了一个很奇怪的错误,如下:The column 'saleareaname' was specified multiple times for 'a'.翻译过来是:列"saleareaname‘被多次指定为’a‘。以下是sql语句:select * from (SELECT tb3.saleareaname, tb2.saleareaname, tb

2017-06-01 19:23:42 8467

原创 Oracle缺失左括号错误

Oracle在创建表的时候,报了一个错误:[Err] ORA-00906: missing left parenthesis。以下是创建表的源代码:CREATE TABLE TB_SALES_PO_FR ("ID" NUMBER NOT NULL ,"BUSINESSID" VARCHAR2 NULL ,"BUSINESS" VARCHAR2(50) NULL ,"WORKCOD

2017-03-30 14:23:46 15351 2

原创 数据查询使用数字代替字段排序

数据库查询的时候一般会对查询结果做一个排序,以方便浏览查看。有时候一些字段比较复杂,为了追求速度,可以使用数字来代替字段,例如select a,b,c,d from table order by 1,2,3,41,2,3,4分别对应上面的a,b,c,d。

2017-03-14 14:44:32 535

原创 数据迁移,从mysql到Oracle

在mysql数据库中有一张表,在Oracle数据库中也有一张表,现在要把数据从mysql的表中迁移到Oracle的表中。

2017-02-14 10:12:00 794

原创 kettle-配置资源库

打开spoon的时候会弹出一个提示框,让我们连接到资源库。另外也可以在tools菜单下的资源库中选择连接资源库,之后就出现如图所示的输入框:                                                 笔者这里已经配置了两个资源库,Oracle和mysql,点击右上角的笔状图标可以对已有资源库进行编辑,加号图标可以新建资源库,叉号图标可以删除资源库,

2017-02-08 15:47:45 12349 1

原创 sql语句的执行顺序

理解sql语句的执行顺序对优化sql非常重要,那么sql语句的执行顺序是怎样的呢,以一条简单的的语句做分析:         这一条语句包含我们经常用到的一些关键字,select,from,where,group by,order by,它的执行顺序如下:先执行from关键字后面的语句,明确数据的来源,它是从哪张表取来的。接着执行where关键字后面的语句,对数据进行筛选。再接

2017-01-10 11:09:04 36056 10

原创 报表导入数据时数字精度混乱问题

在进行填报报表时,一般会选择通过Excel表导入大量的数据,因此也会产生一些稀奇古怪的问题。        本次笔者需要导入的是一些数字类型的数据,在Excel中数据如图所示:        导入报表后数据就混乱了,如下图所示:         数据一导进来就混乱了,所以笔者肯定问题出现在Excel表中。一般这种问题是由于在Excel表中设置了数据显示格式,比如实际是1.799

2017-01-05 21:10:40 4500

原创 数组在增删方面比链表效率高???

数组和链表在增删查改方面谁的效率高呢, 这个问题相信很多人都遇到过,但更多的人只是记住两句口诀:数组查改方便,链表增删效率高。        无论是书本,老师,还是许多的前辈都告诉我们,这是对的。理由如下:        在查改方面数组可以通过索引迅速确定位置,而链表只能依次寻找,所以数组有着无法匹敌的优势。而在增删方面,数组每次插入元素都要将该元素后面的所有元素向后挪动一位,删除则将该元

2016-12-26 17:01:11 9494 11

原创 左连接右连接傻傻分不清

Oracle数据库内置了几张练习表,笔者这里用到了emp和dept。表里的数据如下所示:              首先,笔者先用ANSI SQL连接格式分别进行左右连接查询,结果如下:                 对于这个结果,只要理解左右连接的原理的,都能明白。所以接下来笔者要说的是Oracle特有的连接方式:select * from emp,dept whe

2016-12-23 10:40:40 475

原创 子查询作为数据源时是否需要表别名

在sqlserver2008中,把子查询做为数据源时,如果没有表别名,将会提示错误,如下:             如果添加了表别名,如加了个“a”,则正确查询:                 而在Oracle中,不添加表别名也不会出错,如下:

2016-12-16 17:13:12 6137

原创 数据库查询相隔同等时间段的数据量

比如说一张人员基本信息表,emp_baseinfo;包含两个字段,聘用日期:emp_pydate和                            离职日期:emp_lzdate。现在要按条件查询每隔7天的在职人员数量,                           如果查询条件是2016-02-01,那么截止到2016-02-01是多少人,

2016-12-01 09:27:54 1933

原创 报表填报时新增一行序号自动增长

制作填报报表的时候,一般选择用seq()公式作为自动编号。如果只是使用公式,不做其他操作的话,第一行能够正常显示,新增一行就没有序号了:        这时点击输入公式的那一格,在工具右下角找到插入行策略,下面有三个值,空值,原值,和默认值,空值是默认的,就是我们上面序号不自动增加的原因。这时候我们使用默认值,如下所示:       这样子就能自动增加序号了,不过结果不尽如人意,第

2016-11-24 09:38:42 11561 1

原创 关于i++与++i的思考

笔者刚接触这个的时候, 也是糊里糊涂,特意去查找了许多资料,自以为已经了解,不想仍是只在此山中,云深不知处。        通常的解释是:i++先运算,再自增;                                    ++i先自增,再运算。        一定程度上,这两句话是对的。但笔者这里想说的是,笔者赞同第二句话,却不认可第一句话。我们来看一个简单的例子:int

2016-11-22 21:03:06 413

原创 HTML5实现消灭星星

消灭星星游戏制作思路:(1)本游戏基于canvas画布实现。从界面看,消灭星星由10X10的星星方块组成,因而我们要定义一个二维数组来存储它。(2)消灭星星的方块有红黄蓝绿紫五种,可以用一个随机数随机生成0到4这五个数字分别赋给数组;根据数组元素不同的值绘制不同颜色的星星方块。(3)界面做出来后就是互动方面了,通过js的鼠标点击事件获取点击位置的x,y坐标,因为是网页版的,所以采用js

2016-11-15 20:50:17 2417

原创 HTML5——canvas制作游戏接住小球

先来一张效果图并完整版代码下载地址:HTML5——canvas制作游戏接住小球                  游戏的整体逻辑是随机在上面生成障碍物,当小球碰到障碍物时障碍物消失,当全部障碍物被消灭时赢得游戏,而当小球掉到木板以下则输掉游戏。         先从页面说起,比较简单的代码,只有一个div一个canvas,就不多做解释了。move_ball di

2016-11-11 09:04:53 5745

原创 javascript函数中的返回值

在javascript中,可以用return终止函数的执行,并返回一个指定的值。其实,如果我们没有使用return,js的函数也是有返回值的,它默认的返回值就是undefined,笔者曾经就有这样一个错误,误将一个没有返回值的函数赋值给一个变量,结果在调用的时候,一直返回undefined,笔者百思不得其解,反复调试才发现这个问题。        另外,return的使用只是终止当前的函数,并

2016-11-08 14:16:04 2922

原创 HTML5——canvas制作游戏2048

笔者刚学HTML5不久,这是笔者第一次用HTML5制作游戏,希望大家多多提点意见。        废话不多说,先来一张效果图:        笔者只做了游戏主体,至于那些得分啊,历史最高分之类的,都没有去实现。那些都是比较简单的内容,这里就不多说了。下面讲述的过程中,将主要是讲讲笔者本人制作过程中的一些思路。        首先,是页面部分,这部分也没啥好讲的,直接上代码:

2016-11-07 20:36:32 8483 1

原创 报表解决Excel导入数据不能根据显示值将实际值存入数据库的问题

报表在展示的时候,可以根据它的实际值设置显示值,如图:        那么,问题来了,当我们做的是填报报表而又要用到这个功能时,那么填入的数据就可能会出现问题,我这次就遇到了这种问题,我要实现的是在填报时填入的是汉字名称,而存进数据库时存的是它的编码,应此采用了如上图的数据字典设置,结果在测试的时候,如果从页面上直接填报,它能根据汉字名称正确地存入编码,而一旦从Excel表中导入数据来

2016-11-02 22:13:43 2880

原创 canvas学习心得之arcTo

canvas提供画圆弧有两种方法,一个是arc,另一个就是arcTo,arc挺简单的,这里就不再说了,单说一下arcTo。        arcTo的作用是绘制介于两条切线之间的弧,语法是arcTo(x1,y1,x2,y2,r),其中x1,y1是起始点的坐标,x2,y2是终点的坐标,r则是圆弧的半径。这里面有个很大的误区,一般的初学者看到这里,都会错误的判断起始点的位置,如图1所示:   

2016-10-28 16:49:37 2754 1

finereport条形图分类名左对齐

finereport条形图分类名左对齐

2022-10-03

jar,class文件源码查看

一款很好的工具,解压打开,将jar、class文件拖放进来即可查看源码。

2017-06-16

HTML5实现消灭星星

利用HTML5的画布功能实现消灭星星,点击星星方块可消除相邻的同样图案的方块,具体思路可看博客:http://blog.csdn.net/qq_25186987/article/details/53177169

2016-11-16

HTML5——canvas制作游戏接住小球

一个经典的游戏,左右箭头可以控制垫子的移动

2016-11-10

HTML5——canvas制作游戏2048

HTML5,canvas制作游戏2048

2016-11-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除