查詢當前使用者的儲存過程:
select * from user_procedures
查詢儲存過程的語法錯誤資訊:
select * from user_errors
最簡單的儲存過程:在plsql中執行 上述sql即可建立,如果在sqlplus 中建立,則換行加"/" 建立。
create or replace procedure pro_add(
-- 引數
num1 number, -- 預設為 in 輸入
num2 out number -- out 為輸出 in out 為輸入且輸出引數
)as
-- 定義變數 並賦值
num3 number := 11;
begin
num2 := num1 + num3;
end pro_add; --也可以省略儲存過程名稱
執行儲存過程:在plsql中執行 上述sql即可執行,如果在sqlplus 中執行,則換行加"/" 執行。sqlplus 中不顯示結果,先得set serveroutput on
declare
num3 number(10); -- 建立變數 注意要設定長度
begin
pro_add(22,num3); -- 執行儲存過程
dbms_output.put_line(num3); -- 列印資訊
end;
if判斷:
create or replace procedure pro_test(
num1 in out number
)as
num3 number := 100;
begin
if num1 != 0 then -- 可以沒有括號
begin -- 好像沒有也可以
num1 := num3 / num1;
end;
end if;
end;
if else if 判斷:
create or replace procedure pro_test(
num1 in out number,
fuhao in varchar
)as
num3 number(10) := 100;
begin
if (fuhao='+') then
num1:=num1+num3;
elsif(fuhao ='-') then -- 注意是elsif
num1:=num3-num1;
else
num1:=num3*num1;
end if;
end;
Oracle儲存過程呼叫儲存過程
oracle儲存過程呼叫有返回結果集的儲存過程一般用光標的方式,宣告乙個游標,把結果集放到游標裡面,然後迴圈游標 declare newcs sys refcursor cs1 number cs2 number cstype table rowtype table列的個數和newcs返回的個數一樣...
ORACLE儲存過程
自定義函式開始 create or replace function fn wftemplateidget templatecategoryid number,organid number,templatemode number return number istemplateid number i...
Oracle 儲存過程
create or replace procedure p 有就替換,沒有就建立 iscursor c is select from emp for update begin for v emp in c loop if v emp.deptno 10 then update emp2 set sa...