zoukankan      html  css  js  c++  java
  • ORACLE使用履历(1)

      前导发端:网海拾贝




    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 CORSOR_NAME INTO ...
       (2) %NOTFOUND 布尔型 迩来一次'FETCH'前往有用果 则为TRUE
              OPEN CORSOR_NAME;
              LOOP
                   FETCH CORSOR_NAME INTO ...   
                   EXIT WHEN CORSOR_NAEM%NOTFOUND;
              END LOOP;
       (3) %FOUND 布尔型 迩来一次'FETCH'前往有用果 则为FALSE
             OPEN CORSOR_NAME;
             
             WHILE CORSOR_NAME%FOUND LOOP
                   ......
                   FETCH CORSOR_NAME INTO ...
             END LOOP;
             CLOSE CORSOR_NAME;
       (4) %ROWCOUNT NUMVER型 为游标掏出的行数
             OPEN CORSOR_NAME;
             LOOP
                FETCH CORSOR_NAME INTO ...
                EXIT WHEN CORSOR_NAME%ROWCOUNT>5;
                 ......   
             END LOOP;         
             CLOSE CORSOR_NAME;
             
    ---轮回语句
       (1)根本轮回
           LOOP
            .....
           EXIT WHILE; 如(EXIT WHEN X>100)
           END LOOP;
       (2)WHILE轮回
           WHILE 如( WHEN X>100) LOOP
             .....
           END LOOP;
       (3)数值型FOR轮回  'X'为计数器  
           FOR X IN (第减值) Y..Z LOOP
              .....
           END LOOP;
       (4)游标FOR轮回
          
             
    ---Exception(破例)在迩来的'BEGIN'和'END'之间
    Exception
           语法1 当'没罕见据找到'时
           when no_data_found then
           语法2 当'发作任何错误'时
           when others then
           语法3 当'发现多行'时
           WHEN TOO_MANY_ROWS THEN
           语法4 当'字符向数字转换失落败'时
           WHEN INVALID_NUMBER THEN      
           语法5 当'被零除'时
           WHEN ZERO_DIVIDE THEN
           语法6 当'向唯一索引中拔出重双数据'时
           WHEN DUP_VAL_ON_INDEX THEN
           语法7 当'非法游标行使'时
           WHEN INVALID_CURSOR THEN
           语法8 当'数字的,数据转换,截字符串或逼迫性的错误'时
           WHEN VALUE_ERROR THEN  
    民主民主民主民主民主民主民主民主民主民主民主民主民主民主民主民主民主民主**
    民主民主民主民主民主民主民主民主民主民主民主民主民主民主民主民主民主民主**
    --常用TEXT_IO
    Delcare
      out_file  text_io.file_type;
    Begin
      out_file:=text_io.fopen('prn','w');
      text_io.new_line(out_file,' ');
      text_io.put_line(out_file,' ')
      text_io.fclose(out_file);
    End;
    ---文本输入输入
       TEXT_IO
       TEXT_IO PACKAGE
       TEXT_IO FCLOSE
       TEXT_IO.FILE_TYPE
       TEXT_IO.FOPEN
       TEXT_IO.IS_OPEN
       TEXT_IO.GET_LINE
       TEXT_IO.NEW_LINE
       TEXT_IO.PUT
       TEXT_IO.PUTF
       TEXT_IO.PUT_LINE
      USING TEXT_IO CONSTRUCTS
    ----------------------------
    Declare
         Out_file     Text_io.file_type;
         L            Varchar2(100);
         L1           Varchar2(100);
         L2           Varchar2(100);
    Begin
        Out_file :=text_io.fopen('c:lllogin.txt','r');
        If text_io.is_open(Out_file) then
        text_io.get_line(Out_file,L);
        text_io.get_line(Out_file,L1);
        text_io.get_line(Out_file,L2);
        Else
            Null;
        End if;
    End;   
    ---祛除全局变量
       erase('global.var_name');
    ---潜在'WINDOW','VIEW','MENU'
       HIDE_WINDOW|VIEW|MENU(WINDOW|VIEW|MENU_name);
    --- 添加参数add_parameter
    Declare
      pl_id ParamList;
    BEGIN
      pl_id:=Get_Parameter_List('tempdata');
      IF NOT Id_Null(pl_id) THEN
         Destroy_Parameter_List(pl_id);
      END IF;
      pl_id:=Create_Parameter_List('tempdata');
      Add_Parameter(pl_id,'EMP_QUERY',DATA_PARAMETER,'EMP_RECS');
      Run_Product(REPORTS,'empreport',SYNCHRONOUS,RUNTIME,
                  FILESYSTEM,pl_id,NULL);
    END;
    ---
    DECLARE
      lArgs OLE2.LIST_TYPE;
    BEGIN
      word.hApp:=OLE2.CREATE_OBJ('Word.Basic');
      lArgs:=OLE2.CREATE_ARGLIST;
      OLE2.ADD_ARG(lArgs,:ole.word_doc);
      OLE2.INVOKE(Word.hApp,'fileopen',lArgs);
      OLE2.DESTROY_ARGLIST(lArgs);
    END;
    民主民主民主民主民主奸通奸骗删除重复纪录民主民主民主**
      Delete from emp e
      where e.rowid >
       (select min(f.rowid) from emp f
        4 where f.empno=e.empno);




    版权声明: 原创作品,允许转载,转载时请务必以超链接体式名目标明文章 原始出处 、作者信息和本声明。不然将清查法律责任。

  • 相关阅读:
    Something about the "BSTR" and "SysStringLen"
    关于 i = i ++ 的问题
    duilib写个三国杀?
    关于WM_GETTEXT的应用
    hoops暂时用过的一些方法
    Hoops随便记的
    C++ win32线程数上限
    windows系统时间(SYSTEMTIME)
    Form表单提交的那些事
    多行文字溢出...
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975893.html
Copyright © 2011-2022 走看看