【发布时间】:2018-10-04 22:53:36
【问题描述】:
好吧,我对 plSQL 还是很陌生,我似乎无法弄清楚在尝试生成帕斯卡三角形时遇到的一些错误
代码如下:
SET SERVEROUTPUT ON;
DECLARE
N NUMBER;
I NUMBER;
J NUMBER;
K NUMBER;
L NUMBER;
T NUMBER;
S NUMBER;
BEGIN
DBMS_OUTPUT.PUT_LINE('ENTER THE LIMIT');
N:=&N;
I:=0;
T:=N-2;
S:=0;
L:=0;
WHILE (I<N) LOOP
J:=0;
WHILE (J<T) LOOP
DBMS_OUTPUT.PUT(' ');
J:=J+1;
END LOOP;
K:=0;
WHILE (K<=S) LOOP
IF (K<=I) THEN
DBMS_OUTPUT.PUT(K+1);
L:=K;
ELSE
L:=L-1;
DBMS_OUTPUT.PUT(L+1);
END IF;
K:=K+1;
END LOOP;
DBMS_OUTPUT.PUT_LINE('');
T:=T-1;
S:=S+2;
END LOOP;
END;
错误是
错误报告 - ORA-20000:ORU-10027:缓冲区溢出,限制为 1000000 字节 ORA-06512:在“SYS.DBMS_OUTPUT”,第 32 行 ORA-06512:在“SYS.DBMS_OUTPUT”,第 97 行 ORA-06512:在第 29 行 20000. 00000 - "%s" *原因:存储过程“raise_application_error” 被调用,导致生成此错误。 *措施:更正错误消息中描述的问题或联系 有关详细信息,请联系应用程序管理员或 DBA。
【问题讨论】:
-
检查这应该有帮助:thecrazyprogrammer.com/2017/10/…
-
它来自 dbms_output。它在爆炸之前只能保存这么多数据。如果需要,您可以创建一个 CLOB
-
感谢您的链接,但我并不真正需要代码,如果您能告诉我生成 错误 的原因是什么,我将不胜感激跨度>
标签: sql oracle plsql buffer-overflow pascals-triangle