• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • ORACLE應用經驗

    發表于:2007-07-13來源:作者:點擊數: 標簽:
    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) ******************************************************************
    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:\ll\login.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);
      

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>