set serveroutput on;--设置显示结果
$imp system/test tables=(xs,kc,xs_kc)file=d:\oracle_daoru\xskc.dmp ignore=y;
导入成功:
declare
v_name varchar2(10);
v_job varchar2(10);
begin
v_name:='100';
v_job:='20';
dbms_output.put_line(v_name||' '||v_job);
exception
when others then
dbms_output.put_line(sqlcode||' '||sqlerrm);
end;
/
结果显示:
--3.1.查到7521这个人
declare
v_name varchar2(10);
v_job varchar2(10);
begin
select ename,job into v_name,v_job from scott.emp where empno='7521';
dbms_output.put_line(v_name||' '||v_job);
exception
when others then
dbms_output.put_line(sqlcode||' '||sqlerrm);
end;
/
--3.2.查不到75211这个人
declare
v_name varchar2(10);
v_job varchar2(10);
begin
select ename,job into v_name,v_job from scott.emp where empno='75211';
dbms_output.put_line(v_name||' '||v_job);
exception
when others then
dbms_output.put_line(sqlcode||' '||sqlerrm);
end;
/
--3.3.不加where查了多条数据,异常
declare
v_name varchar2(10);
v_job varchar2(10);
begin
select ename,job into v_name,v_job from scott.emp ;
dbms_output.put_line(v_name||' '||v_job);
exception
when others then
dbms_output.put_line(sqlcode||' '||sqlerrm);
end;
/
declare
v_num int;
begin
select count(*) into v_num from scott.emp;
dbms_output.put_line('这个表数量是'||v_num);
exception
when others then
dbms_output.put_line(sqlcode||' '||sqlerrm);
end;
/
5.1.%type要求精确到列,且输出的时候可以直接输出变量
5.2.%rowtype要求精确到表,且输出的时候必须要用点把属性分开输出。
举2个栗子
例5.1
declare
v_name scott.emp.ename%type;--v_name属性精确到emp表的列
begin
select ename into v_name from scott.emp where empno='7521';
dbms_output.put_line('工号是7521的人姓名是'||v_name);--输出直接输出即可
exception
when others then
dbms_output.put_line(sqlcode||' '||sqlerrm);
end;
/
结果输出:
例5.2
declare
v_emp scott.emp%rowtype;--v_emp属性精确到表,相当于临时表
begin
select * into v_emp from scott.emp where empno='7521';
--输出分开输出
dbms_output.put_line('工号是'||v_emp.empno||'的人姓名是'||v_emp.ename||',他的工作是'||v_emp.job);
exception
when others then
dbms_output.put_line(sqlcode||' '||sqlerrm);
end;
/
输出结果:
declare
--声明变量
v_xm varchar2(8):='ikun';
v_zym varchar2(10):='练习生';
v_zxf number(2):=25;
begin
--找得到更新
update system.xs set zxf=v_zxf where xm=v_xm;
--找不到插入
if SQL %NOTFOUND then
dbms_output.put_line('没有这个同学需要插入这个同学。');
insert into system.xs(xh,xm,zym,zxf) values ('007',v_xm,v_zym,v_zxf);
end if;
end;
/
结果显示:
查询结果:
Ikun同学已经插入;