加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MsSql > 正文

sql – 对于每个字符串,执行一个函数/过程

发布时间:2020-05-24 09:55:55 所属栏目:MsSql 来源:互联网
导读:我想遍历一个字符串列表并执行一个函数/过程,每个字符串作为参数. 以下通用代码的最佳替代方法是什么(因为它不合法): set serveroutput on; begin FOR r IN (The, Quick, brown, fox) LOOP dbms_output.put_line( r ); END LOOP;end; 我假设可

我想遍历一个字符串列表并执行一个函数/过程,每个字符串作为参数.

以下通用代码的最佳替代方法是什么(因为它不合法):

set serveroutput on;  
begin
    FOR r IN ('The','Quick','brown','fox')
    LOOP
        dbms_output.put_line( r );
   END LOOP;
end;

我假设可能有这种模式.

解决方法

只是为了完整性,一个纯粹的PL / SQL解决方案.
SQL> set serveroutput on
SQL>
SQL> declare
  2      my_array sys.dbms_debug_vc2coll
  3          := sys.dbms_debug_vc2coll('The','fox');
  4  begin
  5     for r in my_array.first..my_array.last
  6      loop
  7          dbms_output.put_line( my_array(r) );
  8     end loop;
  9  end;
 10  /
The
Quick
brown
fox

PL/SQL procedure successfully completed.

SQL>

这使用了preredred sys.dbms_debug_vc2coll数据类型,它具有相当大的定义……

SQL> desc sys.dbms_debug_vc2coll
 sys.dbms_debug_vc2coll TABLE OF VARCHAR2(1000)

SQL>

……所以,就像加里说的那样,你可能希望宣布自己的.特别是如果你的琴弦很短并且你有很多.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读