oracle存储过程学习
Posted bloom_camellia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle存储过程学习相关的知识,希望对你有一定的参考价值。
*: 存储过程创建
1. 输出查询结果(dbms_output.put_line(‘用户名为:‘||u_name);)
create or replace procedure p002test
is
u_name varchar2(100);
begin
select user_name into u_name from t_user;
dbms_output.put_line(‘用户名为:‘||u_name);
end p002test;
2. 简单循环(for xx in list loop xxxxx end loop)
create or replace procedure p002test
is
cursor u_cursor is select user_name, user_remark from t_user;
begin
for u_record in u_cursor loop
dbms_output.put_line(u_record.user_name||‘: ‘||u_record.user_remark);
end loop;
end p002test;
3. 传递参数,使用简单异常(当需要输出参数的时候,使用out,或者in out,默认为in)
create or replace procedure p002test(p_user_id in number, p_user_password in varchar2)
is
begin
update t_user set user_password=p_user_password where user_id = p_user_id;
commit;
exception
when others then
dbms_output.put_line(‘修改失败,回滚。‘);
rollback;
end p002test;
4. 异常信息打印(sqlcode: 异常码,sqlerrm:异常详细)
create or replace procedure p002test(p_user_id in number, p_user_password in varchar2)
is
begin
update t_user set user_password=p_user_password where user_id = p_user_id;
commit;
exception
when others then
dbms_output.put_line(‘修改失败,回滚。errorCode:‘ || sqlcode || ‘ errorText:‘ || substr(sqlerrm,1,200));
rollback;
end p002test;
**: 存储过程调用
1.
begin
p002test();
end;
2.
call p002test();
call p002test(1, ‘123‘);
***: 存储过程删除
drop procedure 存储过程名字;
以上是关于oracle存储过程学习的主要内容,如果未能解决你的问题,请参考以下文章
每天从 CSV 文件更新 MySQL(存储过程中不允许加载数据)
Sqlcmd使用SQL Server存储过程将数据导出到csv
使用存储过程从 sql server 快速读取百万条记录,并使用 java 和 spring boot 将其写入 csv
Oracle 存储过程无法生成 csv 文件 - ORA-06502: PL/SQL: numeric or value error: string buff