DBeaver 24版本中存储过程无输出问题求助
在DBeaver 24中显示Oracle存储过程的DBMS_OUTPUT输出
你用的存储过程靠dbms_output.put_line输出内容,但DBeaver默认没开启DBMS_OUTPUT控制台,所以看不到结果。按以下步骤设置就能解决:
步骤1:开启DBMS_OUTPUT功能
- 右键点击目标Oracle数据库连接,选择「编辑连接」
- 在连接设置窗口切换到「Oracle」标签页
- 找到「DBMS_OUTPUT」选项,勾选「启用」,缓冲区大小保持默认(1000000)即可
- 点击「确定」后,断开并重新连接数据库
步骤2:执行存储过程并查看输出
- 在SQL编辑器中执行存储过程:
BEGIN display_employees2; END; /
- 执行完成后,在DBeaver底部面板切换到「DBMS_OUTPUT」标签页,就能看到存储过程输出的员工信息了
额外检查项
- 确认
employees2表存在且有数据,否则存储过程不会生成输出 - 若输出内容较多,可适当增大DBMS_OUTPUT的缓冲区大小,避免内容被截断
你的存储过程代码如下:
CREATE OR REPLACE PROCEDURE display_employees2 IS CURSOR emp_cursor IS SELECT FIRST_NAME || ' ' || LAST_NAME AS full_name, PHONE_NUMBER, HIRE_DATE, SALARY FROM employees2; v_full_name varchar(100); v_phone_number employees2.phone_number%TYPE; v_hire_date employees2.hire_date%TYPE; v_salary employees2.salary%TYPE; BEGIN OPEN emp_cursor; LOOP FETCH emp_cursor INTO v_full_name, v_phone_number, v_hire_date, v_salary; EXIT WHEN emp_cursor%NOTFOUND; dbms_output.put_line('Name : ' || v_full_name); dbms_output.put_line('Phone number : ' || v_phone_number); dbms_output.put_line('Hire Date : ' || v_hire_date); dbms_output.put_line('Salary : ' || v_salary); dbms_output.put_line('--------------------'); END LOOP; CLOSE emp_cursor; END display_employees2;
内容的提问来源于stack exchange,提问作者Mohammad Fiki Rifkiana
相关产品推荐
相关产品推荐

