Oracle自定义函数
来源:优易学  2011-9-28 15:09:28   【优易学:中国教育考试门户网】   资料下载   IT书店

 判断任务过期时间:
  create or replace function GetUrgentState(m_TaskID varchar2,
  m_SendTime date,
  m_flag varchar2)
  return varchar2 IS
  myDate date;
  ExpireTime date;
  strsql varchar2(200);
  begin
  myDate := m_SendTime;
  strsql := 'select max(EXPIRETIME) from t_wf_supervise where TASKID =''' ||
  m_TaskID || '''';
  execute immediate strsql
  into ExpireTime;
  --没有到期时间 就是正常状态
  if ExpireTime is null then
  if m_flag = 'String' then
  return '正常';
  end if;
  if m_flag = 'Img' then
  return 'cb_execute.gif';
  end if;
  end if;
  --未发送任务,就是判断当前时间
  if m_SendTime is null then
  myDate := sysdate;
  end if;
  if ExpireTime < myDate then
  if m_flag = 'String' then
  return '超期';
  end if;
  if m_flag = 'Img' then
  return 'cb_limit.gif';
  end if;
  end if;
  --小于3天的任务预警
  if ExpireTime - myDate < 3 then
  if m_flag = 'String' then
  return '预警';
  end if;
  if m_flag = 'Img' then
  return 'cb_warning.gif';
  end if;

  else
  if m_flag = 'String' then
  return '正常';
  end if;
  if m_flag = 'Img' then
  return 'cb_execute.gif';
  end if;
  end if;
  end;
  查询其它表数据:
  create or replace function GetPreNode(m_PreTaskID varchar2) return varchar2 IS
  nodename varchar2(50);
  strsql varchar2(200);
  begin
  if m_PreTaskID is null then
  return '';
  end if;
  strsql := 'select max(nodename) from t_Wf_Tasklist where TaskID =''' ||
  m_PreTaskID|| '''';
  execute immediate strsql
  into nodename;
  return nodename;
  end;
  格式化标题输出:
  create or replace function FormatTitle(m_title varchar2,
  m_length number,
  m_FillChar varchar2) return varchar2 IS
  begin
  if lengthb(m_title) > m_length*2 then
  return substr(m_title, 0,m_length) || m_FillChar;
  else
  return m_title;
  end if;
  end;

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训