一般, char 和 nchar 类型很少使用.

建议使用 varchar2 和 nvarchar2, 其中( n 开头的是国家字符集, 没有n开头的是数据库字符集 )

一般也不怎么使用国家字符集

variable_name VARCHAR2(max_length [char | byte]);  其中 char 说明以字符为单位, byte说明以字节为单位.

如果忽略了char或 byte( 我们一般都这样做, 定义时直接 varchar2(10) 类似这种), 这时, 要看初始化参数NLS_LENGTH_SEMANTICS 查看默认的到底是使用 char 还是 byte.

例如:

declare

small_string VARCHAR2(4);

line_of_text VARCHAR2(2000);

feature_name VARCHAR2(100 BYTE);   -- 100字节

emp_name VARCHAR2(30 CHAR);  -- 30个字符的字符串 (个人觉得这种好点, 但是我使用DBCA创建的数据库, 默认的居然是 byte)

使用字符串

就是使用oracle提供的字符串函数来处理字符串.

字符串常量: ‘Brighten the corner’

q’!Arent’t you glad you’re learning pl/sql with o’reilly ?!’可以看到, 只要使用这种, 标记符号里边无论有多少个单引号都没有关系, 另外分隔符!!也可以换成其他的, 例如 [] 等等

另外: 一般也不用特殊关系国家字符集

一些字符串函数:

cancat(string1, string2)

upper(string1)

lower(string1)

Initcap(string1) -- 首字符大写

LPAD, RPAD

SUBSTR

INSTR

TRIM, LTRIM, RTRIM

ORACLE 10G 以后引入了对正则表达式的支持.

REGEXP_LIKE(字符串, 模式串)  -- 注意, 这不是普通的 LIKE, 例如:

name varchar2(60) := ‘Anna, Matt, Joe, Nathan, Andrew, Jeff, Aaron’;

com_string := REGEXP_LIKE(name, ‘^([a-z A-z]*,)+([a-z A-Z]*){1}$’)

如果能匹配, 则返回 true, 否则返回 false

[a-z A-Z]: 表示 小写字母 空格 大写字母

[a-z A-Z]* 表示 小写字母 空格 大写字母 重复 0 –n 次

([a-z A-Z]*) 圆括号表示定义了一个子表达式

([a-z A-Z]*)+ 加号表示前边的子表达式 1-n 个

^ $ 表示开头和结尾

REGEXP_INSTR : 定位一个模式

REGEXP_INSTR(source_string, patern [, beginning_position [, occurence

[, return_option

[, match_modifier [, subexpression]]]]]])

看来, 这里的正则表达式和别的语言的基本一样

REGEXP_SUBSTR 函数, 参数基本和 REGEXP_INSTR 一样

使用空字符串

varchar2 类型的 ‘’ 空字符串 就等于 null, 而 char 类型的 ‘’ 不等于 null

字符串比较, 例如: (我们只讨论varchar2类型, char类型支持空白补齐, 而varchar2类型不支持)

name1 char(10) := ‘hello’;

name2 varchar2(20) := ‘hello’;

虽然看起来 name1 和 name2 值相同, 但是因为他们的类型一个是varchar2(10), 一个是 varchar2(20), 而varchar2不支持空白补齐, 所以 name1 <> name2 , name1 不等于 name2(如果是char类型, 就相等)

但是, 如果同时都是 varchar2 类型的, 倒更好了, 因为都不支持空白补齐, 所以name1 和 name2 是相等的.

字符串这章有很多函数, 基本跟别的语言差不多用法.

最新文章

  1. [从产品角度学EXCEL 00]-为什么要关注EXCEL的本质
  2. 写一个js向左滑动删除 交互特效的插件——Html5 touchmove
  3. es6学习笔记一数组(下)
  4. IE6中使用通用选择器模拟子选择器效果
  5. 关于Matrix的深入理解(对应值的功能)
  6. IIS限制ip访问
  7. 【USACO】pprime
  8. ios app的真机调试与发布配置
  9. What is a Windows USB device path and how is it formatted?
  10. ***RESTful API 设计指南(阮一峰)
  11. 【HDOJ】【2089】不要62
  12. 全面剖析Redis Cluster原理和应用
  13. MongoDB 如何实现备份压缩
  14. MySQL 性能优化的最佳20多条经验分享(收藏)
  15. C语言的main函数到底该怎么写
  16. SOA的理解
  17. nginx作为web服务以及nginx.conf详解
  18. poj 2406 求字符串中重复子串的个数
  19. 爬取w3c课程—Urllib库使用
  20. telnet测试端口的使用

热门文章

  1. Linux Hook 笔记
  2. 【java】File的使用:将字符串写出到本地文件,大小0kb的原因
  3. kettle新手教程
  4. Jedis(Java+Redis) Pool的使用
  5. 转:解决 java.util.MissingResourceException: Can&#39;t find bundle for base name com...config, locale zh_CN 错误
  6. SVN服务的部署及使用
  7. 虚拟机主流软件Vmware安装
  8. MS project 使用小技巧收集
  9. 转:http2基本中文翻译
  10. webstorm 破解方式