1樓:翔阿狗
create or replace
function isprime(
num in number)
return boolean
isbegin
if(num<=1) then
return false;
end if;
for i in 2..(num-1)
loop
if(mod(num,i)=0) thenreturn false;
end if;
end loop;
return true;
end;
/以前寫得函式,過程迴圈呼叫一下就行
2樓:匿名使用者
收藏別人的,實測正確:
plsql計算質數
declare
type t_record is table of number index by binary_integer;
v_result t_record;
i number default 3;
n number default 0;
begin
dbms_output.put_line(2);
v_result(1) := 3;
while (i < 101) loop
for j in 1 .. v_result.count loop
if v_result(j) * v_result(j) > i then
dbms_output.put_line(i);
v_result(v_result.count + 1) := i;
exit;
end if;
if trunc(i / v_result(j)) = i / v_result(j) then
exit;
end if;
end loop;
if n = 2 then
i := i + 4;
n := 1;
else
i := i + 2;
n := n + 1;
end if;
end loop;
v_result(0) := 2;
end;
3樓:匿名使用者
declare
v_num number;
v_now number;
v_yes number;
c_max number;
begin
v_num:=1;
c_max:=200;--這裡設定最大數,想要100這內就寫100,想要1000之內就寫1000
loop
v_now:=2;--這裡設定每一個數的初始被除數,從2開始
v_yes:=1;--設定初始參考數,1為素數,0為非素數,預設初始為1
if v_num<4 then
dbms_output.put_line(v_num);--1到3都是素數,這裡就不再判斷了
-- v_num:=v_num+1;--自增1
end if;
if v_num>=4 then
--這裡開始判斷,只能被1和本身整除的數,就是素數
loop
if mod(v_num,v_now)=0 and v_num<>v_now then --如果有能被整除的數,且被除數不是除數本身,就不是素數
v_yes:=0;
end if;
v_now:=v_now+1;--被除數遞增
exit when v_now>=v_num;--當被除數大於除數時退出
end loop;--因為要一個一個的判斷,所以要來一次迴圈
end if;
if v_num>4 and v_yes=1 then
dbms_output.put_line(v_num);
-- v_num:=v_num+1;--自增
end if;
v_num:=v_num+1;--自增
exit when v_num>=c_max;
end loop;
end;
參考一下,自己寫的
oracle儲存過程如何輸出資訊
4樓:墨汁諾
可用dbms_output.put_line()對儲存過程的進行輸出。
編寫儲存過程:
create or replace procedure test_pro(in_num number)
asm number;
begin
m := in_num;
if 0 < m then
dbms_output.put_line('輸出sql語句1');
elsif m < 3 then
dbms_output.put_line('輸出sql語句2');
else
dbms_output.put_line('nothing');
end if;
end;
擴充套件資料;儲存在資料庫的資料字典中,儲存在當前的應用中安全性由資料庫提供安全保證,必須通過授權才能使用儲存子程式,安全性靠應用程式來保證,如果能執行應用程式,就能執行該子程式。模式描述in引數用來從呼叫環境中向儲存過程傳遞值,不能給in引數賦值,給此引數傳遞的值可以是常量、有值的變數、表示式等。
5樓:茫茫人海一亮星
oracle儲存過程如何輸出資訊?可用dbms_output.put_line()對儲存過程的進行輸出。
編寫儲存過程:
create or replace procedure test_pro(in_num number)
asm number;
begin
m := in_num;
if 0< m then
dbms_output.put_line('輸出sql語句1');
elsif m< 3 then
dbms_output.put_line('輸出sql語句2');
else
dbms_output.put_line('nothing');
end if;
end;
擴充套件資料;
儲存在資料庫的資料字典中,儲存在當前的應用中安全性由資料庫提供安全保證,必須通過授權才能使用儲存子程式,安全性靠應用程式來保證,如果能執行應用程式,就能執行該子程式。模式描述in引數用來從呼叫環境中向儲存過程傳遞值,不能給in引數賦值,給此引數傳遞的值可以是常量、有值的變數、表示式等。
6樓:匿名使用者
如果你是使用pl/sql工具,在command 視窗下執行set serveroutput on
然後exec sp;
可以看到了
或者在sqlplus 中執行上面的**
7樓:匿名使用者
dbms_output.put_line
例如:sql> set serveroutput onsql> begin
2 dbms_output.put_line('hello world');
3 end;
4 /
hello world
pl/sql procedure successfully completed.
oracle包中定義全域性變數,oracle 包中定義全域性變數
package create or replace package p name as function f name v1 in out number return number procedure p name v1 in out number end p name package body c...
Oracle密碼過期怎麼修改,oracle資料庫密碼過期怎麼修改密碼
育知同創教育 開啟cmd,輸入sqlplus nolog,回車。2 輸入 conn as sysdba 3 輸入 alter user sys identified by 新密碼 注意 新密碼最好以字母開頭,否則可能出現錯誤ora 00988。有了這個方法後,只要自己對oracle伺服器有管理員許可...
oracle忘記使用者密碼,Oracle使用者密碼有效期和預設的有效期不對應
直接telnet上伺服器,或者直接在機房伺服器上面操作,用安裝oracle的使用者登入 sqlplus as sysdba alter user system identified by abc 就可以將system使用者的密碼改成abc了。alter user sys identified by ...