亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? function.java

?? 非常棒的java數(shù)據(jù)庫
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
        StringBuffer buff = new StringBuffer(s.length());
        int start = 0;
        int len = replace.length();
        while (true) {
            int i = s.indexOf(replace, start);
            if (i == -1) {
                break;
            }
            buff.append(s.substring(start, i));
            buff.append(with);
            start = i + len;
        }
        buff.append(s.substring(start));
        return buff.toString();
    }

    private static String repeat(String s, int count) {
        StringBuffer buff = new StringBuffer(s.length() * count);
        while (count-- > 0) {
            buff.append(s);
        }
        return buff.toString();
    }

    private static String rawToHex(String s) {
        StringBuffer buff = new StringBuffer(4 * s.length());
        for (int i = 0; i < s.length(); i++) {
            String hex = Integer.toHexString(s.charAt(i) & 0xffff);
            for (int j = hex.length(); j < 4; j++) {
                buff.append('0');
            }
            buff.append(hex);
        }
        return buff.toString();
    }

    private static int locate(String search, String s, int start) {
        if (start < 0) {
            int i = s.length() + start;
            return s.lastIndexOf(search, i) + 1;
        } else {
            int i = (start == 0) ? 0 : start - 1;
            return s.indexOf(search, i) + 1;
        }
    }

    private static String right(String s, int count) {
        if (count < 0) {
            count = 0;
        } else if (count > s.length()) {
            count = s.length();
        }
        return s.substring(s.length() - count);
    }

    private static String left(String s, int count) {
        if (count < 0) {
            count = 0;
        } else if (count > s.length()) {
            count = s.length();
        }
        return s.substring(0, count);
    }

    private static String insert(String s1, int start, int length, String s2) {
        if (s1 == null) {
            return s2;
        }
        if (s2 == null) {
            return s1;
        }
        int len1 = s1.length();
        int len2 = s2.length();
        start--;
        if (start < 0 || length <= 0 || len2 == 0 || start > len1) {
            return s1;
        }
        if (start + length > len1) {
            length = len1 - start;
        }
        return s1.substring(0, start) + s2 + s1.substring(start + length);
    }

    private static String hexToRaw(String s) throws SQLException {
        // TODO function hextoraw compatibility with oracle
        int len = s.length();
        if (len % 4 != 0) {
            throw Message.getSQLException(ErrorCode.DATA_CONVERSION_ERROR_1, s);
        }
        StringBuffer buff = new StringBuffer(len / 4);
        for (int i = 0; i < len; i += 4) {
            try {
                char raw = (char) Integer.parseInt(s.substring(i, i + 4), 16);
                buff.append(raw);
            } catch (NumberFormatException e) {
                throw Message.getSQLException(ErrorCode.DATA_CONVERSION_ERROR_1, s);
            }
        }
        return buff.toString();
    }

    private static int getDifference(String s1, String s2) {
        // TODO function difference: compatibility with SQL Server and HSQLDB
        s1 = getSoundex(s1);
        s2 = getSoundex(s2);
        int e = 0;
        for (int i = 0; i < 4; i++) {
            if (s1.charAt(i) == s2.charAt(i)) {
                e++;
            }
        }
        return e;
    }

    private double roundmagic(double d) {
        if ((d < 0.0000000000001) && (d > -0.0000000000001)) {
            return 0.0;
        }
        if ((d > 1000000000000.) || (d < -1000000000000.)) {
            return d;
        }
        StringBuffer s = new StringBuffer();
        s.append(d);
        if (s.toString().indexOf("E") >= 0) {
            return d;
        }
        int len = s.length();
        if (len < 16) {
            return d;
        }
        if (s.toString().indexOf(".") > len - 3) {
            return d;
        }
        s.delete(len - 2, len);
        len -= 2;
        char c1 = s.charAt(len - 2);
        char c2 = s.charAt(len - 3);
        char c3 = s.charAt(len - 4);
        if ((c1 == '0') && (c2 == '0') && (c3 == '0')) {
            s.setCharAt(len - 1, '0');
        } else if ((c1 == '9') && (c2 == '9') && (c3 == '9')) {
            s.setCharAt(len - 1, '9');
            s.append('9');
            s.append('9');
            s.append('9');
        }
        return Double.valueOf(s.toString()).doubleValue();
    }

    private static String getSoundex(String s) {
        int len = s.length();
        char[] chars = new char[] { '0', '0', '0', '0' };
        char lastDigit = '0';
        for (int i = 0, j = 0; i < len && j < 4; i++) {
            char c = s.charAt(i);
            char newDigit = c > SOUNDEX_INDEX.length ? 0 : SOUNDEX_INDEX[c];
            if (newDigit != 0) {
                if (j == 0) {
                    chars[j++] = c;
                    lastDigit = newDigit;
                } else if (newDigit <= '6') {
                    if (newDigit != lastDigit) {
                        chars[j++] = newDigit;
                        lastDigit = newDigit;
                    }
                } else if (newDigit == '7') {
                    lastDigit = newDigit;
                }
            }
        }
        return new String(chars);
    }

    public int getType() {
        return dataType;
    }

    public void mapColumns(ColumnResolver resolver, int level) throws SQLException {
        for (int i = 0; i < args.length; i++) {
            args[i].mapColumns(resolver, level);
        }
    }

    protected void checkParameterCount(int len) throws SQLException {
        int min = 0, max = Integer.MAX_VALUE;
        switch (info.type) {
        case COALESCE:
        case CSVREAD:
        case LEAST:
        case GREATEST:
            min = 1;
            break;
        case NOW:
        case CURRENT_TIMESTAMP:
        case RAND:
            max = 1;
            break;
        case COMPRESS:
        case LTRIM:
        case RTRIM:
        case TRIM:
        case FILE_READ:
            min = 1;
            max = 2;
            break;
        case REPLACE:
        case LOCATE:
        case INSTR:
        case SUBSTR:
        case SUBSTRING:
        case LPAD:
        case RPAD:
            min = 2;
            max = 3;
            break;
        case CASE:
        case CONCAT:
        case CSVWRITE:
            min = 2;
            break;
        case XMLNODE:
            min = 1;
            max = 3;
            break;
        case FORMATDATETIME:
        case PARSEDATETIME:
            min = 2;
            max = 4;
            break;
        case CURRVAL:
        case NEXTVAL:
            min = 1;
            max = 2;
            break;
        default:
            throw Message.getInternalError("type=" + info.type);
        }
        boolean ok = (len >= min) && (len <= max);
        if (!ok) {
            throw Message.getSQLException(ErrorCode.INVALID_PARAMETER_COUNT_2, new String[] { info.name,
                    min + ".." + max });
        }
    }

    public void doneWithParameters() throws SQLException {
        if (info.parameterCount == VAR_ARGS) {
            int len = varArgs.size();
            checkParameterCount(len);
            args = new Expression[len];
            varArgs.toArray(args);
            varArgs = null;
        } else {
            int len = args.length;
            if (len > 0 && args[len - 1] == null) {
                throw Message
                        .getSQLException(ErrorCode.INVALID_PARAMETER_COUNT_2, new String[] { info.name, "" + len });
            }
        }
    }

    /**
     * Set the result data type of this function.
     * 
     * @param dataType the data type
     * @param precision the precision
     * @param scale the scale
     * @param displaySize the display size
     */
    public void setDataType(int dataType, long precision, int scale, int displaySize) {
        this.dataType = dataType;
        this.precision = precision;
        this.displaySize = displaySize;
        this.scale = scale;
    }

    public void setDataType(Column col) {
        dataType = col.getType();
        precision = col.getPrecision();
        displaySize = col.getDisplaySize();
        scale = col.getScale();
    }

    public Expression optimize(Session session) throws SQLException {
        boolean allConst = info.isDeterministic;
        for (int i = 0; i < args.length; i++) {
            Expression e = args[i].optimize(session);
            args[i] = e;
            if (!e.isConstant()) {
                allConst = false;
            }
        }
        Expression p0 = args.length < 1 ? null : args[0];
        switch (info.type) {
        case IFNULL:
        case NULLIF:
        case COALESCE:
        case LEAST:
        case GREATEST: {
            dataType = Value.UNKNOWN;
            scale = 0;
            precision = 0;
            displaySize = 0;
            for (int i = 0; i < args.length; i++) {
                Expression e = args[i];
                if (e != ValueExpression.NULL && e.getType() != Value.UNKNOWN) {
                    dataType = Value.getHigherOrder(dataType, e.getType());
                    scale = Math.max(scale, e.getScale());
                    precision = Math.max(precision, e.getPrecision());
                    displaySize = Math.max(displaySize, e.getDisplaySize());
                }
            }
            if (dataType == Value.UNKNOWN) {
                dataType = Value.STRING;
                scale = 0;
                precision = Integer.MAX_VALUE;
                displaySize = Integer.MAX_VALUE;
            }
            break;
        }
        case CASEWHEN:
            dataType = Value.getHigherOrder(args[1].ge

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久国产精品免费免费搜索| 日本精品视频一区二区三区| 777亚洲妇女| 亚洲国产精品久久一线不卡| 欧美日本在线视频| 美脚の诱脚舐め脚责91| 久久嫩草精品久久久精品| 国产精品123| 1024成人网| 欧美日本国产视频| 久久超碰97中文字幕| 国产日韩三级在线| 97精品久久久午夜一区二区三区 | 成人av网站免费观看| **性色生活片久久毛片| 91成人免费网站| 久久国产精品99精品国产| 国产午夜精品一区二区| 在线观看成人免费视频| 美脚の诱脚舐め脚责91| 中文字幕一区二区三区乱码在线| 欧美综合一区二区三区| 精品系列免费在线观看| 亚洲乱码国产乱码精品精的特点| 777午夜精品视频在线播放| 国产精一品亚洲二区在线视频| 亚洲日本成人在线观看| 日韩视频一区在线观看| 91丨porny丨蝌蚪视频| 日韩电影免费一区| 中文字幕亚洲综合久久菠萝蜜| 欧美日本一道本| 99综合电影在线视频| 日韩精品电影一区亚洲| 亚洲欧洲国产日本综合| 欧美成人女星排行榜| 91官网在线免费观看| 国产经典欧美精品| 免费在线观看一区二区三区| 国产精品久99| 久久夜色精品国产噜噜av | 欧美日韩国产影片| 成人黄色国产精品网站大全在线免费观看 | 国产精品麻豆一区二区 | 久久精品综合网| 欧美片网站yy| 91在线你懂得| 国产露脸91国语对白| 日产欧产美韩系列久久99| 亚洲免费观看高清完整版在线观看熊 | 69堂成人精品免费视频| av电影在线观看完整版一区二区| 日本视频一区二区三区| 亚洲综合激情网| 精品日韩在线一区| 欧美主播一区二区三区| www.亚洲免费av| 国产白丝网站精品污在线入口| 日韩av不卡一区二区| 亚洲已满18点击进入久久| 国产精品免费人成网站| 久久综合狠狠综合久久综合88| 欧美日韩成人综合| 欧美日韩精品系列| 色播五月激情综合网| 99久久久精品| 成人精品视频一区二区三区尤物| 国产精品一区二区免费不卡 | 99九九99九九九视频精品| 国产一区欧美二区| 精品亚洲国产成人av制服丝袜| 日本系列欧美系列| 蜜桃久久久久久| 久久精品久久综合| 美女视频一区在线观看| 日本vs亚洲vs韩国一区三区二区| 日本中文字幕一区| 精品伊人久久久久7777人| 青青草97国产精品免费观看无弹窗版| 天天色图综合网| 老司机午夜精品99久久| 另类小说欧美激情| 精品影视av免费| 国产精品一区二区三区99| 国产一区二区三区国产| 大尺度一区二区| 色狠狠av一区二区三区| 色老汉av一区二区三区| 日本道精品一区二区三区| 欧美影视一区在线| 欧美一区中文字幕| 精品少妇一区二区三区视频免付费 | 精品国产sm最大网站免费看| 欧美videossexotv100| 2021中文字幕一区亚洲| 久久精品男人天堂av| 国产精品久久久久aaaa| 一区二区理论电影在线观看| 亚洲123区在线观看| 奇米777欧美一区二区| 国产一区二三区| 97精品超碰一区二区三区| 欧美午夜理伦三级在线观看| 欧美一区二区免费视频| 久久久综合视频| 亚洲美女淫视频| 免费av成人在线| 成人小视频在线| 911精品国产一区二区在线| 精品国产sm最大网站免费看| 18成人在线观看| 久久国产精品无码网站| 波多野结衣91| 69p69国产精品| 中文字幕欧美激情一区| 亚洲国产精品一区二区久久恐怖片| 久久国产尿小便嘘嘘| 91免费视频网址| 日韩免费成人网| 亚洲欧美另类综合偷拍| 久久精品国产99久久6| caoporen国产精品视频| 91精品国产91久久综合桃花 | 欧美成人一级视频| 亚洲精品成人少妇| 九九在线精品视频| 91国偷自产一区二区三区成为亚洲经典 | 国产精品888| 欧美日韩一区二区三区在线看 | 国产精品久久久一本精品| 一区二区三区av电影| 国产乱码精品一区二区三区忘忧草 | 不卡视频在线观看| 日韩一区二区影院| 伊人色综合久久天天| 国产精品99久久久久久有的能看 | 亚洲综合成人在线| 成人丝袜视频网| 久久一区二区三区四区| 天涯成人国产亚洲精品一区av| 4438x亚洲最大成人网| 中文字幕亚洲欧美在线不卡| 国产一本一道久久香蕉| 91麻豆精品国产综合久久久久久| 亚洲人成在线观看一区二区| 国产乱子伦一区二区三区国色天香| 欧美三级资源在线| 亚洲精品视频在线观看网站| 成人av小说网| 国产精品美女久久久久久久久| 黄页网站大全一区二区| 91麻豆精品国产91久久久久 | 国产欧美精品一区二区三区四区| 青青草成人在线观看| 精品视频一区三区九区| 亚洲激情图片小说视频| 91丨porny丨首页| 亚洲婷婷国产精品电影人久久| 国产成人在线观看| 久久久久国产免费免费| 国产一区二区调教| 2020日本不卡一区二区视频| 日韩激情一区二区| 制服丝袜亚洲播放| 日日骚欧美日韩| 欧美一区二区免费视频| 麻豆视频一区二区| 精品国产99国产精品| 国精产品一区一区三区mba视频| 欧美mv日韩mv| 国产成人自拍在线| 国产精品天天看| 99久久精品国产毛片| 亚洲丝袜另类动漫二区| 日本精品一区二区三区四区的功能| 一区二区三区四区不卡视频 | 男人的j进女人的j一区| 欧美一区二区三区免费在线看| 日本在线不卡视频| 欧美tickle裸体挠脚心vk| 黄色小说综合网站| 亚洲精品一区二区三区四区高清| 国产乱码精品一品二品| 国产精品久久看| 欧美性高清videossexo| 日本成人在线电影网| 久久久精品人体av艺术| www.欧美亚洲| 亚洲h动漫在线| 久久奇米777| 成人久久久精品乱码一区二区三区| 亚洲同性gay激情无套| 欧美三日本三级三级在线播放| 免费美女久久99| 欧美国产精品一区| 欧美无乱码久久久免费午夜一区| 青青国产91久久久久久| 国产免费久久精品| 欧美三日本三级三级在线播放| 激情另类小说区图片区视频区|