SQL> CREATE OR REPLACE PROCEDURE PRIMEY0(U IN NUMBER)
2 AS
3 V_FLAG BOOLEAN;
4 BEGIN
5 FOR I IN 2 .. U LOOP
6 V_FLAG :=TRUE;
7 FOR J IN 2 .. TRUNC(POWER(I, 0.5)) LOOP
8 IF MOD(I,J)=0 THEN
9 V_FLAG :=FALSE;
10 EXIT;
11 END IF;
12 END LOOP;
13
14 IF V_FLAG=TRUE THEN
15 --DBMS_OUTPUT.PUT_LINE(I);
16 NULL;
17 END IF;
18 END LOOP;
19 END;
20 /
过程已创建。
已用时间: 00: 00: 00.26
SQL> exec primey0(10000);
PL/SQL 过程已成功完成。
已用时间: 00: 00: 00.65
SQL> exec primey0(100000);
PL/SQL 过程已成功完成。
已用时间: 00: 00: 06.47
SQL>
SQL>CREATE OR REPLACE PROCEDURE PRIMEY0(U IN NUMBER)
2 AS
3 V_FLAG BOOLEAN;
4 BEGIN
5 FOR I IN 2 .. U LOOP
6 V_FLAG :=TRUE;
7 FOR J IN 2 .. TRUNC(POWER(I, 0.5)) LOOP
8 IF MOD(I,J)=0 THEN
9 V_FLAG :=FALSE;
10 EXIT;
11 END IF;
12 END LOOP;
13
14 IF V_FLAG=TRUE THEN
15 --DBMS_OUTPUT.PUT_LINE(I);
16 NULL;
17 END IF;
18 END LOOP;
19 END;
20 /
21
22 /
CREATE OR REPLACE PROCEDURE PRIMEY0(U IN NUMBER)
AS
V_FLAG BOOLEAN;
BEGIN
FOR I IN 2 .. U LOOP
V_FLAG :=TRUE;
FOR J IN 2 .. TRUNC(POWER(I, 0.5)) LOOP
IF MOD(I,J)=0 THEN
V_FLAG :=FALSE;
EXIT;
END IF;
END LOOP;
IF V_FLAG=TRUE THEN
--DBMS_OUTPUT.PUT_LINE(I);
NULL;
END IF;
END LOOP;
END;
/
/
*
第 20 行, 第 1 列[/]附近出现错误[-2007]:
语法分析出错.
SQL>CREATE OR REPLACE PROCEDURE PRIMEY0(U IN NUMBER)
2 AS
3 V_FLAG BOOLEAN;
4 BEGIN
5 FOR I IN 2 .. U LOOP
6 V_FLAG :=TRUE;
7 FOR J IN 2 .. TRUNC(POWER(I, 0.5)) LOOP
8 IF MOD(I,J)=0 THEN
9 V_FLAG :=FALSE;
10 EXIT;
11 END IF;
12 END LOOP;
13
14 IF V_FLAG=TRUE THEN
15 --DBMS_OUTPUT.PUT_LINE(I);
16 NULL;
17 END IF;
18 END LOOP;
19 END;
20
21 /
操作已执行
已用时间: 6.045(毫秒). 执行号:604.
SQL>exec primey0(10000);
exec primey0(10000);
exec primey0(10000);
*
第 1 行, 第 19 列[;]附近出现错误[-2007]:
语法分析出错.
SQL>exec primey0(10000)
2 /
exec primey0(10000)
exec primey0(10000)
*
第 1 行, 第 19 列[]附近出现错误[-2007]:
语法分析出错.
SQL>