学习存储过程
来源:互联网 发布:js 比较对象 编辑:程序博客网 时间:2024/05/16 19:01
存储过程定义信息查看
column text format a30;column name format a20;select * from user_source where name ='select_emp';
修改
修改和创建一样就是加上or replace;
删除存储过程:
drop procedure '过程名';
创建过程:
create or replace procedure update_emp isbegin update emp set ename = 'hhdhjf' where empno = 7934;end update_emp;
调用过程:call update_emp ();execute update_emp;
创建过程(实现两个数交换)create or replace procedure exchange_value(value1 in out number, value2 in out number) as temp1 number; temp2 number;begin temp1 := value1; temp2 := value2; value1 := temp2; value2 := temp1;end exchange_value;调用该过程variable val1 number;variable val2 number;exec :val1 := 2009;exec :val2 := 9002;exec exchange_value(:val1, :val2);输出值:select :value1, :value2 from dual;select :val1, :val2 from dual;
存储过程使用默认值
set serverout on;create or replace procedure creat_value(value1 varchar2 default '123456', value2 varchar2 default '789') asbegin dbms_output.put_line('value1:' || value1 || ' ' || 'value2:' || value2);end creat_value;调用过程begin creat_value(); creat_value('kkkkk'); creat_value('sssss', 'eeeeee');end;
带参数out
create or replace procedure select_emp(emp_num in number, emp_name out varchar2) asbegin select ename into emp_name from emp where empno = emp_num;end select_emp;variable v_name varchar2(10);call select_emp(7934,:v_name);或execute select_emp(7934,:v_name);输出print v_name;
带参数in out
create or replace procedure app_disp(v_id in out departments.department_id%type, v_name in out departments.department_name%type, v_address in out departments.address%type) asbegin insert into departments values(v_id, v_name, v_address); v_id := v_id - 1; select department_id, department_name, address into v_id, v_name, v_address from departments where department_id = v_id;exception when dup_val_on_index then dbms_output.put_line('插入系部信息时,系部号不能重复。'); when no_data_found then dbms_output.put_line('查询系部信息时,该系不存在');end app_disp;调用过程:variable v_id number;variable v_name varchar2(8);variable v_address varchar2(40);execute :v_name :='地理物理';execute :v_address := 'x号教学楼';execute :v_id :='111';call app_disp(:v_id, :v_name, :v_address);输出参数:print v_id ;print v_name;print v_address;
带参数存储过程in
create or replace procedure update_emp2(emp_num in number, emp_name in varchar2) asbegin update emp set ename = emp_name where empno = emp_num;end update_emp2;
不带参数名调用:call update_emp2(7934, 'ddddd');
使用参数名调用:execute update_emp2(emp_num => 7934, emp_name => 'ddddd');
- oracle存储过程学习过程
- 存储过程学习
- 存储过程学习!
- SQL存储过程学习
- 存储过程学习
- 数据库存储过程学习
- 存储过程学习
- :存储过程学习
- 存储过程的学习
- SQL存储过程学习
- 存储过程的学习
- mysql 存储过程学习
- mysql 存储过程学习
- Oracle存储过程学习
- 学习存储过程
- 存储过程学习笔记
- 学习存储过程
- MSSQL2005 存储过程学习
- json和map的相互转换
- Android学习历程-从菜鸟开始
- hdu 1517 A Multiplication Game
- grep
- C++的杂七杂八:我家的返回值才不可能这么傲娇(右值引用和移动语义)
- 学习存储过程
- 虚拟网卡下的连接方式bridge、nat、host-only
- 改变、改变... ...
- Chat interface
- QTableView中表头宽度设置
- 二分图相关知识
- 每个程序员都应该读的书
- C语言中动态分配内存
- 用C语言编写的将文本文件中的个数据间添加 "," 的小程序