存储过程在程序中是常用的,在项目中我也经常写一些,但是犯了一个错误是,我老是把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过程实体。后面的代码一定要严格按照面向对象的思想,多用数据库的特有功能,过程,函数,触发器等。要做到数据库和程序进行分离。Oracle Manager Server安装配置MySQL双向复制技术经典版相关资讯 Oracle基础教程
- Oracle块编程返回结果集详解 (11/10/2013 10:45:58)
- Oracle基础教程之设置系统全局区 (08/22/2013 14:24:00)
- Oracle基础教程知识点总结 (06/18/2013 07:43:32)
| - Oracle基础教程之tkprof程序详解 (10/22/2013 11:49:50)
- Oracle基础教程之sqlplus汉字乱码 (07/18/2013 16:30:00)
- Oracle 管理之 Linux 网络基础 (02/16/2013 18:37:35)
|
本文评论 查看全部评论 (0)