:) 隐式游标 输入学号 和课程名字 将改学号的学生课程更改为课程名 如果不存在 抛出异常
set SERVEROUTPUT ON ;
DECLARE
var_i number(10):=0;
var_m varchar(20):='ii';
no_result exception;
BEGIN
var_i:=&x;
var_m:=&x;
update T_COUSE set COUSETYPE=var_m where COUSEID=var_i;
if sql%notfound then
raise no_result;
end if;
exception
when no_result then
dbms_output.put_line('更新失败了');
when others then
dbms_output.put_line('发生其他错误');
end;
格式化显示课程为数学的学生学号和姓名 利用显示游标
set SERVEROUTPUT ON ;
DECLARE
var_id number;
var_name varchar(20);
var_type varchar(20);
cursor Mycur(varType varchar) is select COUSEID,COUSENAME,COUSETYPE from T_COUSE where COUSETYPE=varType;
BEGIN
IF MyCur%isopen = false then
open Mycur('数学');
END IF;
FETCH MyCur INTO var_id,var_name,var_type;
WHILE MyCur%FOUND
LOOP
dbms_output.put_line('学号:'||var_id||'姓名:'||var_name||'课程:'||var_type);
Fetch MyCur INTO var_id,var_name,var_type;
END LOOP;
CLOSE MyCur;
END;
定义一个传递参数的过程,判断是否输入参数
set SERVEROUTPUT ON ;
create or replace procedure Mypro
(var_char in varchar2 default null)as
BEGIN if(var_char is null) then
dbms_output.put_line('你们有输入参数');
else
dbms_output.put_line('你输入的参数是'||var_char);
end if;
END Mypro;
execute Mypro('asdf');
execute Mypro();