[英]Write a PL/SQL block to display the department name and the total salary expenditure of the department from the Employee table
[英]Display department names using Cursors.Create a PL/SQL block to display all the department names from the Department table using cursors
桌子:
Column name Data type Constraints
DEPARTMENT_ID NUMBER(5) PK
DEPARTMENT_NAME VARCHAR2(25) NOT NULL
LOCATION_ID VARCHAR2(15)
我试过这个。 但我仍然没有收到我的 output。有人可以帮我拿到 output。
set serveroutput on;
DECLARE
DEPARTMENT_NAME VARCHAR2(25);
CURSOR dep_cursor IS
SELECT
DEPARTMENT_NAME
FROM
department;
BEGIN
OPEN dep_cursor;
FETCH dep_cursor INTO DEPARTMENT_NAME;
DBMS_OUTPUT.PUT_LINE(‘Department Names are :’ || DEPARTMENT_NAME);
CLOSE dep_cursor;
END;
/
错误消息:未声明绑定变量“~”。
样本 output:
Department Names are :
ADMIN
DEVELOPMENT
TESTING
这是关于你在这里使用的那些“花哨的”单引号:
DBMS_OUTPUT.PUT_LINE(‘Department Names are :’ || DEPARTMENT_NAME);
应该
DBMS_OUTPUT.PUT_LINE('Department Names are :' || DEPARTMENT_NAME);
至于你犯的其他“错误”:没有loop , cursor 只返回一行然后你显示它。 我建议您切换到 cursor for 循环,因为它更易于维护:
begin
for cur_r in (select department_name from department) loop
dbms_output.put_line(cur_r.department_name);
end loop;
end;
/
这就是您需要的一切; 没有声明部分,没有打开或关闭 cursor,不用担心退出循环...... Oracle 会为你做。
SET SERVEROUTPUT ON;
declare
v_dept department.department_name%type;
cursor c_dept is SELECT department_name FROM department;
BEGIN
dbms_output.put_line('Department Names are :');
OPEN c_dept;
LOOP
FETCH c_dept INTO v_dept;
EXIT WHEN c_dept%notfound;
dbms_output.put_line(v_dept);
END LOOP;
CLOSE c_dept;
END;
/
设置服务器输出;
declare v_dept department.department_name%type;
cursor c_dept is SELECT department_name FROM department order by department_name asc;
BEGIN dbms_output.put_line('部门名称是:');
打开 c_dept;
环形
FETCH c_dept INTO v_dept;
当 c_dept%notfound 时退出;
dbms_output.put_line(v_dept);
结束循环;
关闭 c_dept; 结尾;
这将 100% 工作,因为问题也要求按升序显示。 如果觉得有用请点赞
设置服务器输出; declare v_dept department.department_name%type; cursor c_dept 是 SELECT department_name FROM department ORDER BY DEPARTMENT_NAME; BEGIN dbms_output.put_line('部门名称是:'); 打开 c_dept; 循环获取 c_dept 进入 v_dept; 当 c_dept%notfound 时退出; dbms_output.put_line(v_dept); 结束循环; 关闭 c_dept; 结尾; /
SET SERVEROUTPUT ON;
DECLARE
v_dept department.department_name%type;
cursor c_dept is SELECT department_name FROM department order by department_name asc;
BEGIN
dbms_output.put_line('Department Names are :');
OPEN c_dept;
LOOP
FETCH c_dept INTO v_dept;
EXIT WHEN c_dept%notfound;
dbms_output.put_line(v_dept);
END LOOP;
CLOSE c_dept;
END;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.