- 浏览: 1608192 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (603)
- T_java (145)
- T_script&ASP (51)
- T_C/C++ (25)
- T_PowerBuilder (11)
- T_Database (53)
- T_odoo (7)
- T_应用服务器 (50)
- T_专_条形码 (6)
- T_专_负载均衡器 (4)
- T_操作系统 (94)
- T_信息安全 (41)
- T_专_搜索引擎 (14)
- T_L_PHP (58)
- T_L_Delphi (18)
- T_L_.NET、C#、VisualStudio (25)
- T_L_Objective-C (6)
- T_移动开发 (53)
- T_网络 (109)
- T_大数据 (2)
- T_嵌入式 (2)
- T_小众技术 (24)
- T_未分类 (58)
- L_旅游印记 (1)
- L_生活随笔 (48)
- L_中国文化 (18)
- L_户外与生存 (0)
最新评论
-
csbean4004:
不知道哪传来得恶习,发帖子不好好发,故意弄错一些东西,很讨厌
让HTML5支持后置摄像头 -
withthewind:
终于找到一个可以用的了。。。
如何用VBA取得Word文档中的标题前面的序号 -
busbby:
兄弟,无法下载,说文件不完整
一个好用的Outlook ost格式文件转pst文件的工具 -
yijavakevin:
密码啊~解压密码多少?
一个二维条形码组件 -
vipbooks:
你给的那个链接根本无法下载,跳到官网看了下最新版12M,但点下 ...
十步以内完成精细web打印
LENGTH calculates length using characters as defined by the input character set.
LENGTHB uses bytes instead of characters.
LENGTHC uses Unicode complete characters.
LENGTH2 uses UCS2 codepoints.
LENGTH4 uses UCS4 codepoints
length函数返回字符的长度,它使用定义好的输入的字符集计算长度.
lengthb使用bytes代替字符
VSIZE returns the number of bytes in the internal representation of expr.
vsize 返回内部表示的字节的数目。
internal representation of expr谁能解释一下。
看sql示例:
select length('adfad合理') "bytesLengthIs" from dual --7
select lengthb('adfad') "bytesLengthIs" from dual --5
select lengthb('adfad合理') "bytesLengthIs" from dual --11
select vsize('adfad合理') "bytesLengthIs" from dual --11
select lengthc('adfad合理')"bytesLengthIs" from dual --7
结论:
在utf-8的字符集下
lengthb=vsize
lengthc=length
疑问:中文字符怎么会占用了3个byte?而不是2个。是utf-8字符集的原因?
谁知道??????
参考文献:Oracle9i SQL Reference Release 2 (9.2)
..................................................
用String的getBytes方法测试了一下.
结论是utf-8的中文字符占用3个字节,gbk的中文字符占用2个字节,iso-8859-1的中文字符被识别为占用2个字节,iso不支持中文字符的编码,应该是都当成某个拉丁字母了.Oracle没有关系,oracle只是负责存储数据.
可以先用 select * from v$nls_parameters 看看oracle的字符集
下边是测试的java类:
import java.io.UnsupportedEncodingException; public class TextEncoding { /** * * @author:sunflower * @date: 2007-1-24 上午10:09:40 * @todo: 调用的是String的自己的getBytes(encoding)方法, * 使用指定的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中. * @param content * @param encode * @return */ public static byte[] getBytes(String content,String charsetName) throws UnsupportedEncodingException{ return content.getBytes(charsetName); } /** * * @author:sunflower * @date: 2007-1-24 上午10:19:40 * @todo: 调用的是String的自己的getBytes()方法, * 使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。 * @param content * @return */ public static byte[] getBytes(String content){ return content.getBytes(); } public static void main(String[]args){ String content="1e宝宝"; byte[] len; try{ len=getBytes(content,"UTF-8"); System.out.println(" the byte array length is "+len.length); len=getBytes(content,"GBK"); System.out.println(" the byte array length is "+len.length); len=getBytes(content,"ISO-8859-1"); System.out.println(" the byte array length is "+len.length); }catch(Exception e){ System.out.println("Can 't recognize"); } // System.out.println("the content byte[] length is "+); } }
输出 :
the byte array length is 6
the byte array length is 4
发表评论
-
十步以内完成精细web打印
2017-06-21 11:44 7367注意: 康虎云报表组 ... -
MySQL正则替换函数
2017-05-24 13:01 1971DELIMITER $$ CREATE FUNCTION ... -
MySQL 对比数据库表结构
2017-02-14 17:41 1319MySQL 对比数据库表结 ... -
浏览器端精准打印或套打组件
2017-01-18 13:05 6695注意: 康虎云报表 ... -
在MySQL中全库搜索指定字符串
2016-11-13 07:47 2555有时候,需要从整个MySQL库中搜索某一字符串,但却不知道 ... -
Sql注入之sqlmap+dvwa实例演练
2016-10-27 16:27 1591Sql注入之sqlmap+dvwa实例演练 相信 ... -
在Ubuntu 16.04上安装Odoo8(附自动安装脚本)
2016-06-09 13:02 2572在Ubuntu 16.04上安装Odoo8 一、安 ... -
ODOO9 SAAS 全自动安装脚本 基于Ubuntu 14.04 LTS
2016-05-09 10:37 2488install-odoo-saas.sh #! ... -
MySQL同类记录获取最新一条
2016-03-28 13:36 1533表结构如下: MySQL> SELECT * FRO ... -
Mybatis Generator配置详解(中文)_转
2015-12-17 16:44 917来自: http://www.jianshu.com/p/e ... -
一个提供大量数据模型的网站
2015-12-17 14:00 981网站地址是:http://www.databaseansw ... -
SQL Server Base64函数
2015-12-09 13:41 1424IF OBJECT_ID(N'dbo.c_GetUTF8Cod ... -
Odoo安装脚本
2015-08-17 23:25 1237#!/bin/bash ################# ... -
MyBatis配置文件修改侦测及重载的实现
2015-07-31 13:53 2334MyBatis配置文件修改侦测及重载的实现: /** ... -
Hive安装配置过程中出现的错误
2015-05-30 22:11 12071、hive CLI启动时报错:(hadoop-2.6+ ... -
Hibernate计算从表记录数
2015-03-30 10:01 661有一个主表,其中一个字段是从表对应的记录数,为 ... -
一个异构数据库的集群中间件(转)
2014-12-22 14:41 857Product: Sequoia Database C ... -
在MS SQLServer中创建链接服务器
2014-12-03 15:11 917要在MS SQLServer中使用链接服务器,对方数据库使用 ... -
在SQLServer上,把从表某字段拼成一个值
2014-07-14 10:08 744--> 测试数据:[father] if ob ... -
SQL Server Base64函数
2014-06-06 11:58 1295IF OBJECT_ID(N'dbo.c_GetUTF8Co ...
相关推荐
本文将详细介绍一个自定义的Oracle函数`FN_ISDATE_JAVA`,该函数用于判断给定的字符串是否能够转换为有效的日期格式。 #### 函数概述 函数`FN_ISDATE_JAVA`的主要功能是验证输入的字符串是否符合日期格式...
- `>= 1`:确保过滤后得到的字符串长度大于等于1,即至少包含一个数字字符。 #### 三、进阶技巧与注意事项 - **多条件组合**:在实际应用中,可能需要同时考虑多个条件。例如,在上述示例的基础上,还可以加入对`...
在Oracle数据库中,处理字符...希望本文对理解Oracle中的字符串长度计算有所帮助,对于更深入的Oracle知识,如数据库启动阶段分析、RMAN自动备份控制文件的方法以及Oracle EBS工具的使用,读者可以进一步探索相关资料。
Oracle提供了一系列强大的函数,帮助用户对字符串进行各种操作,如查找、替换、截取、转换等。以下是一些重要的Oracle字符处理函数的详细说明: 1. **SUBSTR()** 函数:用于从字符串中提取子串。例如,`SUBSTR...
-- 去除输入字符串的空格 l_card_number := TRIM(p_card_number); -- 获取最后一位校验码 l_card_last := TRIM(SUBSTR(l_card_number, 18, 1)); -- 检查长度是否正确 IF LENGTH(l_card_number) <> 18 THEN ...
因此,需要根据当前设备的屏幕宽度,对字符串进行自动分割,使其能够正确换行显示。具体来说,需要解决以下问题: - 如何确定字符串的分割点? - 如何根据屏幕宽度动态调整分割位置? - 如何控制最大显示行数? ##...
- `l_unit`:存储中文大写单位的字符串。 - `l_in`:存储待转换的输入值。 - `l_out`:存储转换后的中文大写金额。 - `l_tab`:实例化`t_tab`类型的表,用于存放各个数字位对应的中文大写单位。 - `l_isminus`:布尔...
通过上述详细的分析可以看出,`Func_checkIdcard`函数综合运用了Oracle数据库的各种功能,包括字符串处理、数学运算以及条件判断等,实现了对中国居民身份证号码的有效验证。这个函数不仅能够处理不同长度的身份证...
11. **DUMP(expression, fmt, start, length)**:这个函数返回一个字符串,包含表达式`expression`的内部表示,包括类型、长度和字符集等信息。`fmt`参数用于指定输出的格式,`start`和`length`用于指定要分析的字符...
- SQL SERVER中,`LEN()`函数也返回字符串长度,但它不包括尾部的空格。 4. **判断空值**: - ORACLE的`NVL()`函数用于处理NULL值,如果表达式的结果是NULL,则返回第二个参数的值。 - SQL SERVER使用`ISNULL()`...
通过此方法,可以有效地判断字符串的有效性并输出相关信息。 综上所述,本次考试覆盖了 Java 中静态导入以及条件判断和字符串处理的相关知识点,对于理解 Java 语言的基本语法和编程实践具有重要意义。
此外,LPAD和RPAD用于在字符串左侧或右侧填充字符以达到指定长度。 四、日期时间函数 Oracle提供了丰富的日期时间函数,如SYSDATE获取当前系统日期,ADD_MONTHS增加或减少月份,EXTRACT用于提取日期或时间元素,TO_...
- **MySQL**: 使用`VARCHAR(n)`来定义可变长度的字符串类型,与Oracle类似,这里的`n`同样表示最大字符数。 ##### 日期类型 - **Oracle**: 使用`DATE`类型来存储日期和时间信息(包括年、月、日、小时、分钟和秒)...
Oracle提供了大量的内置函数,用于实现各种操作,如字符串处理、数学计算、日期时间处理、转换、序列生成等。以下是一些Oracle函数的详细知识点: 1. 字符串处理函数: - TO_CHAR: 将数据类型(如日期、数字)转换...
- `LENGTH`:返回字符串的长度。 - `UPPER`和`LOWER`:分别将字符串转换为大写和小写。 5. **聚合函数**: - `COUNT`:计算行的数量。 - `SUM`:计算数值列的总和。 - `AVG`:计算平均值。 - `MAX`和`MIN`:...
- `SUBSTR()`:从字符串的指定位置截取指定长度的子串。 - `INSTR()`:查找字符串中指定字符或子串的位置。 - `UPPER()` 和 `LOWER()`:将字符串转换为大写或小写。 - `TRIM()`:去除字符串首尾的空格或指定字符...
2. **字符串函数**:如SUBSTR()用于提取字符串的一部分,LENGTH()用于计算字符串长度,UPPER()和LOWER()用于转换大小写,REPLACE()用于替换字符串中的特定字符。 3. **日期和时间函数**:SYSDATE获取当前系统日期,...
- **功能**: 类似于 `LIKE` 函数,用于判断字符串是否符合指定的正则表达式模式。 - **语法**: ```sql REGEXP_LIKE(expr, pattern [, match_parameter]) ``` - **示例**: - 查询以 "1" 开头且以 "60" 结尾的长度...
- 最终将转换好的汉字金额字符串返回。 ### 示例应用 为了更好地理解该函数的用法,我们可以举一个简单的例子: 假设需要将123456.78转换为大写形式: - 执行`SELECT rmb(123456.78) FROM dual;` - 假设返回结果为...