工作总结(1)
来源:互联网 发布:阿里云oss下载文件 编辑:程序博客网 时间:2024/04/27 16:58
10.24
oracle触发器
苏州sample表更新barcodedate字段。用触发器更新老数据
CREATE OR REPLACE TRIGGER tr_logon2
AFTER update on ground_tb_del_barcode
FOR EACH ROW
declare
update_tp_sample_search varchar(1024);
BEGIN
update_tp_sample_search := 'update ground_tb_sample set barcodedate='''||:new.barcodedate||''' where sampleid=(select cd.sampleid
from Ground_Tp_Create_Data cd where cd.samplebarcode='''||replace(:new.barcode,'''','')||''')';
execute immediate update_tp_sample_search;
END tr_logon2;
//ground_tb_del_barcode 表中的barcode带有双引号,而cd表中不带。用replace函数去掉来匹配。
触发器建立后。update ground_tb_del_barcode 表中的新建字段(state)来触发该触发器。以达到更新目的
12.17
mysql获取自动增长的ID
LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。
一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的。
但在多线程情况下,就不行了。在多用户交替插入数据的情况下max(id)显然不能用。
这就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insert or update操作生成的第一个record的ID。这个值不能被其它客户端(Connection)影响,保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加锁。
14.2.25
Oracle 存储过程 (苏州条码扫描,sample表中每天定时更新barcodedate) :
create or replace procedure p_barcodedate
as
cursor cur is
select cd.samplebarcode,cd.sampleid from ground_tp_create_data cd where cd.sampleid
in (select s.sampleid from ground_tb_sample s where s.sampleid is null);
v_samplebarcode varchar2(1024); ----变量不要跟数据库字段同名字,否则sql可能失败
v_barcodedate varchar2(1024);
v_batch varchar2(1024);
v_sampleid NUMBER;
begin
for r1 in cur loop
v_samplebarcode :=r1.samplebarcode;
v_sampleid :=r1.sampleid;
v_barcodedate :='';
v_batch :='';
begin
select db.batch into v_batch from ground_tb_del_barcode db where db.barcode like '%'||v_samplebarcode||'%'; ----引用变量
exception ----加入exception防止出现没有对应数据报错而跳出循环,下面的数据也无法执行
when no_data_found then
v_batch :='';
end;
begin
select to_char(dbc.operdate,'yyyy-mm-dd') into v_barcodedate from ground_tb_del_barcodecount dbc where dbc.batch=v_batch and rownum=1; ---rownum=1表示只取一次
exception
when no_data_found then
v_barcodedate :='';
end;
if v_barcodedate is not null then
update ground_tb_sample s set s.barcodedate=to_date(v_barcodedate,'yyyy-mm-dd') where s.sampleid=v_sampleid;
else
update ground_tb_sample s set s.barcodedate='' where s.sampleid=v_sampleid;
end if;
commit;
end loop;
commit;
end p_barcodedate;
对以上存储过程加入定时执行的job:
variable job_bcdate number;
begin
sys.dbms_job.submit(job => :job_bcdate,
what => 'p_barcodedate;',
next_date => TRUNC(sysdate+1), ----每天凌晨12点执行存储过程
interval => 'TRUNC(sysdate+1)');
commit;
end;
/ ----该job在命令窗口执行
以下为有关job执行时间和相关方法
- 1:每分钟执行
- Interval => TRUNC(sysdate,'mi') + 1/ (24*60) --每分钟执行
- interval => 'sysdate+1/(24*60)' --每分钟执行
- interval => 'sysdate+1' --每天
- interval => 'sysdate+1/24' --每小时
- interval => 'sysdate+2/24*60' --每2分钟
- interval => 'sysdate+30/24*60*60' --每30秒
- 2:每天定时执行
- Interval => TRUNC(sysdate+1) --每天凌晨0点执行
- Interval => TRUNC(sysdate+1)+1/24 --每天凌晨1点执行
- Interval => TRUNC(SYSDATE+1)+(8*60+30)/(24*60) --每天早上8点30分执行
- 3:每周定时执行
- Interval => TRUNC(next_day(sysdate,'星期一'))+1/24 --每周一凌晨1点执行
- Interval => TRUNC(next_day(sysdate,1))+2/24 --每周一凌晨2点执行
- 4:每月定时执行
- Interval =>TTRUNC(LAST_DAY(SYSDATE)+1) --每月1日凌晨0点执行
- Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24 --每月1日凌晨1点执行
- 5:每季度定时执行
- Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'q') --每季度的第一天凌晨0点执行
- Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'q') + 1/24 --每季度的第一天凌晨1点执行
- Interval => TRUNC(ADD_MONTHS(SYSDATE+ 2/24,3),'q')-1/24 --每季度的最后一天的晚上11点执行
- 6:每半年定时执行
- Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24 --每年7月1日和1月1日凌晨1点
- 7:每年定时执行
- Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24 --每年1月1日凌晨1点执行
- 相关方法:
- 修改要执行的操作:dbms_job.what(jobno,'sp_fact_charge_code;'); --修改某个job名
- 修改下次执行时间:dbms_job.next_date(job,next_date);
- 修改间隔时间:dbms_job.interval(job,interval);
- 停止job:dbms.broken(job,broken,nextdate);
- dbms_job.broken(v_job,true,next_date); --停止一个job,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。
- */
14.3.13
form中无法直接插入form。用如下方法
var ab = $('<form id="text"></form>');
ab.html($("#ttjxx_show_tab"+row_id));
ab.serialize(); //序列化form
14.3.18
birt 报表内存溢出问题:设置tomcat的初始内存:
2014.4.18
mysql 不能取别名的问题:
jdbcUrl=jdbc:mysql://127.0.0.1:3306/health?useOldAliasMetadataBehavior=true
- 工作总结(1)
- 工作总结(1)
- 周-工作总结(1)
- MicroTeam每周工作总结(1)
- H公司工作总结(1)
- 工作总结1
- 工作总结1
- 工作总结1
- 工作总结1
- Hello CSDN之工作总结(1)
- 网络公司工作总结1
- 2013/1工作总结
- 个人工作总结 - 1月
- 东华工作总结1
- 2017/12/1工作总结
- 今日工作总结(10.14)
- 试用期工作总结(个人版)
- 财务工作总结(摘)
- LINUX关闭防火墙
- C++ 列表List
- 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
- java如何进行内存自动释放、垃圾回收?
- 使用用Chrome开发者工具(Timeline、Profiler)做JavaScript性能分析
- 工作总结(1)
- Kinect for Windows SDK开发入门(十):手势识别 上:基本概念
- HighCharts图表插件画不出图形的解决方法
- fatal error C1010: unexpected end of file while looking for precompiled header directive
- struts2+poi实现导出Excel文件
- WMI使用的WIN32_类库名
- VML、SVG、Canvas简介
- jQuery.extend 函数详解
- MySQL数据导入导出整理