我有一个存储过程,可以将行选择到 out 游标中,如下所示:
PROCEDURE GetUserTables(
out_cur OUT SYS_REFCURSOR
)
AS
BEGIN
OPEN out_cur FOR
SELECT u.user_id, u.user_name, ut.table_name
FROM users u
JOIN user_tables ut ON ut.user_id = u.user_id
ORDER BY u.user_name, ut.table_name;
END
中的table_name
列user_tables
包含数据库表的名称,我想在输出中包含这些表的计数;所以out_cur
会包含这样的东西:
| user_id | user_name | table_name | row_count |
+---------+-----------+--------------+-----------+
| 1 | Simon | simons_dogs | 1 |
| 1 | Simon | simons_cats | 0 |
| 2 | Jenny | jennys_dogs | 2 |
| 3 | Ellie | ellies_dogs | 3 |
| 3 | Ellie | ellies_cats | 1 |
| 3 | Ellie | ellies_birds | 5 |
where simons_dogs
etc.. 是实际表的名称。
我的第一个想法是在过程中有一个表变量,并循环插入 user_tables ,然后在我的选择中加入它;但我不知道如何拥有一个多列表变量。