pl/sql编程小结

1.创建一个简单的表
create table mytest_chg(name varchar2(30),passwd varchar2(30));
2.创建存储过程(最后要"/"才能执行)
create or replace procedure chg_pro1 is
  begin
    insert into mytest_chg(name,passwd) values('bbb','123');
    end;
    /
    2.2查看错误信息方法
    show error;
3.如何调用过程
3.1 exec过程名(参数值1,参数值2...);
     call过程名(参数值1,参数值2...);--有无参数时报错
     delete from mytest_chg where name='aaa';
4.pl/sql块
--开启(一定要先开启)
set serveroutput on;
--简单的块
begin
--输出
dbms_output.put_line('hello oracle');
end;

5.查询将值赋给一个变量,再打印出来&no是传empno字段的值
declare v_ename varchar2(5);
  begin
   select ename into v_ename from emp where empno=&no;
   dbms_output.put_line('雇员名:'||v_ename);
  end;
  5.2
   declare
  --定义变量
          v_ename varchar2(5);
          v_sal number(7,2);
  begin
  --执行部分
  select ename,sal into v_ename,v_sal from emp where empno=&no;
  dbms_output.put_line('雇员名:'||v_ename||'工资是:'||v_sal);
  --异常处理
  exception
  when no_data_found then
  dbms_output.put_line('输入编号未找到');
  end;
6.--案例
  create procedure ch_pro2(chName varchar2,newSal number) is
  begin
  --执行部分,根据用户名修改工资
  update emp set sal=newSal where ename=chName;
  end;
  --调用
  exec ch_pro2('SMITH',1000);
7.如何在java中调用oracle存储过程
  7.1得到连接后,创建CallableStatement cs=con.prepareCall("{call ch_pro2(?,?)}");
  注意:这里执行的语句要用“{}”括起来,而且不能用exec
  7.2给?赋值cs.setString();cs.setInt();//执行cs.execute;

猜你喜欢

转载自0624chenhong.iteye.com/blog/1585335