oracle - 语句未在 pl/sql 中打印
问题描述
没有打印一行
DECLARE
R integer(10);
N varchar(20);
B VArchar(20);
Y VARCHAR(10);
A Integer(10);
E varchar2(10);
CURSOR s IS
SELECT RollNo,Name, Branch, Year, Attendance_Percentage, Event FROM N_ROLLCALL
WHERE branch='Comp' ORDER BY ROLLNO;
BEGIN
OPEN s;
LOOP
FETCH s INTO R,N,B,Y,A,E ;
EXIT WHEN s%notfound;
BEGIN
DBMS_OUTPUT.PUT_LINE(' ROLLNO:'||R||' NAME:'||N||' BRANCH:'||B||' YEAR:'||Y||' ATTANDANCE_PERCENTAGE:'||A||' EVENTS:'||E);
END;
END LOOP;
CLOSE s;
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
dbms_output.put_line('You have tried to insert a duplicate roll_no.');
WHEN OTHERS THEN
dbms_output.put_line ('An error has occurred inserting a roll_no.');
END;
我得到的输出
已插入 1 行。
0.01 秒
但是,当我有多个具有分支 ='comp' 的行时,我想使用 dbms_output.put_line 打印的行不会被打印。如果只有一个这样的条目,那么它就会被打印出来。
解决方案
DBMS_OUTPUT
使用 APEX 时不会打印,因为它不是从控制台运行的。要显示成功消息,您需要将全局变量设置APEX_APPLICATION.g_print_success_message
为您想要的成功消息。如果您想引发错误,您将需要使用该APEX_ERROR
包。如果使用 APEX_ERROR 包添加了任何错误,则在 APEX 完成处理后不会提交任何事务。
DECLARE
R INTEGER (10);
N VARCHAR (20);
B VARCHAR (20);
Y VARCHAR (10);
A INTEGER (10);
E VARCHAR2 (10);
CURSOR s IS
SELECT RollNo,
Name,
Branch,
Year,
Attendance_Percentage,
Event
FROM N_ROLLCALL
WHERE branch = 'Comp'
ORDER BY ROLLNO;
BEGIN
OPEN s;
LOOP
FETCH s
INTO R,
N,
B,
Y,
A,
E;
EXIT WHEN s%NOTFOUND;
BEGIN
APEX_APPLICATION.g_print_success_message (
' ROLLNO:'
|| R
|| ' NAME:'
|| N
|| ' BRANCH:'
|| B
|| ' YEAR:'
|| Y
|| ' ATTANDANCE_PERCENTAGE:'
|| A
|| ' EVENTS:'
|| E);
END;
END LOOP;
CLOSE s;
EXCEPTION
WHEN DUP_VAL_ON_INDEX
THEN
apex_error.add_error (p_message => 'You have tried to insert a duplicate roll_no.',
p_display_location => apex_error.c_inline_in_notification);
WHEN OTHERS
THEN
apex_error.add_error (p_message => 'An error has occurred inserting a roll_no.',
p_display_location => apex_error.c_inline_in_notification);
END;
推荐阅读
- ios - 向左/向右滑动单元格数组中的下一个图像 URL
- regex - 使用 sed 提取子字符串
- r - dplyr mutate() 从数据帧匹配时显示 NA 值
- node.js - 结合 Vue.js 如何正确使用 socket.io
- python - 蟒蛇:扁平拉链
- python - Python beautifulsoup loop till date changes
- c# - 我该如何解决这个不正确的语法问题?
- python - 如何提高音频数据分类的准确性
- javascript - 使用javascript将浏览器设置为离线模式
- python-3.x - Python - OpenCv - 梯度计算