知识大全 ABOUT : 字符数组

Posted 索引

篇首语:知识是抵御一切灾祸的盾牌。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ABOUT : 字符数组相关的知识,希望对你有一定的参考价值。

ABOUT : 字符数组  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  很长一段时间内 PL/SQL开发人员必须有一个 index by表 才能创建某个指定数据类型的或者PL/SQL记录的表     因为他们只接受整型数据以从数组中提取数据 所以类型声明的末尾子句以 INDEX BY BINARY_INTEGER 结束     如果想以非整型值作为索引 要么你必须创建一个存储过程来扫描需要的值 要么你必须在一个单独的表上建立一个索引     declare  type valrec is record(key varchar ( ) val varchar ( ));  type valtbl is table of valrec index by binary_integer;  mytbl valtbl;  begin  mytbl( ) key := foo ;  mytbl( ) val := bar ;  for i in unt loop  if mytbl(i) key = foo then  dbms_output put_line(mytbl(i) val);  end if;  end loop;  end;    PL/SQL允许使用index by表创建某个指定数据类型或者PL/SQL记录的表     然而 如果想以非整型值作为索引 要么你必须创建一个存储过程扫描你需要的值 要么你必须在一个单独的表上建立一个索引     Oracle i扩展了index by表的语法 允许字符串类型的索引 叫做关联数组     有了字符串类型 你现在就可以快速访问元素 而不用再在每个元素间循环或者去知道它在数组中的位置     declare  type valtbl is table of varchar ( ) index by varchar ( );  mytbl valtbl;  begin  mytbl( zhao ) := apple ;  mytbl( zhao ):= orange ;  dbms_output put_line(mytbl( zhao ));  dbms_output put_line(mytbl( zhao ));  end;    使用字符串索引的关联数组的一个有趣的特性是它们自动地通过当前的国际语言支持(NLS)设置排序     FIRST和LAST函数返回数组中以字典序排列的第一个和最后一个健值 NEXT和PRIOR允许你以字典序获取下一个和前一个键     declare  type valtbl is table of varchar ( ) index by varchar ( );  mytbl valtbl;  key varchar ( );  begin  mytbl( b ) := o ;  mytbl( a ) := one ;  mytbl( c ) := three ;  key := mytbl first;  while key is not null loop  dbms_output put_line(mytbl(key));  key := mytbl next(key);  end loop;  end;    因为Oracle可以自动地将任何的数据类型转换为字符串类型 所以能以字符串作为索引意味着可以以任何数据类型作为索引     你可以使用这个方法把日期 浮点值 行二进制值和对象引用作为索引     declare  type timetbl is table of integer index by varchar ( );  mytbl timetbl;  key varchar ( );  begin  for row in (select * from emp) loop  key := to_char(row hiredate YYYYMMDD );  if not mytbl exists(key) then  mytbl(key) := ;  end if;  mytbl(key) := mytbl(key) + ;  end loop;  dbms_output put_line( hiring barchart: );  dbms_output put_line( );  key := mytbl first;  while key is not null loop  dbms_output put_line(  to_char(to_date(key YYYYMMDD ) DD MON YYYY )  || : ||rpad( # mytbl(key) # ));  key := mytbl next(key);  end loop;  end;    键值必须是唯一的并且是大小写敏感的 在运行时改变NLS值可能会产生运行时错误     对于关联数组的每一个操作NLS设置必须保持相同     关联数组必须在PL/SQL代码中手工建立     其它的程序开发语言和接口不能把主机数组绑定到并联数组 所以你就不能用字符串索引的关联数组使用BULK COLLECT cha138/Article/program/Oracle/201311/18282

相关参考

知识大全 基于php常用函数总结(数组,字符串,时间,文件操作)

  数组:【重点】implode(分隔arr)把数组值数据按指定字符连接起来例如$arr=array();$str=implode($arr);explode([分隔]arr)按指定规则对一个字符串进

知识大全 用VB.NET将字节数组转换为字符串

用VB.NET将字节数组转换为字符串  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近我说明了

知识大全 js中如何把字符串转化为对象、数组示例代码

在本文为大家介绍下把字符串转化为对象把文本转化为对象把文本转化为数组具体实现如下感兴趣的朋友可以参考下哈希望对大家有所帮助   例如复制代码代码如下:vartest=colkey:"col"

知识大全 java 整形数组、字节流的互转

  前言  某些时候我们想存储一些整形长整形的内容到一些地方当然你可能会用分隔来存比如    这种形式并没有错但存以几个缺点  字符串格式占用空间太多在java里以上字符串至少条占*=Byte不管是读

知识大全 数据结构考研分类复习真题 第五章 数组和广义表[4]

  二维数组A的每个元素是由个字符组成的串其行下标i=…列下标j=…若A按行先存储元素A[]的起始地址与当A按列先存储时的元素(   )的起始地址相同设每个字符占一个字节

知识大全 asp入门函数语法速查手册

  Abs(数值)绝对值一个数字的绝对值是它的正值空字符串(null)的绝对值也是空字符串未初始化的变数其绝对为例子ABS()  结果  Array(以逗点分隔的数组元素)Array函数传回数组元素的

知识大全 数据结构考研分类复习真题 第四章 答案[18]

  [题目分析]设字符串存于字符数组X中若转换后的数是负数字符串的第一个字符必为取出的数字字符通过减去字符零()的ASCII值变成数先前取出的数乘上加上本次转换的数形成部分数直到字符串结束得到结果  

知识大全 数据结构串之串的顺序存储

串的顺序存储  串的顺序存储结构简称顺序串顺序串是用一组地址连续的存储单元依次存储串中的字符序列  静态存储分配的顺序串  顺序串最简单的描述形式是直接使用定长的字符数组来定义数组的上界预先

知识大全 talk with 和 talk about 的区别

talkwith和talkabout的区别talkwith后面接sb,和某人说话,talkabout后面可以接sb/sth,意思是讨论某人某物满意请采纳,谢谢talkover和talkabout的区别

知识大全 php连接函数implode与分割explode的深入解析

  目前学习php的人有很多很多进行php培训的朋友在学习中总会问到这样一个问题:php连接函数implode是什么呢?php可以将字符串分割成数组同时翻过了也可以将数组连接成字符串确切的说是可以将数