首页 / 数据库 / MySQL / Oracle中的存储过程简单应用
Oracle中的存储过程简单应用一,实例——查询
1.
create or replace procedure print_emp_name
(
v_id in emp_s.EMP_ID%type
)
as
v_emp emp_s%rowtype;
begin
select * into v_emp from emp_s where emp_id = v_id;
if SQL%found then
dbms_output.PUT_LINE("员工姓名:"||v_emp.emp_name);
end if;
end print_emp_name;
begin print_emp_name(1);end;
2.
create or replace procedure get_emp_name
(
v_id in emp_s.EMP_ID%type,
o_name out emp_s.EMP_NAME%type
)
is
begin
select emp_name into o_name from emp_s where emp_id = v_id;
end get_emp_name;
declare
o_name varchar2(10);
v_id number;
begin
v_id := 1;
get_emp_name(v_id,o_name);
dbms_output.PUT_LINE(o_name);
end;
二、实例——插入
create or replace procedure insert_emp
(
i_id in emp_s.EMP_ID%type,
i_name in emp_s.EMP_NAME%type
)
as
str_sql varchar2(500);
begin
str_sql := "insert into emp_s values(:i_id,:i_name)";
execute immediate str_sql using i_id,i_name;
if sql%found then
dbms_output.PUT_LINE("insert success");
end if;
end insert_emp;Oracle 存储过程修改列的类型的字符大小 create or replace procedure alter_col_size
(
col_name in varchar2,
str_size in number
)
as
str_sql varchar2(5000);
begin
declare cursor exec_alter_sql is
select "alter table " || table_name || " modify "||col_name||" varchar2("||str_size||")"
from user_tab_columns
where COLUMN_NAME=col_name;
begin
open exec_alter_sql;
loop
fetch exec_alter_sql into str_sql;
execute immediate str_sql;
--dbms_output.PUT_LINE(str_sql);
exit when exec_alter_sql%notfound;
end loop;
end;
end alter_col_size;更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址