sql - 光标不打印任何数据 - 两个参数过程
问题描述
我有一项任务要解决。
创建一个程序,根据该程序列出在定义的期间(任何变量)内已经受雇一次的所有员工(job_history 表)。报告将说明:employee_id、first_name、last_name、start_date、end_date。
如果在给定期间没有雇员受雇,则处理该案例。
调用 1997 年至 2007 年的程序。
程序已编译,当我调用它时,答案是:PL/SQL 程序成功完成。但是我的数据库中没有数据。
我的代码在这里:
create or replace procedure zamestnanci
(s_date in job_history.start_date%type, e_date in job_history.end_date%type)
is
begin
for cur_r in
(select employees.employee_id, employees.first_name, employees.last_name
from employees join job_history on employees.employee_id = job_history.employee_id
where start_date = s_date and end_date = e_date
)
loop
dbms_output.put_line(cur_r.employee_id ||', '|| cur_r.first_name ||', '|| cur_r.last_name ||', '||
s_date ||', '|| e_date );
end loop;
exception when no_data_found then
dbms_output.put_line('error');
end zamestnanci;
exec zamestnanci('01.01.97', '31.12.07');
你能帮我么?谢谢你。
解决方案
您的代码获取在 '01.01.97' 开始工作并在 '31.12.07' 离职的员工
试试下面的代码。还要注意日期格式
create or replace procedure zamestnanci
(s_date in job_history.start_date%type, e_date in job_history.end_date%type)
is
begin
for cur_r in
(select employees.employee_id, employees.first_name, employees.last_name
from employees join job_history on employees.employee_id = job_history.employee_id
where start_date between s_date and e_date
or end_date between s_date and e_date
or s_date between start_date and end_date
or e_date between start_date and end_date
)
loop
dbms_output.put_line(cur_r.employee_id ||', '|| cur_r.first_name ||', '|| cur_r.last_name ||', '||
s_date ||', '|| e_date );
end loop;
exception when no_data_found then
dbms_output.put_line('error');
end zamestnanci;
exec zamestnanci(to_date('01.01.1997', 'dd.mm.yyyy'), to_date('31.12.2007', 'dd.mm.yyyy'));
推荐阅读
- sql - 计算列的中位数并将它们存储在 BQ 表中
- optaplanner - OptaPlanner,Score计算速度会太低
- javascript - window.open(url) 方法重新加载页面
- html - HTMLAudioElement 作为 JS 音频
- laravel - Laravel - 使用惯性访问路由来填充 Vuejs3 中的道具
- laravel-5 - 如何在数据透视表上应用过滤器?
- reactjs - 我在 package.json 中添加了一个代理,但应用程序没有使用该代理
- reactjs - TypeScript React:使用 JSX.Element 类型的静态属性(未初始化的组件)扩展 React.FC 时摆脱 TS(2339)
- c# - 如何在 C# 中使用实例引用?
- python - python缩放和评分具有上限和下限的数据帧