oracle學習記錄之十五

2021-06-02 14:15:16 字數 2850 閱讀 3915

pl/sql

儲存過程

create table mytest(name varchar2(20), passwd varchar2(20));

sql> create or replace procedure spro1 is

2  begin

3  insert into mytest values('xiaoming', 'm123');

4  end;

5  /

exec spro1;

sql> create or replace procedure spro2 is

2  begin

3  delete from mytest where name='xiaoming';

4  end;

5  /

set serveroutput on;    -- set serveroutput off; 開啟或關閉輸入選項

sql> begin

2  dbms_output.put_line('hello world');

3  end;

4  /

sql> declare

2  v_ename varchar2(5);

3  begin

4  select ename into v_ename from emp where empno=&no;

5  dbms_output.put_line('雇員名:'||v_ename);    --在控制台輸出

6  end;

7  /

sql> declare

2  v_ename varchar2(5);

3  v_sal number(10,2);

4  begin

5  select ename,sal into v_ename, v_sal from emp where empno=&no;

6  dbms_output.put_line('姓名:'||v_ename||' 薪水:'||v_sal);

7  end;

8  /

sql> declare

2  v_ename varchar2(5);

3  v_sal number(10,2);

4  begin

5  select ename,sal into v_ename, v_sal from emp where empno=&no;

6  dbms_output.put_line('姓名:'||v_ename||' 薪水:'||v_sal);

7  exception

8  when no_data_found then

9  dbms_output.put_line('編號輸入有誤,請重輸');

10  end;

11  /

帶引數的儲存過程

sql> create or replace procedure spro4 (spname varchar2, spsal number) is

2  begin

3  update emp set sal=spsal where ename=spname;

4  end;

5  /

sql> exec spro4('scott',1234);

sql>  create or replace function fun1(name varchar2) return number is  yearsal number(7,2);

2  begin

3  select sal*12 into yearsal from emp where ename=name;

4  return yearsal;

5  end;

6  /

sql> var income number

sql> call fun1('scott') into : income;

sql> print income

create or replace package mypackage is

procedure spro4 (spname varchar2, spsal number);

end;

create or replace package body mypackage is

procedure spro4(spname varchar2, spsal number)

is begin

update emp set sal=spsal where ename=spname;

end;

end;

create or replace package mypackage is

procedure spro4 (spname varchar2, spsal number);

function fun1(name varchar2) return number;

end;

create or replace package body mypackage is 

procedure spro4(spname varchar2, spsal number)

is begin

update emp set sal=spsal where ename=spname;

end;

function fun1(name varchar2) return number is  yearsal number(7,2);

begin

select sal*12 into yearsal from emp where ename=name;

return yearsal;

end;

end;

oracle學習記錄之十三

約束 create table goods goodsid char 8 primary key,主鍵 goodsname varchar2 20 unitprice number 10,2 check unitprice 0 檢查 category varchar2 10 vendor varch...

oracle學習記錄之十七

使用isql plus 檢視埠配置 d oracle product 10.1.0 db 1 install 下的portlist.ini ultra search http 埠號 5620 enterprise manager agent port isql plus http 埠號 5560 檢...

Oracle學習記錄

管理員賬戶使用方案.物件 select from scott.emp 給scott使用者賦連線許可權 grant create session to scott 撤銷scott使用者的連線許可權 revoke create session from scott 建立使用者zx,密碼為123456 c...