<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
    主站蜘蛛池模板: 久久亚洲精品成人av无码网站| 在线免费不卡视频| 中文字幕日韩亚洲| 国产亚洲精品美女久久久久久下载| 国内精品乱码卡1卡2卡3免费| 亚洲fuli在线观看| 免费AA片少妇人AA片直播| 亚洲欧洲精品国产区| 免费看黄视频网站| 亚洲性色AV日韩在线观看| 日本免费一区二区三区最新vr| 久久水蜜桃亚洲AV无码精品| 国产区卡一卡二卡三乱码免费| 美女羞羞免费视频网站| 亚洲国产精品成人| 三年片免费高清版| 久久久亚洲欧洲日产国码二区| 亚洲综合免费视频| 亚洲私人无码综合久久网| 国产一级淫片免费播放| 一个人看的免费视频www在线高清动漫| 激情97综合亚洲色婷婷五 | 无码不卡亚洲成?人片| 人人公开免费超级碰碰碰视频| 久久亚洲高清综合| 久久精品一区二区免费看| 亚洲成年人电影在线观看| 免费看的一级毛片| 国产免费区在线观看十分钟| 亚洲第一成年人网站| 精品无码国产污污污免费| 中文字幕手机在线免费看电影 | 国产免费久久精品99re丫y| 亚洲日本一线产区和二线| 亚洲高清免费视频| 亚洲毛片免费视频| 日韩少妇内射免费播放| 亚洲视频在线播放| 免费人成视频在线观看不卡| 免费人妻无码不卡中文字幕系| 亚洲码和欧洲码一码二码三码|