Oracle存储过程的格式

     存储过程在程序中是常用的,在项目中我也经常写一些,但是犯了一个错误是,我老是把sql语句的过程,写成一长串sql语句,然后按正常的sql运行。因此造成代码过长,而且数据库一有改动就要改程序。

    例如,两个表table1,table2,table1的主键作为table2的外键,要插入数据,就有

string sql ="
declare   
  cid   number;
begin
   select count(a.id) into cid   from table1 a where 1=1;
   if cid >0
     then
        update table1;
   else
      insert table1;
     end if;
   insert table2 (字段) values(id,cid,值);
 commit; 
exception
when others then
rollback;
end;
";

sql = string.format(sql,参数);然后 excutesql(sql);

真是汗颜啊。为了做一名高水平的程序员,这种写法一定要改正。

Oracle 中 create procedure语法如下:

create[or replace] procedure procedure_name
[(parameter_name)[in|out|in out] type,[...]]
begin
procedure body
end procedure_name

or replace如果名称已存在则替换;

procedure_name过程名;

parameter_name参数名;

type参数类型;

in|out|in out,in默认值,参数值运行中不改变,out参数的值只在运行中赋值,in out既可事先赋值,也可运行中赋值;

procedure_body过程实体。

后面的代码一定要严格按照面向对象的思想,多用数据库的特有功能,过程,函数,触发器等。要做到数据库和程序进行分离。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值