【发布时间】:2019-09-21 00:55:09
【问题描述】:
我想执行以下操作,但我缺乏执行此操作的 Oracle SQL 知识。
我希望将用户标识作为字符串,然后将字符串列表作为过程的参数。
在此过程中,我希望为该列表中的每个值插入一个表,每次都使用相同的用户 ID。
我的问题:
我找不到如何声明输入参数以使其成为列表的示例。我需要把它变成一个长的varchar吗?我大致知道如果列表完全填写,最大长度可能是多少,但我想知道是否有某种列表的数据类型?
如何循环遍历列表。
我看到很多这样的例子:
FOR r IN ('The', 'Quick', 'brown', 'fox')
LOOP
// Do stuff
END LOOP;
那么这是否意味着我应该将我的列表作为带有逗号分隔值的单个字符串提供?我想知道是否还有其他方法可以做到这一点。
【问题讨论】:
-
我是否为每个用户/区域对进行调用?当然,为什么不呢? 或者我可以发送一个字符串列表并在程序中解决这个问题吗? 当然,为什么不呢?这个问题不太适合该网站,因为我们更喜欢可以回答的问题而不是仅仅讨论过的问题 - 这个问题似乎主要是为了获得意见
-
如果我确实发送了列表,那么我该如何在 SQL 代码中进行处理。我从未见过遍历列表并为遇到的每个值进行插入的示例。
-
嗯,它的工作原理和你说的差不多……而且这个问题是可以回答的
-
我将尝试更好地改写问题。