sql - 如何在另一个游标内声明游标
问题描述
如何在游标内声明另一个游标c_employees
?
注意:游标c_employees
返回employees_id
和这个id传递给where
子句中的其他游标。
例如
cursor c_employees
is
Select employees_id from employees;
begin
for e in c_employees loop
begin
--How here define other cursor from cursor_employees I get employees_id and put as parameter.
cursor c_leaves is Select hours from my_table where employees_id = e.employees_id;
for j in c_leaves loop
begin
Insert into table2(......
end;
end loop;
解决方案
游标因此可以带参数
cursor c_employees is
Select employees_id from employees;
cursor c_leaves(e_id int)
is Select hours from my_table where employess_id = e_id;
begin
for e in c_employees loop
begin
for j in c_leaves(e.employees_id) loop
begin
Insert into table2(......
end;
end loop;
但一般来说,当您开始看到带有游标等的游标时......也是时候看看查询是否可以用 JOIN 替换。例如,上面的代码可能只是
insert into table2
select ..
from employees e, my_table m
where e.employess_id = m.employess_id;
推荐阅读
- python - Python 装饰器导致 Flask RunTimeError
- mysql - MySQL ORDER BY 2 列有条件
- javascript - Microsoft Graph 工具包组件 mgt-login 事件未在带有钩子的 React App 中调用
- python - python:graphviz不显示更大或更小的标记
- python - 将版权属性和图像文件与 BeautifulSoup 链接
- php - 向 WooCommerce 产品添加购买条件
- react-native - 使用 axios 发送文件时反应本机获取网络错误
- python - Python unitest 不从 PythonAnywhere 运行测试函数
- python - 使用 python 字典时无法解压不可迭代的 int 对象
- python - python - 'AttributeError:'NoneType'对象在网页抓取时没有属性'text'