一张表T_JZG_JBXX
主要字段为:
ZGH 职工号 NOT MULL
XM 中文姓名 NOT MULL
XMPY 姓名拼音 NULL
客户想实现姓名首字母查询,现已对表中的XMPY进行了维护,但是对今后再增加的人员也要XMPY自动转换为中文姓名的首字母。
本人做了个触发器:
create or replace trigger biu_t_jzg_jbxx_XMPY
after insert on t_jzg_jbxx
referencing old as old_value
new as new_value
for each row
begin
if inserting then
update t_jzg_jbxx
set xmpy = F_TRANS_PINYIN_CAPITAL(:new_value.xm)
where zgh = :new_value.zgh;
end if;
end;
编译通过,而且在测试表中也能够实现自动更新姓名首字母,但是在实际的系统中,添加人员时,系统会报错。
公司同事认为触发器不稳定,让我做个脚本 服务器定时执行函数
但我对脚本一点都不熟悉。希望大家告诉我这个脚本怎么写。
谢谢了!
------最佳解决方案--------------------
dbms_job
------其他解决方案--------------------
--给你一个JOB参考下..
--job_action 是你要定时跑的 过程.. 我的例子 每天10点跑。
begin
sys.dbms_scheduler.create_job(job_name => '任务名称',
job_type => 'STORED_PROCEDURE',
job_action => 'scott.Pkg_业务处理.Prc_更新姓名拼音',
start_date => to_date('21-09-2012 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),
repeat_interval => 'Freq=Daily;Interval=1;ByHour=22;ByMinute=00;BySecond=00',
end_date => to_date(null),
job_class => 'DEFAULT_JOB_CLASS',
enabled => true,
auto_drop => false,