在选择查询列名称中使用循环

时间:2017-10-05 07:23:57

标签: oracle11g

create or replace PROCEDURE NG_SP_TEST_ZAPIN 
as
i number;
q nvarchar2(100);
BEGIN
    i:=1;
   select ftrquestion1 into q from NG_ZAPIN_FTRCHECKLIST where wi_name=1;
   select ftrquestion2 into q from NG_ZAPIN_FTRCHECKLIST where wi_name=1;
   select ftrquestion3 into q from NG_ZAPIN_FTRCHECKLIST where wi_name=1;
   select ftrquestion4 into q from NG_ZAPIN_FTRCHECKLIST where wi_name=1;
   select ftrquestion5 into q from NG_ZAPIN_FTRCHECKLIST where wi_name=1;
   select ftrquestion6 into q from NG_ZAPIN_FTRCHECKLIST where wi_name=1;
   select ftrquestion7 into q from NG_ZAPIN_FTRCHECKLIST where wi_name=1;
   select ftrquestion8 into q from NG_ZAPIN_FTRCHECKLIST where wi_name=1;    
END;

我必须从表中选择一个具有相同前缀的特定列,最后一个值单独更改为0..10,而不是写入10个选择查询,我可以放入一个循环并迭代并附加i(用于循环值)作为专栏的最后一个字符..

1 个答案:

答案 0 :(得分:0)

您应该在一个查询中获取所有字段并在代码中拆分数据。当我读到你的代码时,每行都会覆盖以前的选择吗?

select ftrquestion1,
ftrquestion2,
ftrquestion3,
ftrquestion[...]
into q from NG_ZAPIN_FTRCHECKLIST where wi_name=1;

其中q是一个字符串数组,但我不知道您使用的语言以及它如何将选择集保存到数组中。 或者我的请求有误?