<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    飛艷小屋

    程序--人生--哲學___________________歡迎艷兒的加入

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

    create or replace function GET_ADDRESSNAME(STRCODE in VARCHAR2)
      return varchar2 is
      Result      varchar2(100);
      tempAddress varchar2(100);
    begin
      tempAddress := '';
      SELECT T.ADDRESS
        INTO tempAddress
        FROM ADDRESSCODE T
       WHERE T.ADDRCODE = STRCODE;
      Result := tempAddress;
      return Result;
    end GET_ADDRESSNAME;


    create or replace function FUN_PID15TO18(pid15 in char) return char is
      TYPE array_17_number IS VARRAY(17) OF NUMBER;
      TYPE array_11_char IS VARRAY(11) OF char;
      Result         varchar2(18);
      v_check_number integer := 0;
      v_check_char   char(1);
      v_factor       array_17_number := array_17_number(7,
                                                        9,
                                                        10,
                                                        5,
                                                        8,
                                                        4,
                                                        2,
                                                        1,
                                                        6,
                                                        3,
                                                        7,
                                                        9,
                                                        10,
                                                        5,
                                                        8,
                                                        4,
                                                        2);

      v_mod array_11_char := array_11_char('1',
                                           '0',
                                           'X',
                                           '9',
                                           '8',
                                           '7',
                                           '6',
                                           '5',
                                           '4',
                                           '3',
                                           '2');
    begin
      if (length(pid15) = 18) then
        return pid15;
      elsif (length(pid15) = 15) then
        result := substr(pid15, 1, 6) || '19' || substr(pid15, 7, 9);
        FOR i IN 1 .. 17 LOOP
          v_check_number := to_number(substr(result, i, 1)) * v_factor(i) +
                            v_check_number;
        END LOOP;
     
        v_check_number := mod(v_check_number, 11);
        v_check_char   := v_mod(v_check_number + 1);
        result         := result || v_check_char;
        return result;
      else
        raise_application_error(-20001, 'Length of pid should be 15 or 18!');
      end if;
    end FUN_PID15TO18;

    //存儲過程
    create or replace procedure PROC_ADD_T1 is
      v_sqlerrm varchar2(500);
    BEGIN
      FOR i IN 1 .. 100000 LOOP
        INSERT INTO T1 (T1C1, T1C2) VALUES ('TEST' || i, '123456');
      END LOOP;
      --UPDATE T1 SET T1C1 = '0';
      COMMIT;
    EXCEPTION
      WHEN OTHERS THEN
        v_sqlerrm := SUBSTR(SQLERRM, 1, 300);
        DBMS_OUTPUT.put_line('ERR=' || v_sqlerrm);
        ROLLBACK;
    end PROC_ADD_T1;

    create or replace procedure PROC_PID15TO18(pid in varchar2, tabName in varchar2) is
      v_sqlerrm varchar2(500);
      v_sql varchar2(200);
    BEGIN 
      v_sql:='UPDATE ' || tabName || ' SET ' || pid || '=' ||
             ' CASE WHEN LENGTH(' || pid || ')=15 THEN ' ||
                  'FUN_PID15TO18(' || pid || ')' ||
               ' WHEN LENGTH(' || pid || ')=18 THEN ' ||
                   pid ||
               ' ELSE ' ||
                  '''000000000000000000''' ||
             ' END ';
      EXECUTE IMMEDIATE v_sql;
      COMMIT;
    EXCEPTION
      when others then
        v_sqlerrm := substr(SQLERRM, 1, 300);
        dbms_output.put_line('ERR=' || v_sqlerrm);
        rollback;
    end PROC_PID15TO18;


    create or replace procedure PRO_GETREPORT_PEOPLE is
      TYPE cursor_typ IS REF CURSOR;
      TYPE array_age_char1 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char2 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char3 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char4 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char5 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char6 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char7 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char8 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char9 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char10 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char11 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char12 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char13 IS VARRAY(7) OF NUMBER;
      TYPE array_age_char14 IS VARRAY(7) OF NUMBER;

      v_sqlerrm varchar2(500);
      strSql    varchar2(1000);
      cur       cursor_typ;

      type L_EMP_RECORD is record(
        SEX varchar2(50),
        AGE number);

      L_EMP L_EMP_RECORD;

      v_age1 array_age_char1 := array_age_char1(0, 0, 0, 0, 0, 0, 0);

    begin

      strSql := 'SELECT * FROM (SELECT I.SEX SEX,MONTHS_BETWEEN(SYSDATE,I.BIRTHDAY)/12 AGE FROM INDIVIDUAL I,CONTACT C  ' ||
                'WHERE I.PID=C.PID AND I.NAME=C.NAME ' ||
                'AND C.PROVINCE=''33''' || 'AND C.CITY=''04'') DataAll';

      open cur for strSql;
      loop
        FETCH cur
          INTO L_EMP.SEX, L_EMP.AGE;
        exit when cur%notfound;
        IF (L_EMP.SEX = '01' AND L_EMP.AGE > 3 AND L_EMP.AGE <= 7) THEN
          v_age1(2) := v_age1(2) + 1;
        END IF;
      end loop;
      close cur;
      dbms_output.put_line('3~7:男' || ' ' || v_age1(2));
    end PRO_GETREPORT_PEOPLE;

    -- Create sequence
    create sequence SEQ_ADDRESSCODE
    minvalue 1
    maxvalue 99999999
    start with 1021
    increment by 1
    cache 20;
    posted on 2007-05-30 10:26 天外飛仙 閱讀(614) 評論(0)  編輯  收藏 所屬分類: Oracle
    主站蜘蛛池模板: 亚洲一区精品无码| 亚洲一级特黄大片在线观看| 久久精品国产99精品国产亚洲性色| 免费一级毛suv好看的国产网站 | 国产免费无遮挡精品视频| 亚洲国产成人99精品激情在线| 91网站免费观看| 亚洲中文字幕久在线| 成人无遮挡裸免费视频在线观看| 亚洲一区二区三区在线 | 99久久人妻精品免费一区| 亚洲AV日韩AV永久无码免下载| 99re视频精品全部免费| 亚洲成AV人综合在线观看| 最近中文字幕mv免费高清视频7 | 久久精品一区二区免费看| 亚洲老熟女@TubeumTV| 99热在线精品免费全部my| 精品无码专区亚洲| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 亚洲一区二区三区成人网站 | 日本免费高清一本视频| 久久水蜜桃亚洲AV无码精品| 亚洲精品美女久久久久99小说| 国产精品内射视频免费| 亚洲国产精品第一区二区| 国产曰批免费视频播放免费s| 亚洲人av高清无码| 亚洲乱码中文字幕综合234| 久久久久久一品道精品免费看| 亚洲av无码片区一区二区三区| 亚洲AV无码成H人在线观看 | 在线视频免费观看爽爽爽| 亚洲AV无码一区二区三区牲色 | 亚洲日本乱码一区二区在线二产线| 最近最好的中文字幕2019免费| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 免费在线观看自拍性爱视频| 亚洲AV无码成人精品区蜜桃| 大地资源免费更新在线播放| 国产精品免费看久久久香蕉|