推荐一个HTML转换为PDF的方式

之前在网上搜,找到一种方式
打开谷歌,右键选中打印,然后再选择另存为成PDF
这种方式会因为网页内容导致生成的PDF布局发生变化,不推荐使用

在此推荐一种比较好用的方法:
下载谷歌浏览器扩展程序>>>Full Page Screen Capture
点开要转PDF的网页后点击谷歌浏览器右上角该插件图标即可预览
选择下载PDF文件就可获取到

此方法的优点在于完美还原网页原状
缺点在于其内容实际上是先转为图片后包装成了PDF文件,所以很难对PDF进行二次修改

Oracle实现批量动态更新数据

DECLARE
end_num number(30);
BEGIN
select count(*) INTO end_num from TABLE_A;
   for i in 1 .. end_num loop
UPDATE TABLE_A SET name_=('justin' || i) where table_id=
	(SELECT table_id FROM 
		(select table_id from TABLE_A 
		where ROWNUM<=i ORDER BY ROWNUM DESC) 
	where ROWNUM=1);
       sys.dbms_output.put_line('justin' || i);
   end loop;
   commit;
END;

DECLARE:声明变量关键字
end_num number(30); 变量名及类型
BEGIN :相当于{
select count(*) INTO end_num from TABLE_A; 通过into关键字将查询结果赋值给变量
for i in 1 .. end_num loop :循环语法,变量为i,从1开始,从end_num结束
内层查询:根据行号倒序获取i条数据
外层查询:只获取提一条内容查询结果
table_id=第i条数据的table_id的值
end loop; 循环结束语法
commit :提交
END :相当于 }

Oracle中decode函数的使用

需求:
如果A表中的item_1的值为1,则返回0,否则返回其本身
--case when实现
select case 
when item_1=1 then 0
else item_1 end 
as result_value
  from A

--decode实现
select decode(item_1,1,0,item_1) 
from A
decode说明:
decode(item,值1,值2,值3);
如果item等于值1,则返回值2,否则返回值3
且decode可实现多层嵌套

其它用法:
decode(item,值1,值2,值3,值4,...,default)
如果item等于值1,返回值2,等于值3,返回值4,...
如果没有匹配上,返回default

decode身为oracle最强大的函数之一,还有很多用法,暂时就介绍到这里

OracleMerge的使用

背景:
需要实现大量的如果有就更新,如果没有就添加的操作
-- 常规写法
if exists(select 1 from T where T.a='1001' )
    update T set T.b=2 Where T.a='1001' 
else 
    insert into T(a,b) values('1001',2); 

--Merge写法
MERGE INTO T T1
USING (SELECT '1001' AS a,2 AS b FROM dual) T2
ON ( T1.a=T2.a)
WHEN MATCHED THEN
    UPDATE SET T1.b = T2.b
WHEN NOT MATCHED THEN 
    INSERT (a,b) VALUES(T2.a,T2.b);
--在批量处理更新Or添加操作时,merge可以说是效率较高的一种