科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道ORACLE 应用经验

ORACLE 应用经验

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  作者: JAN-1(January) FEB-2(February) MAR-3(March)   APR-4(April) MAY-5(May) JUN-6(June)   JUL-7(July) AUG-8(August) SEP-9(Sep

作者:中国IT实验室 来源:中国IT实验室 2007年10月5日

关键字: 数据库 ORACLE

  • 评论
  • 分享微博
  • 分享邮件

  作者: JAN-1(January) FEB-2(February) MAR-3(March)
  APR-4(April) MAY-5(May) JUN-6(June)
  JUL-7(July) AUG-8(August) SEP-9(September)
  OCT-10(October) NOV-11(November) DEC-12(December)
  ********************************************************************
  ****************************常用设置********************************
  ---on-log 触发器编写示范
  Declare
  flag varchar2(80):=null;
  cou number:=1;
  n number;
  Begin
  Loop
  logon(USERNAME,PASSWORD||'@'||CONNECT,PROPERTY_FALSE....);
  flag:=Get_Application_Property(DATASOURCE);
  Exit when cou>8 or flag='ORACLE';
  cou:=cou+1;
  End Loop;
  If flag<>'ORACLE' then
  set_alert_property('a_1',alert_message_text,
  '登录失败,请返回重试');
  n:=show_alert('a_1');
  raise form_trigger_failure; --中断 FORM
  End if;
  End;
  ---对基表执行查询(只对基表)
  Set_Block_Property('Block_Name',Default_Where,'where ......');
  Go_Block('Block_Name');
  Execute_Query;
  ***************************************************
  变量:
  局部变量;
  全局变量--------------1.:block.item
  2.:parameter.v_name
  3.:global.V_name
  
  ***************************************************
  ---同步发生显示
  synchronize;
  ---实施'TRIGGER'触发
  EXECUTE_TRIGGER(TRIGGER_NAME);
  ---清除模块
  clear_block(NO_VALIDATE); 'NO_VALIDATE'不生效
  --建立警告栏并由警告栏选择
  Declare
  n number;
  Begin
  Set_Alert_Property('Alert_Name',Alert_Message_Text,'message');
  n:=Show_Alert('Alert_Name');
  If n=Alert_Button1 then
  ...;
  ElsIf n=Alert_Button2 then
  ...;
  End if;
  End;
  ---WINDOW设置
  --运行时最大化,最小化
  Set_Window_Property(FORMS_MDI_WINDOW, WINDOW_STATE, MAXIMIZE|MINIMIZE);
  --WINDOW标题
  Set_Window_Property(FORMS_MDI_WINDOW, title,'TEXT');
  --退出是否为真
  Set_Window_Property(FORMS_MDI_WINDOW, REMOVE_ON_EXIT,PROPERTY_FALSE|TRUE);
  ---设置系统提示信息等级
  :System.Message_Level:= '5|10|15|20';
  ---设置ITEM属性
  --设置ITEM属性ENABLED
  Set_Item_Property('Block_name.Item_name',ENABLED,PROPERTY_TRUE|FALSE);
  --设置ITEM属性NAVIGABLE
  Set_Item_Property('Block_name.Item_name',NAVIGABLE,PROPERTY_TRUE|FALSE);
  --设置ITEM属性VISUAL_ATTRIBUTE
  Set_Item_Property('Block_name.Item_name',visual_attribute,'vname');
  --'vname'由导航器中(VISUAL_ATTRIBUTES)定义
  --设置ITEM属性DISPLAYED
  Set_Item_Property('Block_name.Item_name',displayed,TRUE|FALSE);
  --设置ITEM属性POSITION
  Set_Item_Property('Block_name.Item_name',position,x,y);
  --设置ITEM_SIZE
  Set_Item_Property('Block_name.Item_name',item_size,x,y);
  --设置ITEM属性LABLE
  Set_Item_Property('Block_name.Item_name',LABEL,'MESSAGE')
  ---设置LIST ITEM示范
  Declare
  n number;
  Begin
  clear_list('b1.fkfs');
  m:=populate_group('fkfs');
  populate_list('b1.fkfs','fkfs');
  /*
  其中FKFS 为 record group ;
  */
  End;
  ---增加'LIST ITEM'
  Add_List_Element(list_name, list_index, list_label, list_value);
  Add_List_Element(list_id, list_index, list_label, list_value);
  ---删除'LIST ITEM'项
  Delete_List_Element(list_name, list_index);
  Delete_List_Element(list_id, list_index);
  例:
  BEGIN
  Delete_List_Element('years',1);
  Add_List_Element('years', 1, '1994', '1994');
  END;
  ---获得'LIST ITEM'项的组成
  1.获得'LIST ITEM'的总和
  GET_LIST_ELEMENT_COUNT(list_id);
  GET_LIST_ELEMENT_COUNT(list_name);
  2.获得'LIST ITEM'的标签
  GET_LIST_ELEMENT_LABEL(list_id, list_name, list_index);
  GET_LIST_ELEMENT_LABEL(list_name, list_index);
  
  3.获得'LIST ITEM'的值
  GET_LIST_ELEMENT_VALUE(list_id, list_index);
  GET_LIST_ELEMENT_VALUE(list_name, list_index);
  
  ---设置'时间'
  DECLARE
  timer_id Timer;
  one_minute NUMBER(5) := 60000;
  BEGIN
  timer_id := CREATE_TIMER('emp_timer', one_minute, REPEAT|NO_REPEAT);
  END;
  ---产生一个'EDITER'框
  DECLARE
  ed_id Editor;
  status BOOLEAN;
  BEGIN
  ed_id:=Find_Editor('edit_name'); ---由'edit_name'导航器定义
  
  IF NOT Id_Null(ed_id) THEN
  Show_Editor(ed_id, NULL, :block_name.item_name, status);
  ELSE
  Message('Editor "Happy_Edit_Window" not found');
  RAISE Form_Trigger_Failure;
  END IF;
  END;
  ----产生一个'LOV'框
  DECLARE
  lv_id LOV;
  status BOOLEAN;
  BEGIN
  lv_id := Find_LOV('lov_name'); ---'lov_name' 由导航器定义
  -- IF Id_Null(lv_id) THEN
  -- lv_id := Find_LOV('lov_name1'); ---'lov_name1' 由导航器定义
  -- END IF;
  status := Show_LOV(lv_id,10,20);
  END;
  ---定义一个'EXCEPTION'例外
  Declare
  err_1 exception;
  Begin
  If ... then
  Raise err-1;
  End if;
  Exception
  When err_1 then
  ....
  END;
  ---设置应用特性(光标类型)
  SET_APPLICATION_PROPERTY(CURSOR_STYLE,
  'CROSSHAIR'|'BUSY'|'HELP'|'DEFAULT'|'INSERTION');
  
  ***********************************************************************
  **********************************函数*********************************
  ---把字符串的字符变成全大写(UPPER)全小写(LOWER)第一个字母大写(INITCAP)
  UPPER|LOWER|INITCAP(STRING)
  ---在文件的左('LPAD')右('RPAD')粘贴字符
  LPAD|RPAD(STRING,LENGTH,'SET') "LENGTH"为总字符长"SET"为粘贴字符
  ---在文件的左('LTRIM')右('RTRIM')删除字符
  LTRIM|RTRIM(SRTING,'SET') "SET"为待删除字符
  ---找出'字符集'在字符串中的位置
  INSTR('STRING','SET',N,M) 从'STRING'中找出'SET'从'N'位起第'M'个
  ---数的绝对值
  ABS(VALUE)
  ---'MOD'模
  MOD(VALUE,除数) 返回'除数'除'VALUE'的余数常用判断'VALUE'是否为整数
  ---把'VALUE'从'N'位四舍五入'ROUND' 或从'N'位截断'TRUNC'
  ROUND|TRUNC(VALUE,N)
  ---返回'VALUE'的符号
  SIGN(VALUE)
  
  ---列表的最大值
  GREATEST(N1,N1...);
  列表的最小值
  LEAST(N1,N1...);
  ---返回小于或等于数的最大整数
  FLOOR(VALUE) floor(1.3)=1 floor(-1.3)=-2
  ---返回大于或等于数的最小整数
  CEIL(VALUE) cell (1.3)=2 cell (-1.3)=-1
  
  ---取字符串长度
  substr(string,start,number) number为string长度,start为string起点
  
  
  ---DECODE函数,多重(if,then,else)
  decode(value,if1,then1,if2,then2,.....,else)
  ---判断'VALUE'是否为空(空值替换)
  NVL(UALUE,'WKFHZ') 'WKFHZ'是为空返回值,不为空则为原值
  ---字段长度
  length(:block_name.item_id)
  ---返回字符串的第一(最左)个字符的ascII值
  ascII(string)
  ---多行'VALUE'的 (作用于多'行')
  AVG(VALUE)平均值
  COUNT(VALUE)行数
  MAX(VALUE)最大值
  MIN(VALUE)最小值
  SUM(VALUE)和
  ---字符转换
  TRANSLATE(STRING,'待转字符','转换字符');
  如 TEANSLATE('AAABBB','AB','BA') 返回'BBBAAA'
  
  ---比较单行中多个列的值获得最大('GREATEST'最小('LEAST')
  GREATEST|LEAST(列名,列名,...)
  ---按表达式或位置排序
  ORDER BY '表达式'OR'位置' ASC|DESC ASC'升',DESC'降' 默认'ASC'
  ***********************************************************************
  ***********************************************************************
  ---游标的属性
  (1) %ISOPEN 打开属性 布尔型 打开为TRUE
  判断'光标'是否打开如未打开则打开'光标'
  IF NOT(CORSOR_NAME%ISOPEN) THEN
  OPEN CORSOR_NAME;
  END IF;
  FETCH

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件