declare --定义变量 v_ename varchar2(5); v_sal number(7,2); begin --执行部分 select ename,sal into v_ename,v_sal from emp where empno=&aa; --在控制台显示用户名 dbms_output.put_line(‘用户名是:‘||v_ename||‘ 工资:‘||v_sal); --异常处理 exception when no_data_found then dbms_output.put_line(‘朋友,你的编号输入有误!‘); end;
--输入雇员的姓名,返回该雇员的年薪 create function annual_incomec(name varchar2) return number is annual_salazy number(7,2); begin --执行部分 select sal*12+nvl(comm, 0) into annual_salazy from emp where ename=name; return annual_salazy; end;
create package sp_package is procedure update_sal(name varchar2, newsal number); function annual_income(name varchar2) return number; end;
declare c_tax_rate number(3,2):=0.03; --用户名 v_ename varchar2(5); v_sal number(7,2); v_tax_sal number(7,2); begin --执行 select ename,sal into v_ename,v_sal from emp where empno=&no; --计算所得税 v_tax_sal := v_sal*c_tax_rate; --输出 dbms_output.put_line(‘姓名是:‘||v_ename||‘工资:‘||v_sal||‘ 交税:‘||v_tax_sal); end;
declare --定义一个pl/sql记录类型emp_record_type,类型包含3个数据name,salary,title。说白了,就是一个类型可以存放3个数据,主要是为了好管理 type emp_record_type is record( name emp.ename%type, salary emp.sal%type, title emp.job%type); --定义了一个sp_record变量,这个变量的类型是emp_record_type sp_record emp_record_type; begin select ename, sal, job into sp_record from emp where empno =7788; dbms_output.put_line (‘员工名:‘ || sp_record.name); end;
declare --定义了一个pl/sql表类型sp_table_type,该类型是用于存放 emp.ename%type --index by binary_integer 表示下标是整数 type sp_table_type is table of emp.ename%type index by binary_integer; --定义了一个sp_table变量,这个变量的类型是sp_table_type sp_table sp_table_type; begin select ename into sp_table(-1) from emp where empno = 7788; dbms_output.put_line(‘员工名:‘ || sp_table(-1)); end;
declare --定义游标sp_emp_cursor type sp_emp_cursor is ref cursor; --定义一个游标变量 test_cursor sp_emp_cursor; --定义变量 v_ename emp.ename%type; v_sal emp.sal%type; begin --执行 --把test_cursor和一个select结合 open test_cursor for select ename,sal from emp where deptno=&no; --循环取出 loop fetch test_cursor into v_ename,v_sal; --判断是否test_cursor为空 exit when test_cursor%notfound; dbms_output.put_line(‘名字:‘||v_ename||‘ 工资:‘||v_sal); end loop; end; /
时间: 2024-10-29 19:11:21