创建一个过程,向dept表中添加一个新记录

1.创建一个过程,向dept表中添加一个新记录。(in参数)

  • 创建过程:
create or replace procedure Insert_dept

	( num_dept in number

	,v_ename in varchar3)is

begin

	insert into dept

	values(num_dept,v_ename);

	commit;

end insert_dept;
  • 调用:
begin

	insert_dept(66,'人事');

end;

2.从scott.emp表中查询给定职工(提示:使用&来输入员工编号)的职工姓名和工资。(要求:利用out模式的参数将值传给调用者。)

  • 创建过程:
create or replace procedure query_emp

	(num_empno in emp.empno%type

	,emp_name out emp.ename%type

	,emp_salary out emp.sal%type)is

begin

	select ename,sal into emp_name,emp_salary
	from emp where empno = num_empno;

exception

	when no_data_found then

       	dbms_output.put_line('查询错误');

end query_emp;
  • 调用:
declare

	(var_ename emp.ename%type

	,var_salary emp.sal%type)is

begin

	query_emp(&职工号,var_ename,var_salary);

	if var_ename is not null then

	dbms_output.put_line(var_ename||' '||var_salary);

	end if;

end;

3.创建一个过程,在执行调用过程时,可随机输入emp表中某个雇员的姓名,根据雇员的姓名,返回该雇员的薪水值,并输出。(out参数)

  • 创建过程:
create or replace procedure select_emp 

	(emp_name in emp.ename%type

	,emp_salary out emp.sal%type) is

begin

	select sal into emp_salary from emp
	where ename = emp_name;

exception 

	when no_data_found then

	dbms_output.put_line(‘查询错误’);

end select_emp;
  • 调用:
declare

	v_sal number(5);

begin

	select_emp('&雇员姓名',v_sal);

	dbms_output.put_line(v_sal);

end;

4.编写过程,实现交换两个变量的值的功能。并输出交换前和交换后的两个值。(in out参数)

  • 创建过程:
create or replace procedure swap_number

	(num1 in out number

	,num2 in out number)is 

	temp number(5);

begin

	temp:=num1;

	num1:=num2;

	num2:=temp;

end swap_number;
  • 调用:
declare

	a number:=666;

	b number:=999;

begin

	dbms_output.put_line('Befor:'||a||'  '||b);

	swap_number(a,b);

	dbms_output.put_line('Now:'||a||'  '||b);

end;

5.创建存储过程,根据员工编号删除scott.emp表中的相关记录。(提示:由调用语句提供的员工编号来删除记录,要求员工编号可随机输入。)。

  • 创建过程:
create
or replace procedure delete_emp

(emp_no dept.empno%type) is

begin
	Delete from dept where empno = emp_no;
end delete_emp;
  • 调用:
execute
	delete_emp('&员工编号');
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ECJTU_LCY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值