加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 06:58:59 所属栏目: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>

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

(编辑:李大同)

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

    推荐文章
      热点阅读