【问题标题】:Considerations about associative arrays in PLSQL关于 PLSQL 中关联数组的注意事项
【发布时间】:2017-05-10 13:39:30
【问题描述】:

我正在学习 PLSQL 集合,现在我正在练习 associativa 数组,第一步,我使用 PLSQL 方法进行集合(FIRST、LAST、COUNT、PRIOR)并且我编写了一个简单的循环以在屏幕上打印关联变量中的所有信息。这是一个关于随机足球队球员的简单示例,但我不明白使用集合编写循环的步骤。这个循环工作正常,但我不明白创建关联数组循环的过程。我需要关于这个 PLSQL 资源的考虑和“理论”。谢谢。

DECLARE
  TYPE spurs_players_type IS TABLE OF VARCHAR2(45)
       INDEX BY PLS_INTEGER;
  v_spurs_2006 spurs_players_type;

  v_spurs_numero PLS_INTEGER;
BEGIN
  v_spurs_2006(1)  := 'Robinson';
  v_spurs_2006(2)  := 'Chimbonda';
  v_spurs_2006(3)  := 'Young';
  v_spurs_2006(4)  := 'Zokora';
  v_spurs_2006(5)  := 'Davids';
  v_spurs_2006(6)  := 'Taino';
  v_spurs_2006(7)  := 'Stalteri';
  v_spurs_2006(8)  := 'Jenas';
  v_spurs_2006(10) := 'Keane';
  v_spurs_2006(20) := 'Dawson';
  v_spurs_2006(22) := 'Huddlestone';
  v_spurs_2006(25) := 'Lennon';
  v_spurs_2006(26) := 'King';
  v_spurs_2006(35) := 'Dervite';

v_spurs_numero := v_spurs_2006.LAST;

  WHILE v_spurs_numero IS NOT NULL
  LOOP
        DBMS_OUTPUT.PUT_LINE('Number of player ' ||
                             v_spurs_2006(v_spurs_numero) || ' is ' ||
                             v_spurs_numero);
        v_spurs_numero := v_spurs_2006.PRIOR (v_spurs_numero);
  END LOOP;
END;

【问题讨论】:

  • 不确定你在问什么——你不理解你写的代码;或者您现在想做其他事情(什么?)并且不知道如何/它不起作用? “理论”在the documentation...
  • 这就是重点。看不懂你写的代码!!!我不明白为什么我必须在 DBMS_OUTPUT 之后写... "v_spurst :=....PRIOR (v_spurs_numero); 我了解循环是如何工作的,并且我用简单的变量 "variable_name table.column%" 编写了很多循环TYPE”,但现在很难理解关联 Varray 的 LOOP。我需要一些关于关联循环如何工作的简历或文本教程。感谢您回复我的帖子。

标签: sql arrays oracle loops plsql


【解决方案1】:

.LAST 和 .PRIOR 是收集方法,请查看以下文档: Collection Methods

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 2011-04-27
    • 2021-07-20
    • 1970-01-01
    相关资源
    最近更新 更多