Oracle 游标总结+整理
项目中需要使用到按规则生成序列号,开始的解决办法是根据条件取得最大ID号进行分解+1再合并的解决方案,后来发现如果两个客户同时操作的时候出现问题:添加的时候ID已经存在,原因是:A用户在访问取得第MAX(N)记录deID,但是还没有进行增加操作,这时,B用户也取得第MAX(N)记录deID,这是A进行添加操作同时,B也同时进行添加操作,那么B用户就会保存失败,我们开始的时候采用的解决方案是:(枷锁)在程序的方法上枷锁,采用单线程操作,实施结果:失败,客户等待时间长,后来我们采用绑定数据库的方案:编写存储过程,虽然绑定不怎么方便,但是执行效率要快很多。由于时间问题,没有做序列自动创建功能,欢迎各位大虾进行指点和评论,我们最后的方案如下:
在oracle里面编写了2个基本做基本处理的自定义函数:
create or replace function fun_config_glide_num(p_class varchar2,
p_column varchar2)
/**
* 流水帐号配置_oracle
* author:ai bo 2010.02.23
* p_table varchar2 表名
* p_website varchar2 自定义开头字符
*/
return varchar2 as
v_curId integer;
-- v_seq varchar2(50);
-- v_seq_value number;
v_sql varchar2(200);
v_ret number(3);
v_num varchar2(20);
p_table varchar2(30);
p_website varchar2(20);
p_length varchar2(3);
t_class varchar2(20);
t_column varchar2(20);
begin
t_class := p_cla
相关文档:
对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<、<=、!=),并非说用>,>=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇,同样是伪列,r ......
decode函数
语法:
decode(expr,search,result[,search,result]..[,search,result][,default])
解释:
比较expr与每个search的值,如果expr等于某个search,则返回相应的result;如果没有匹配的值,则返回default值;如果没有指定default值,则返回null
注意:
比较前,Oracle自动将expr的数据类型转换成第一个sear ......
在SQL SERVER 20000中访问Oracle数据库服务器的几种方法
1.通过行集函数opendatasource
要求:本地安装Oracle客户端
select * from opendatasource('MSDAORA', 'Data Source=XST4;User ID=manager;Password=sjpsjsjs')..MISD.PBCATCOL
其中,MSDAORA是OLEDB FOR Oracle的驱动,
注意:用户名和表名一定要大小,服务器和 ......
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.取整(截取)
S:select cast(-1.002 as int) value
O:selec ......
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 此处插入类型说明。
* 创建日期:(2001/11/30 14:55 ......