【发布时间】:2022-11-10 23:18:34
【问题描述】:
我有下表(用户),有 2 列,并试图用第一列更新第二列(第一列是自动增量和主键字段)。
UserId CatId
1 10
2 78
3 99
4 89
5 80
我发现很难用 P_uid order by (1,3,4) 更新第二列。我尝试了正常的Update statement,但它不起作用。我将以下 ID 传递给 SP。
P_uid varchar2(20) := '1,3,4';
P_new_cat_id varchar2(20) := '100,12,13';
Expected output
---------------
UserId CatId
1 100
2 78
3 12
4 13
5 80
【问题讨论】:
-
为什么要传递逗号分隔值的字符串?您必须对两个字符串进行标记并保持相关元素步调一致 - 假设您在两者中始终具有相同数量的元素。传递集合或值对的集合或仅执行三个单独的更新会更容易。什么在生成字符串,这些数据来自哪里?
-
@亚历克斯普尔。来自服务器端的数据是动态的。 p_uid 值可能会改变
-
如果这些字符串超出您的控制范围,那么您将需要以某种方式标记它们。
-
@AlexPoole 我是甲骨文的新手。请解释标记化是什么意思
-
标记化 = 将它们拆分为行,其中每一行包含每个列表中的一个标记。