最近剛入職,公司用的是Oracle,只會用MySQL和熱愛學習的我,開始接觸Oracle了。
代碼純手敲
1、引用型變量
set serverputout ondeclarepname tb_user.name%type;page tb_user.age%type;beginselect name,age into pname,page from tb_user where id =2--打印dbms_output.put_line(pname||'的年齡是'||page);end;/2、記錄型變量set serveroutput ondeclare rowdata tb_user%rowtype;begin select name,age into rowdata from tb_user where id=1dbms_output.put_line(rowdata.name||'的年齡是'||rowdata.age);end;/3、if語句set serveroutput on accept num PRompt '請輸入一個數字'declarepnum number:=#beginif pnum=0 then dbms_output.put_line('我輸入的數字是0');elsif pnum=1 then dbms_output_line('我輸入的數字是1');else dbms_output.put_line('我輸入的數字是'||pnum);end if;end;/4、for循環set serveroutput ondeclarenum number :=1;beginfor num in 1..10 loopdbms_output.put_line(num);end loop;end;/5、while循環set serveroutput ondeclarenum number :=1;beginwhile num<=10 loopdbms_output.put_line(num);num:=num+1;end loop;end;/6、loop循環set serveroutput ondeclarenum number:=1;beginloopexit when num>10;dbms_output.put_line(num);num:=num+1;end loop;end;/7、無參的光標(個人理解:光標是ResultSet的所有記錄,需要循環遍歷這個光標)set serveroutput ondeclarecursor temp is select name,age from tb_user;pname tb_user.name%type;page tb_user.age%type;beginopen temp;loopfetch temp into pname,page;exit when temp%notfound;dbms_output.put_line(pname||'的年齡是'||page);end loop;close temp;end;/8、帶參的光標set serveroutput ondeclarecursor temp(pid number) is select name,age from tb_user;pname tb_user.name%type;page tb_user.age%type;beginopen temp(1);loopfetch temp into pname,page;exit when temp%notfound;dbms_output.put_line(pname||'的年齡是'||page);end loop;close temp;end;/9、光標的應用set serveroutput ondeclarecursor temp is select name from tb_user;pname tb_user.name%type;begin open temp;loopfetch temp into pname;exit when temp%notfound;if pname='張三' then update tb_user set money=money+500; //表中叫張三的工資加500elsif pname='李四' then update tb_user set money=money+1000;end if;end loop;close temp;commit;dbms_output.put_line('提交完成');end;/10、helloworld(第一個存儲過程)create or replace procedure sayhelloworldasbegindbms_output.put_line('helloworld');end;11、調用存儲過程beginsayhelloworld();end;12、帶參的存儲過程create or replace procedure raisemoney(num in number)as--定義一個變量保存漲前的薪水pmoney tb_user.money%type;beginselect money into pmoney from tb_user where id=num;dbms_output.put_line('漲前的工資'||pmoney);dbms_output.put_line('漲后的工資'||(pmoney+100));end;13、函數create or replace function queryuser(num in number)return numberas--定義員工年收入pmoney tb_user.money%type;begin--得到員工的月薪select money into pmoney from tb_user where id=num;return pmoney*12;end;
新聞熱點
疑難解答