⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 第五章 pl-sql集合与记录(1) - pl-sql用户指南与参考 - whatiswhat.htm

📁 sql初学者不错的教程
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>DECLARE</STRONG><BR>&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;courselist&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>TABLE</STRONG>&nbsp;<STRONG>OF</STRONG>&nbsp;<STRONG>VARCHAR2</STRONG>(16);<BR><BR>&nbsp;&nbsp;my_courses&nbsp;&nbsp;&nbsp;courselist&nbsp;:=&nbsp;courselist(<EM>'Art&nbsp;1111'</EM>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<EM>'Hist&nbsp;3100'</EM>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<EM>'Engl&nbsp;2005'</EM><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;); 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <UL>
                          <LI>例五:空的(empty)变长数组构造函数 </LI></UL>
                        <P>如果在调用构造函数时不传递任何参数,就会得到一个空的(empty)集合,这里指的是集合内容为空,而不是集合本身为空: 
                        </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>DECLARE</STRONG><BR>&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;clientele&nbsp;<STRONG>IS</STRONG>&nbsp;VARRAY(100)&nbsp;<STRONG>OF</STRONG>&nbsp;customer;<BR><BR>&nbsp;&nbsp;vips&nbsp;&nbsp;&nbsp;clientele&nbsp;:=&nbsp;clientele();&nbsp;&nbsp;&nbsp;<EM>--&nbsp;initialize&nbsp;empty&nbsp;varray</EM><BR><STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;<STRONG>IF</STRONG>&nbsp;vips&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>NOT</STRONG>&nbsp;<STRONG>NULL</STRONG>&nbsp;<STRONG>THEN</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;<EM>--&nbsp;condition&nbsp;yields&nbsp;<STRONG>TRUE</STRONG></EM><BR>&nbsp;&nbsp;&nbsp;&nbsp;...<BR>&nbsp;&nbsp;<STRONG>END</STRONG>&nbsp;<STRONG>IF</STRONG>;<BR><STRONG>END</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>这种情况下,我们可以调用EXTEND方法来添加元素。 </P>
                        <UL>
                          <LI>例六:SQL语句中使用嵌套表构造函数 </LI></UL>
                        <P>下例中,我们把几个标量值和一个CourseList嵌套表插入到表SOPHOMORES中:</P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;<STRONG>INSERT</STRONG>&nbsp;<STRONG>INTO</STRONG>&nbsp;sophomores<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>VALUES</STRONG>&nbsp;(5035,&nbsp;<EM>'Janet&nbsp;Alvarez'</EM>,&nbsp;<EM>'122&nbsp;Broad&nbsp;St'</EM>,&nbsp;<EM>'FT'</EM>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;courselist(<EM>'Econ&nbsp;2010'</EM>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<EM>'Acct&nbsp;3401'</EM>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<EM>'Mgmt&nbsp;3100'</EM><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)); 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <UL>
                          <LI>例七:SQL语句中使用变长数组构造函数 </LI></UL>
                        <P>下例中,我们把一行数据插入到表DEPARTMENT。变长数组构造函数ProjectList()为字段PROJECTS提供数据: 
                        </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;<STRONG>INSERT</STRONG>&nbsp;<STRONG>INTO</STRONG>&nbsp;department<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>VALUES</STRONG>&nbsp;(60,&nbsp;<EM>'Security'</EM>,&nbsp;750400,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;projectlist(<EM>'New&nbsp;Badges'</EM>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<EM>'Track&nbsp;Computers'</EM>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<EM>'Check&nbsp;Exits'</EM><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)); 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P class=title2>1、引用集合中的元素 </P>
                        <P>集合的引用包含了集合的名称和用圆括号夹起来的下标索引。下标索引决定了要选取哪个元素。语法如下:</P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD noWrap>collection_name(subscript) 
                            </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>多数情况下,下标是一个运算结果为整数的表达式,对于使用字符串作键的关联数组来说也可能是一个VARCHAR2类型值。下标索引允许的范围如下: 
                        </P>
                        <OL>
                          <LI>对于嵌套表,索引值的范围在1至2**31之间。 
                          <LI>对于变长数组,索引值的范围在1至最大长度之间,最大长度是在声明时指定的。 
                          <LI>对于使用数字作键的关联数组来说,索引值的范围在-2**31至2**31之间。 
                          <LI>对于使用字符串作键的关联数组来说,键的长度和可用值的数量要依赖于类型声明时对VARCHAR2的长度限制和数据库字符集。 
                          </LI></OL>
                        <UL>
                          <LI>例一:使用下标索引来引用嵌套表中的元素 </LI></UL>
                        <P>这里我们演示一下如何引用嵌套表NAMES中的元素:</P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>DECLARE</STRONG><BR>&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;roster&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>TABLE</STRONG>&nbsp;<STRONG>OF</STRONG>&nbsp;<STRONG>VARCHAR2</STRONG>(15);<BR><BR>&nbsp;&nbsp;names&nbsp;&nbsp;&nbsp;roster&nbsp;:=&nbsp;roster(<EM>'J&nbsp;Hamil'</EM>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<EM>'D&nbsp;Caruso'</EM>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<EM>'R&nbsp;Singh'</EM><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<BR><STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;<STRONG>FOR</STRONG>&nbsp;i&nbsp;<STRONG>IN</STRONG>&nbsp;names.FIRST&nbsp;..&nbsp;names.LAST&nbsp;<STRONG>LOOP</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>IF</STRONG>&nbsp;names(i)&nbsp;=&nbsp;<EM>'J&nbsp;Hamil'</EM>&nbsp;<STRONG>THEN</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>NULL</STRONG>;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>END</STRONG>&nbsp;<STRONG>IF</STRONG>;<BR>&nbsp;&nbsp;<STRONG>END</STRONG>&nbsp;<STRONG>LOOP</STRONG>;<BR><STRONG>END</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <UL>
                          <LI>例二:把嵌套表元素作为参数传递 </LI></UL>
                        <P>这个例子中我们在调用子程序时引用了集合中的元素:</P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>DECLARE</STRONG><BR>&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;roster&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>TABLE</STRONG>&nbsp;<STRONG>OF</STRONG>&nbsp;<STRONG>VARCHAR2</STRONG>(15);<BR><BR>&nbsp;&nbsp;names&nbsp;&nbsp;&nbsp;roster&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;roster(<EM>'J&nbsp;Hamil'</EM>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<EM>'D&nbsp;Piro'</EM>,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<EM>'R&nbsp;Singh'</EM><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<BR>&nbsp;&nbsp;i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>BINARY_INTEGER</STRONG>&nbsp;:=&nbsp;2;<BR><STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;verify_name(names(i));&nbsp;&nbsp;&nbsp;<EM>--&nbsp;call&nbsp;procedure</EM><BR><STRONG>END</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P class=title1>六、集合的赋值</P>
                        <P>集合可以用INSERT、UPDATE、FETCH或SELECT语句来赋值,也可以用赋值语句或调用子程序来赋值。</P>
                        <P>我们可以使用下面的语法来为某个指定的集合元素进行赋值: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap>collection_name(subscript)&nbsp;:=&nbsp;expression; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>其中expression的值和被指定的元素类型必须一致。下面我们来看三个例子。 </P>
                        <UL>
                          <LI>例一:数据的兼容性 </LI></UL>
                        <P>例子中的集合与集合之间互相赋值,但必须是两个集合类型相同的才可以,光是元素的类型相同是不够的。 </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>DECLARE</STRONG><BR>&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;clientele&nbsp;<STRONG>IS</STRONG>&nbsp;VARRAY(100)&nbsp;<STRONG>OF</STRONG>&nbsp;customer;<BR><BR>&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;vips&nbsp;<STRONG>IS</STRONG>&nbsp;VARRAY(100)&nbsp;<STRONG>OF</STRONG>&nbsp;customer;<BR><BR>&nbsp;&nbsp;<EM>--&nbsp;These&nbsp;first&nbsp;two&nbsp;variables&nbsp;have&nbsp;the&nbsp;same&nbsp;datatype.</EM><BR>&nbsp;&nbsp;group1&nbsp;&nbsp;&nbsp;clientele&nbsp;:=&nbsp;clientele(...);<BR>&nbsp;&nbsp;group2&nbsp;&nbsp;&nbsp;clientele&nbsp;:=&nbsp;clientele(...);<BR>&nbsp;&nbsp;<EM>--&nbsp;This&nbsp;third&nbsp;variable&nbsp;has&nbsp;a&nbsp;similar&nbsp;declaration,</EM><BR>&nbsp;&nbsp;<EM>--&nbsp;but&nbsp;is&nbsp;not&nbsp;the&nbsp;same&nbsp;type.</EM><BR>&nbsp;&nbsp;group3&nbsp;&nbsp;&nbsp;vips&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;vips(...);<BR><STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;<EM>--&nbsp;Allowed&nbsp;because&nbsp;they&nbsp;have&nbsp;the&nbsp;same&nbsp;datatype</EM><BR>&nbsp;&nbsp;group2&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;group1;<BR>&nbsp;&nbsp;<EM>--&nbsp;Not&nbsp;allowed&nbsp;because&nbsp;they&nbsp;have&nbsp;different&nbsp;datatypes</EM><BR>&nbsp;&nbsp;group3&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;group2;<BR><STRONG>END</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <UL>
                          <LI>例二:为嵌套表赋空值 </LI></UL>
                        <P>当我们把一个被自动初始化为空的嵌套表或变长数组赋给另外一个嵌套表或变长数组时,被赋值的集合就会被重新初始化,结果也为NULL。 
                        </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>DECLARE</STRONG><BR>&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;clientele&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>TABLE</STRONG>&nbsp;<STRONG>OF</STRONG>&nbsp;<STRONG>VARCHAR2</STRONG>(64);<BR><BR>&nbsp;&nbsp;<EM>--&nbsp;This&nbsp;nested&nbsp;table&nbsp;has&nbsp;some&nbsp;values.</EM><BR>&nbsp;&nbsp;group1&nbsp;&nbsp;&nbsp;clientele&nbsp;:=&nbsp;clientele(<EM>'Customer&nbsp;1'</EM>,&nbsp;<EM>'Customer&nbsp;2'</EM>);<BR>&nbsp;&nbsp;<EM>--&nbsp;This&nbsp;nested&nbsp;table&nbsp;is&nbsp;not&nbsp;initialized&nbsp;("atomically&nbsp;null").</EM><BR>&nbsp;&nbsp;group2&nbsp;&nbsp;&nbsp;clientele;<BR><STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;<EM>--&nbsp;At&nbsp;first,&nbsp;the&nbsp;test&nbsp;<STRONG>IF</STRONG>&nbsp;group1&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>NULL</STRONG>&nbsp;yields&nbsp;<STRONG>FALSE</STRONG>.</EM><BR>&nbsp;&nbsp;<EM>--&nbsp;Then&nbsp;we&nbsp;assign&nbsp;a&nbsp;null&nbsp;nested&nbsp;table&nbsp;to&nbsp;group1.</EM><BR>&nbsp;&nbsp;group1&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;group2;<BR>&nbsp;&nbsp;<EM>--&nbsp;Now&nbsp;the&nbsp;test&nbsp;<STRONG>IF</STRONG>&nbsp;group1&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>NULL</STRONG>&nbsp;yields&nbsp;<STRONG>TRUE</STRONG>.</EM><BR>&nbsp;&nbsp;<EM>--&nbsp;We&nbsp;must&nbsp;use&nbsp;another&nbsp;constructor&nbsp;to&nbsp;give&nbsp;it&nbsp;some&nbsp;values.</EM><BR><STRONG>END</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <UL>
                          <LI>例三:集合赋值时可能引起的异常 </LI></UL>
                        <P>在下面几种给集合元素赋值的情况下,可能会引起多种异常。</P>
                        <OL>
                          <LI>如果下标索引不存在或无法转换成正确的数据类型,PL/SQL就会抛出预定义异常VALUE_ERROR。通常,下标是一个整数。但关联数组的下标也可以是VARCHAR2类型。 

                          <LI>如果所给下标索引指向了一个未初始化的元素时,PL/SQL就会抛出SUBSCRIPT_BEYOND_COUNT异常。 

                          <LI>如果集合被自动初始化为空值并且程序引用了其中的一个元素,PL/SQL会抛出COLLECTION_IS_NULL异常。 
                          </LI></OL>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>DECLARE</STRONG><BR>&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;wordlist&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>TABLE</STRONG>&nbsp;<STRONG>OF</STRONG>&nbsp;<STRONG>VARCHAR2</STRONG>(5);<BR><BR>&nbsp;&nbsp;words&nbsp;&nbsp;&nbsp;wordlist;<BR><STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;<EM>/*&nbsp;Assume&nbsp;execution&nbsp;continues&nbsp;despite&nbsp;the&nbsp;raised&nbsp;exceptions.&nbsp;*/</EM><BR>&nbsp;&nbsp;<EM>--&nbsp;Raises&nbsp;COLLECTION_IS_NULL.&nbsp;We&nbsp;haven't&nbsp;used&nbsp;a&nbsp;constructor&nbsp;yet.</EM><BR>&nbsp;&nbsp;<EM>--&nbsp;This&nbsp;exception&nbsp;applies&nbsp;to&nbsp;varrays&nbsp;and&nbsp;nested&nbsp;tables,&nbsp;but&nbsp;not</EM><BR>&nbsp;&nbsp;<EM>--&nbsp;associative&nbsp;arrays&nbsp;which&nbsp;don't&nbsp;need&nbsp;a&nbsp;constructor.</EM><BR>&nbsp;&nbsp;words(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;10;<BR>&nbsp;&nbsp;<EM>--&nbsp;After&nbsp;using&nbsp;a&nbsp;constructor,&nbsp;we&nbsp;can&nbsp;assign&nbsp;values&nbsp;to&nbsp;the&nbsp;elements.</EM><BR>&nbsp;&nbsp;words&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;wordlist(10,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<BR>&nbsp;&nbsp;<EM>--&nbsp;Any&nbsp;expression&nbsp;that&nbsp;returns&nbsp;a&nbsp;VARCHAR2(5)&nbsp;is&nbsp;OK.</EM><BR>&nbsp;&nbsp;words(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;<EM>'yes'</EM>;<BR>&nbsp;&nbsp;words(2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;words(1)&nbsp;||&nbsp;<EM>'no'</EM>;<BR>&nbsp;&nbsp;<EM>--&nbsp;Raises&nbsp;VALUE_ERROR&nbsp;because&nbsp;the&nbsp;assigned&nbsp;value&nbsp;is&nbsp;too&nbsp;long.</EM><BR>&nbsp;&nbsp;words(3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;<EM>'longer&nbsp;than&nbsp;5&nbsp;characters'</EM>;<BR>&nbsp;&nbsp;<EM>--&nbsp;Raises&nbsp;VALUE_ERROR&nbsp;because&nbsp;the&nbsp;subscript&nbsp;of&nbsp;a&nbsp;nested&nbsp;table&nbsp;must</EM><BR>&nbsp;&nbsp;<EM>--&nbsp;be&nbsp;an&nbsp;integer.</EM><BR>&nbsp;&nbsp;words(<EM>'B'</EM>)&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;<EM>'dunno'</EM>;<B

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -