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

📄 第十一章 本地动态sql - pl-sql用户指南与参考 - whatiswhat.htm

📁 sql初学者不错的教程
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                            <TR>
                              <TD 
                                noWrap><STRONG>LOOP</STRONG><BR>&nbsp;&nbsp;<STRONG>FETCH</STRONG>&nbsp;emp_cv<BR>&nbsp;&nbsp;&nbsp;<STRONG>INTO</STRONG>&nbsp;my_ename,&nbsp;my_sal;&nbsp;&nbsp;&nbsp;<EM>--&nbsp;fetch&nbsp;next&nbsp;row</EM><BR><BR>&nbsp;&nbsp;<STRONG>EXIT</STRONG>&nbsp;<STRONG>WHEN</STRONG>&nbsp;emp_cv%NOTFOUND;&nbsp;&nbsp;&nbsp;<EM>--&nbsp;exit&nbsp;loop&nbsp;when&nbsp;last&nbsp;row&nbsp;is&nbsp;fetched</EM><BR>&nbsp;&nbsp;<EM>--&nbsp;process&nbsp;row</EM><BR><STRONG>END</STRONG>&nbsp;<STRONG>LOOP</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P class=title2>3、关闭游标变量</P>
                        <P>CLOSE语句能够关闭游标变量,语法如下: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>CLOSE</STRONG>&nbsp;{cursor_variable&nbsp;|&nbsp;:host_cursor_variable}; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>在下面的例子中,当最后一行数据处理完毕之后,我们就可以关闭游标变量emp_cv了: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>LOOP</STRONG><BR>&nbsp;&nbsp;<STRONG>FETCH</STRONG>&nbsp;emp_cv<BR>&nbsp;&nbsp;&nbsp;<STRONG>INTO</STRONG>&nbsp;my_ename,&nbsp;my_sal;<BR><BR>&nbsp;&nbsp;<STRONG>EXIT</STRONG>&nbsp;<STRONG>WHEN</STRONG>&nbsp;emp_cv%NOTFOUND;<BR>&nbsp;&nbsp;<EM>--&nbsp;process&nbsp;row</EM><BR><STRONG>END</STRONG>&nbsp;<STRONG>LOOP</STRONG>;<BR><BR><STRONG>CLOSE</STRONG>&nbsp;emp_cv;&nbsp;&nbsp;&nbsp;<EM>--&nbsp;close&nbsp;cursor&nbsp;variable</EM> 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P class=title2>4、记录,集合和对象类型的动态SQL举例</P>
                        <P>下面,演示一下如何从结果集中取得数据放到一个记录中去: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>DECLARE</STRONG><BR>&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;empcurtyp&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>REF</STRONG>&nbsp;<STRONG>CURSOR</STRONG>;<BR><BR>&nbsp;&nbsp;emp_cv&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;empcurtyp;<BR>&nbsp;&nbsp;emp_rec&nbsp;&nbsp;&nbsp;&nbsp;emp%<STRONG>ROWTYPE</STRONG>;<BR>&nbsp;&nbsp;sql_stmt&nbsp;&nbsp;&nbsp;<STRONG>VARCHAR2</STRONG>(200);<BR>&nbsp;&nbsp;my_job&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>VARCHAR2</STRONG>(15)&nbsp;&nbsp;:=&nbsp;<EM>'CLERK'</EM>;<BR><STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;sql_stmt&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;<EM>'SELECT&nbsp;*&nbsp;FROM&nbsp;emp&nbsp;WHERE&nbsp;job&nbsp;=&nbsp;:j'</EM>;<BR><BR>&nbsp;&nbsp;<STRONG>OPEN</STRONG>&nbsp;emp_cv&nbsp;<STRONG>FOR</STRONG>&nbsp;sql_stmt&nbsp;USING&nbsp;my_job;<BR><BR>&nbsp;&nbsp;<STRONG>LOOP</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>FETCH</STRONG>&nbsp;emp_cv<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>INTO</STRONG>&nbsp;emp_rec;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>EXIT</STRONG>&nbsp;<STRONG>WHEN</STRONG>&nbsp;emp_cv%NOTFOUND;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<EM>--&nbsp;process&nbsp;record</EM><BR>&nbsp;&nbsp;<STRONG>END</STRONG>&nbsp;<STRONG>LOOP</STRONG>;<BR><BR>&nbsp;&nbsp;<STRONG>CLOSE</STRONG>&nbsp;emp_cv;<BR><STRONG>END</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>下例演示对象和集合的用法。假定我们定义了对象类型Person和VARRAY类型Hobbises: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>CREATE</STRONG>&nbsp;<STRONG>TYPE</STRONG>&nbsp;Person&nbsp;<STRONG>AS</STRONG>&nbsp;OBJECT&nbsp;(name&nbsp;<STRONG>VARCHAR2</STRONG>(25),&nbsp;age&nbsp;<STRONG>NUMBER</STRONG>);<BR><STRONG>CREATE</STRONG>&nbsp;<STRONG>TYPE</STRONG>&nbsp;Hobbies&nbsp;<STRONG>IS</STRONG>&nbsp;VARRAY(10)&nbsp;<STRONG>OF</STRONG>&nbsp;<STRONG>VARCHAR2</STRONG>(25); 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>现在,我们使用动态SQL编写一个利用到这些类型的包: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>CREATE</STRONG>&nbsp;<STRONG>PACKAGE</STRONG>&nbsp;teams&nbsp;<STRONG>AS</STRONG><BR>&nbsp;&nbsp;<STRONG>PROCEDURE</STRONG>&nbsp;create_table(tab_name&nbsp;<STRONG>VARCHAR2</STRONG>);<BR><BR>&nbsp;&nbsp;<STRONG>PROCEDURE</STRONG>&nbsp;insert_row(tab_name&nbsp;<STRONG>VARCHAR2</STRONG>,&nbsp;p&nbsp;person,&nbsp;h&nbsp;hobbies);<BR><BR>&nbsp;&nbsp;<STRONG>PROCEDURE</STRONG>&nbsp;print_table(tab_name&nbsp;<STRONG>VARCHAR2</STRONG>);<BR><STRONG>END</STRONG>;<BR><BR><STRONG>CREATE</STRONG>&nbsp;<STRONG>PACKAGE</STRONG>&nbsp;<STRONG>BODY</STRONG>&nbsp;teams&nbsp;<STRONG>AS</STRONG><BR>&nbsp;&nbsp;<STRONG>PROCEDURE</STRONG>&nbsp;create_table(tab_name&nbsp;<STRONG>VARCHAR2</STRONG>)&nbsp;<STRONG>IS</STRONG><BR>&nbsp;&nbsp;<STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>EXECUTE</STRONG>&nbsp;<STRONG>IMMEDIATE</STRONG>&nbsp;&nbsp;&nbsp;&nbsp;<EM>'CREATE&nbsp;TABLE&nbsp;'</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;tab_name<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;<EM>'&nbsp;(pers&nbsp;Person,&nbsp;hobbs&nbsp;Hobbies)'</EM>;<BR>&nbsp;&nbsp;<STRONG>END</STRONG>;<BR><BR>&nbsp;&nbsp;<STRONG>PROCEDURE</STRONG>&nbsp;insert_row(tab_name&nbsp;<STRONG>VARCHAR2</STRONG>,&nbsp;p&nbsp;person,&nbsp;h&nbsp;hobbies)&nbsp;<STRONG>IS</STRONG><BR>&nbsp;&nbsp;<STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>EXECUTE</STRONG>&nbsp;<STRONG>IMMEDIATE</STRONG>&nbsp;<EM>'INSERT&nbsp;INTO&nbsp;'</EM>&nbsp;||&nbsp;tab_name&nbsp;||&nbsp;<EM>'&nbsp;VALUES&nbsp;(:1,&nbsp;:2)'</EM><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USING&nbsp;p,&nbsp;h;<BR>&nbsp;&nbsp;<STRONG>END</STRONG>;<BR><BR>&nbsp;&nbsp;<STRONG>PROCEDURE</STRONG>&nbsp;print_table(tab_name&nbsp;<STRONG>VARCHAR2</STRONG>)&nbsp;<STRONG>IS</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;refcurtyp&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>REF</STRONG>&nbsp;<STRONG>CURSOR</STRONG>;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;CV&nbsp;&nbsp;&nbsp;refcurtyp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;&nbsp;&nbsp;&nbsp;person;<BR>&nbsp;&nbsp;&nbsp;&nbsp;h&nbsp;&nbsp;&nbsp;&nbsp;hobbies;<BR>&nbsp;&nbsp;<STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>OPEN</STRONG>&nbsp;CV&nbsp;<STRONG>FOR</STRONG>&nbsp;<EM>'SELECT&nbsp;pers,&nbsp;hobbs&nbsp;FROM&nbsp;'</EM>&nbsp;||&nbsp;tab_name;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>LOOP</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>FETCH</STRONG>&nbsp;CV<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>INTO</STRONG>&nbsp;p,&nbsp;h;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>EXIT</STRONG>&nbsp;<STRONG>WHEN</STRONG>&nbsp;CV%NOTFOUND;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<EM>--&nbsp;print&nbsp;attributes&nbsp;of&nbsp;'p'&nbsp;and&nbsp;elements&nbsp;of&nbsp;'h'</EM><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>END</STRONG>&nbsp;<STRONG>LOOP</STRONG>;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>CLOSE</STRONG>&nbsp;CV;<BR>&nbsp;&nbsp;<STRONG>END</STRONG>;<BR><STRONG>END</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>我们可以像下面这样从匿名块中调用包teams中的过程:</P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>DECLARE</STRONG><BR>&nbsp;&nbsp;team_name&nbsp;&nbsp;&nbsp;<STRONG>VARCHAR2</STRONG>(15);<BR>&nbsp;&nbsp;...<BR><STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;...<BR>&nbsp;&nbsp;team_name&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;<EM>'Notables'</EM>;<BR>&nbsp;&nbsp;teams.create_table(team_name);<BR>&nbsp;&nbsp;teams.insert_row(team_name,&nbsp;person(<EM>'John'</EM>,&nbsp;31),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hobbies(<EM>'skiing'</EM>,&nbsp;<EM>'coin&nbsp;collecting'</EM>,&nbsp;<EM>'tennis'</EM>));<BR>&nbsp;&nbsp;teams.insert_row(team_name,&nbsp;person(<EM>'Mary'</EM>,&nbsp;28),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hobbies(<EM>'golf'</EM>,&nbsp;<EM>'quilting'</EM>,&nbsp;<EM>'rock&nbsp;climbing'</EM>));<BR>&nbsp;&nbsp;teams.print_table(team_name);<BR><STRONG>END</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P class=title1>五、使用批量动态SQL</P>
                        <P>批量绑定能减少PL/SQL和SQL引擎之间的切换,改善性能。使用下面的命令、子句和游标属性,我们就能构建批量绑定的SQL语句,然后在运行时动态地执行: 
                        </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>BULK</STRONG>&nbsp;<STRONG>FETCH</STRONG>&nbsp;语句<BR><STRONG>BULK</STRONG>&nbsp;<STRONG>EXECUTE</STRONG>&nbsp;<STRONG>IMMEDIATE</STRONG>&nbsp;语句<BR><STRONG>FORALL</STRONG>&nbsp;语句<BR><STRONG>COLLECT</STRONG>&nbsp;<STRONG>INTO</STRONG>&nbsp;子句<BR>RETURNING&nbsp;<STRONG>INTO</STRONG>&nbsp;子句<BR>%BULK_ROWCOUNT&nbsp;游标属性 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P class=title2>1、动态批量绑定语法</P>
                        <P>批量绑定能让Oracle把SQL语句中的一个变量与一个集合相绑定。集合类型可以是任何PL/SQL集合类型(索引表、嵌套表或变长数组)。但是,集合元素必须是SQL数据类型,如CHAR、DATE或NUMBER。有三种语句支持动态批量绑定:EXECUTE 
                        IMMEDIATE、FETCH和FOR ALL。 </P>
                        <UL>
                          <LI>批量EXECUTE IMMEDIATE </LI></UL>
                        <P>这个语句能让我们把变量或OUT绑定参数批量绑定到一个动态的SQL语句,语法如下: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>EXECUTE</STRONG>&nbsp;<STRONG>IMMEDIATE</STRONG>&nbsp;dynamic_string<BR>&nbsp;&nbsp;[[<STRONG>BULK</STRONG>&nbsp;<STRONG>COLLECT</STRONG>]&nbsp;<STRONG>INTO</STRONG>&nbsp;define_variable[,&nbsp;define_variable&nbsp;...]]<BR>&nbsp;&nbsp;[USING&nbsp;bind_argument[,&nbsp;bind_argument&nbsp;...]]<BR>&nbsp;&nbsp;[{RETURNING&nbsp;|&nbsp;<STRONG>RETURN</STRONG>}<BR>&nbsp;&nbsp;<STRONG>BULK</STRONG>&nbsp;<STRONG>COLLECT</STRONG>&nbsp;<STRONG>INTO</STRONG>&nbsp;bind_argument[,&nbsp;bind_argument&nbsp;...]]; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>在动态多行查询中,我们可以使用BULK COLLECT 
                        INTO子句来绑定变量。在返回多行结果的动态INSERT、UPDATE或DELETE语句中,我们可以使用RETURNING 
                        BULK COLLECT INTO子句来批量绑定输出变量。 </P>
                        <UL>
                          <LI>批量FETCH </LI></UL>
                        <P>这个语句能让我们从动态游标中取得数据,就跟从静态游标中取得的方法是一样的。语法如下: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>FETCH</STRONG>&nbsp;dynamic_cursor<BR>&nbsp;&nbsp;<STRONG>BULK</STRONG>&nbsp;<STRONG>COLLECT</STRONG>&nbsp;<STRONG>INTO</STRONG>&nbsp;define_variable[,&nbsp;define_variable&nbsp;...]; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>如果在BULK COLLECT INTO中的变量个数超过查询的字段个数,Oracle就会产生错误。 
</P>
                        <UL>
                          <LI>批量FORALL </LI></UL>
                        <P>这个语句能让我们在动态SQL语句中批量绑定输入参数。此外,我们还可以在FORALL内部使用EXECUTE 
                        IMMEDIATE语句。语法如下: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>FORALL</STRONG>&nbsp;index&nbsp;<STRONG>IN</STRONG>&nbsp;lower&nbsp;bound..upper&nbsp;bound<BR>&nbsp;&nbsp;<STRONG>EXECUTE</STRONG>&nbsp;<STRONG>IMMEDIATE</STRONG>&nbsp;dynamic_string<BR>&nbsp;&nbsp;USING&nbsp;bind_argument&nbsp;|&nbsp;bind_argument(index)<BR>&nbsp;&nbsp;&nbsp;&nbsp;[,&nbsp;bind_argument&nbsp;|&nbsp;bind_argument(index)]&nbsp;...<BR>&nbsp;&nbsp;[{RETURNING&nbsp;|&nbsp;<STRONG>RETURN</STRONG>}&nbsp;<STRONG>BULK</STRONG>&nbsp;<STRONG>COLLECT</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>INTO</STRONG>&nbsp;bind_argument[,&nbsp;bind_argument&nbsp;...&nbsp;]]; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>动态字符串必须是一个INSERT、UPDATE或DELETE语句(不可以是SELECT语句)。 </P>
                        <P class=title2>2、动态批量绑定实例</P>
                        <P>我们可以在动态查询中使用BULK COLLECT 
                        INTO子句来绑定变量。如下例所示,我们可以在批量的FETCH或EXECUTE 
                        IMMEDIATE语句中使用BULK COLLECT INTO。 </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>DECLARE</STRONG><BR>&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;empcurtyp&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>REF</STRONG>&nbsp;<STRONG>CURSOR</STRONG>;<BR><BR>&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;numlist&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>TABLE</STRONG>&nbsp;<STRONG>OF</STRONG>&nbsp;<STRONG>NUMBER</STRONG>;<BR><BR>&nbsp;&nbsp;<STRONG>TYPE</STRONG>&nbsp;namelist&nbsp;<STRONG>IS</STRONG>&nbsp;<STRONG>TABLE</STRONG>&nbsp;<STRONG>OF</STRONG>&nbsp;<STRONG>VARCHAR2</STRONG>(15);<BR><BR>&nbsp;&nbsp;emp_cv&nbsp;&nbsp;&nbsp;empcurtyp;<BR>&nbsp;&nbsp;empnos&nbsp;&nbsp;&nbsp;numlist;<BR>&nbsp;&nbsp;enames&nbsp;&nbsp;&nbsp;namelist;<BR>&nbsp;&nbsp;sals&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numlist;<BR><STRONG>BEGIN</STRONG><BR>&nbsp;&nbsp;<STRONG>OPEN</STRONG>&nbsp;emp_cv&nbsp;<STRONG>FOR</STRONG>&nbsp;<EM>'SELECT&nbsp;empno,&nbsp;ename&nbsp;FROM&nbsp;emp'</EM>;<BR><BR>&nbsp;&nbsp;<STRONG>FETCH</STRONG>&nbsp;emp_cv<BR>&nbsp;&nbsp;<STRONG>BULK</STRONG>&nbsp;<STRONG>COLLECT</STRONG>&nbsp;<STRONG>INTO</STRONG>&nbsp;empnos,&nbsp;enames;<BR><BR>&nbsp;&nbsp;<STRONG>CLOSE</STRONG>&nbsp;emp_cv;<BR><BR>&nbsp;&nbsp;<STRONG>EXECUTE</STRONG>&nbsp;<STRONG>IMMEDIATE</STRONG>&nbsp;<EM>'SELECT&nbsp;sal&nbsp;FROM&nbsp;emp'</EM><BR>&nbsp;&nbsp;<STRONG>BULK</STRONG>&nbsp;<STRONG>COLLECT</STRONG>&nbsp;<STRONG>INTO</STRONG>&nbsp;sals;<BR><STRONG>END</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>只有INSERT、UPDATE和DELETE语句才能拥有输出绑定参数。我们可以在EXECUTE 
                        IMMDIATE的BULK RETURNING INTO子句中进行绑定: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>

⌨️ 快捷键说明

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