PL / SQL将列值选择为变量

时间:2019-03-11 15:43:29

标签: oracle plsql

我有一个已创建的视图,我需要从中提取一些标记。我读到有关BULK COLLECT的信息,但我认为它不适合我,因为稍后需要存储提取的值

SELECT TOKEN FROM MAPPING_VIEW WHERE USERNAME='Peter'

例如,我在这里返回了许多令牌(无法预测返回的令牌数量)。 我在pl / sql上很新,有人可以给我指导如何将提取的令牌存储在不同的变量中吗?正如我提到的,我不知道可以预先返回多少令牌。

1 个答案:

答案 0 :(得分:0)

您可以尝试

DECLARE
 TYPE rec_token IS TABLE OF VARCHAR2(100);
      l_rec_token rec_token;
BEGIN
   BEGIN
      SELECT token
      BULK COLLECT INTO l_rec_token
      FROM mapping_view
      WHERE username='Peter';
   EXCEPTION
   WHEN NO_DATA_FOUND THEN
      l_rec_token := rec_token();
  END ;

  IF l_rec_token.COUNT >0 THEN
  FOR i IN l_rec_token.FIRST..l_rec_token.LAST
  LOOP
    <doSomeThing>
  END LOOP;
  END IF;
END;