導航:首頁 > 編程語言 > plsql編程案例

plsql編程案例

發布時間:2022-05-09 03:25:17

㈠ 用plsql編寫一個過程,可以輸入一個雇員編號,如果該雇員的所屬部門為10輸出該雇員的姓名

create or replace procere sp_pro(spNo number) is
v_ename emp.ename%type;
v_empno emp.empno%type;
v_job emp.job%type;
begin

select empno,ename,emp.job into v_empno, v_ename,v_job from emp where empno=spNo;

if v_empno='10' then
dbms_output.put_line('雇員名:'||v_ename);

elsif v_empno='20' then
dbms_output.put_line('姓名:'||v_ename||'編號:'||v_empno);
else
dbms_output.put_line('姓名:'||v_ename||'編號:'||v_empno||'職位:'||v_job);
end if;
end;
/

㈡ Oracle plsql編程的三道題目

4、使用case語句更新工資,10部門提高100,20部門提高200,30部門提高300,40部門提高400。

setserveroutputon
declarev_dptemp.dpt%type;
begin
selectdptintov_dptfromempwherename='zhangsan'
case
whenv_dpt='10'then
updateempsetsal=sal+100wherename='zhangsan';
whenv_dpt='20'then
updateempsetsal=sal+200wherename='zhangsan';
whenv_dpt='30'then
updateempsetsal=sal+300wherename='zhangsan';
whenv_dpt='40'then
updateempsetsal=sal+400wherename='zhangsan';
else
dbms_output.put_line('無法更新!');
endcase;
end;

5、分別使用3種循環計算10的階乘

簡單(loop)循環

declareinumber(2):=1;snumber(10):=1;
begin
loops:=s*i;
i:=i+1;
dbms_output.put_line(s);
exitwheni>10;
endloop;
end;

for循環

declareinumber(2):=1;snumber(10):=1;
begin
loop
s:=s*i;
i:=i+1;
dbms_output.put_line(s);
exitwheni>10;
endloop;
end;

while循環

declareinumber(2):=1;snumber(10):=1;
begin
whilei<=10loop
s:=s*i;
i:=i+1;
dbms_output.put_line(s);
endloop;
end;

6、使用for循環輸出一個實心三角形,底邊長由用戶輸入。

核心代碼:

begin
foriin1..5loop
dbms_output.put_line(rpad(i,8-i,'')||rpad('*',2*i-1,'*'));
endloop;
end;

㈢ 在plsql中,編寫一個函數,怎麼編寫

直接sql語句:

select wm_concat(decode(e.empno,7369,d.dname,null)),wm_concat(decode(e.empno,7369,e.ename,null)) from emp e, dept d

where e.empno in ((select e1.mgr from emp e1 where e1.empno = 7369), 7369)

and e.deptno = d.deptno

/



function :

createorreplacefunctionprint_(p_empnoinnumber)returnvarchar2is
l_resultvarchar2(100);
begin
selectwm_concat(decode(e.empno,p_empno,d.dname,null))||','||wm_concat(decode(e.empno,p_empno,e.ename,null))
intol_result
fromempe,deptd
wheree.empnoin
((selecte1.mgrfromempe1wheree1.empno=p_empno),p_empno)
ande.deptno=d.deptno;
return(l_result);
end;


測試:

SQL>selectprint_(7369)fromal;
PRINT_(7369)
--------------------------------------------------------------------------------
RESEARCH,SMITH

SQL>

㈣ PLSQL編程查詢問題 實驗內容 使用Scott用戶登錄YGGL資料庫,基於Scott用戶的em

DECLARE
V_EMPNO EMP.EMPNO%TYPE:=&v;
V_DEPTNO EMP.DEPTNO%TYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE('V_EMPNO='||V_EMPNO);
SELECT DEPTNO INTO V_DEPTNO FROM EMP E WHERE E.EMPNO =V_EMPNO;
UPDATE EMP E
SET E.SAL = E.SAL + (CASE E.DEPTNO
WHEN 10 THEN
100
WHEN 20 THEN
200
WHEN 30 THEN
300
ELSE
0
END)
WHERE E.EMPNO = V_EMPNO;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('NO DATA FOUND');
END;

DECLARE
V_ENAME EMP.ENAME%TYPE:='SMITH';
V_COUNT NUMBER:=0;
V_SAL EMP.SAL%TYPE;
V_EMPNO EMP.EMPNO%TYPE;
CURSOR C IS SELECT EMPNO,SAL FROM EMP WHERE ENAME=V_ENAME;
BEGIN
SELECT COUNT(1) INTO V_COUNT FROM EMP E WHERE E.ENAME =V_ENAME;
IF V_COUNT=1 THEN
SELECT E.SAL INTO V_SAL FROM EMP E WHERE E.ENAME =V_ENAME;
DBMS_OUTPUT.PUT_LINE('SAL='||V_SAL);
ELSE
FOR V IN C LOOP
DBMS_OUTPUT.PUT_LINE('EMPNO='||V.EMPNO||',SAL='||V.SAL);
END LOOP;
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('NO DATA FOUND');
END;

㈤ 這個plsql的程序哪裡不對呢第七行一直報錯! 說是字元到數值的轉換錯誤,我抄寫的書上的例子

改成這樣試試vid:=to_number(&teacher_id)

㈥ 請幫忙編寫一條PLSQL語句,包含年齡和時間

大概是這樣:
select p.name,p.age,r.registerdate,r.doctor

from t_patient p, t_patientregister r
where p.patientid = r.patientid
and to_char(t.registerdate,'yyyy-mm-dd') = '2000-01-01'

㈦ plsql developer 怎麼編寫pl/sql程序

1、首先plsql developer連接小編這里就不做介紹了大家不知道可以看看這篇文章:http://www.pc6.com/infoview/Article_74137.html
2、登陸成功後即可進入對象瀏覽器窗口界面

3、在對象瀏覽器選擇「my object」,這里邊就是SCOTT(當前登陸的用戶的所有object)

4、找到table文件夾,里邊就是當前賬戶的所有表格

5、選中需要查看的表——》右鍵——》選中「查詢數據」【query data】,即可看到數據了

6、新建——》選中sql window,即可打開sql窗口了

7、在sql窗口內輸入sql語句,全選,點擊執行即可查看到結果,功能很強大

8、選中表——》右鍵——》Edit(編輯),可以對表進行編輯。

㈧ plsql怎樣編寫腳本

plsql怎樣編寫腳本
1.將以上內容存為shortcuts.txt,復制到X:\Program Files\PLSQL Developer\PlugIns目錄下,Win7要注意許可權
2.菜單中選 Tools -> Perferences -> Editor -> Autoreplaces
3.重啟PL/SQL Developer,輸入等號左側縮寫按下「空格」,會自動補全,那個效率啊;)

㈨ Oracle plsql編程的3道題目

1、用戶輸入雇員編號,查詢該雇員的所有信息。

createorreplaceprocerep_test1
(v_empnonumber)
as
v_enamevarchar2(10);
v_jobvarchar2(20);
v_mgrnumber;
v_hiredatevarchar2(10);
v_salnumber;
v_commnumber;
v_deptnonumber;
begin
selectename,job,mgr,to_char(hiredate,'yyyy-mm-dd'),sal,comm,deptnointo
v_ename,v_job,v_mgr,v_hiredate,v_sal,v_comm,v_deptno
fromempwhereempno=v_empno;
dbms_output.put_line(v_empno||','||v_ename||','||v_job||','||v_mgr||','||v_hiredate||','||v_sal||','||v_comm||','||v_deptno);
end;

2、用戶輸入雇員編號,將該雇員的工資提高500。

createorreplaceprocerep_test2
(v_empnonumber)
as
begin
updateempsetsal=sal+500whereempno=v_empno;
commit;
end;

3、用戶輸入雇員姓名,如果該雇員的工資低於2000,則將他的工資提高500,如果該雇員的工資高於3000,則將他的工資降低500,否則不變。

createorreplaceprocerep_test3
(v_enamevarchar2)
as
begin
updateempsetsal=casewhensal<2000thensal+500
whensal>3000thensal-500elsesalendwhereename=v_ename;
commit;
end;
閱讀全文

與plsql編程案例相關的資料

熱點內容
cad最下面的一排命令都什麼意思 瀏覽:456
pythonimportcpp 瀏覽:850
W10的系統怎麼給U盤加密 瀏覽:370
華為手機代碼編程教學入門 瀏覽:762
和彩雲沒會員怎樣解壓 瀏覽:634
androidimageview保存 瀏覽:387
新買店鋪什麼伺服器 瀏覽:883
文件夾能直接刻錄嗎 瀏覽:493
androidxmpp刪除好友 瀏覽:969
javac哪個前景好 瀏覽:427
中華英才網app為什麼不能搜索了 瀏覽:660
伺服器域名是什麼意思 瀏覽:52
Linux導出mysql命令 瀏覽:159
無詐建鄴是什麼app 瀏覽:228
python中的雙色球 瀏覽:166
python解釋器里如何換行 瀏覽:411
python編寫格式 瀏覽:575
用python做出來的軟體 瀏覽:469
伺服器指示燈代表什麼 瀏覽:702
做一個單片機銷售需要知識 瀏覽:777