导航:首页 > 编程语言 > 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编程案例相关的资料

热点内容
安卓机内存删除怎么恢复 浏览:329
Qt环境的编译软件放到linux 浏览:212
联创打印系统怎么连接服务器 浏览:935
杭州行政命令 浏览:160
如何查找服务器日志 浏览:801
加密的钥匙扣怎么写 浏览:579
文件夹更新不了怎么办 浏览:475
压缩机指示灯亮是什么原因 浏览:956
什么app订酒店半价 浏览:765
中老年解压神器 浏览:243
讯飞语音ttsandroid 浏览:468
腰椎压缩性骨折术后能坐车吗 浏览:507
python类装饰器参数 浏览:348
均线pdf微盘 浏览:791
女生喜欢玩的解压游戏 浏览:442
支付宝暗号加密操作 浏览:134
柯洁在哪个app下围棋 浏览:751
平板用什么app看内在美 浏览:609
cad计算机命令 浏览:173
邮箱设置域名服务器错误什么意思 浏览:671