sqlserver 的prepare方法使用问题
1.如果先prepare 后添加参数,这样一部分数据类型可以不用设置其size大小,例如char
2.如果先添加参数再prepare,就必须设置参数的类型,大小,精度才能通过,比如char,varchar,decimal类型,而int,float有固定字节类型的数据类型则可不用设置大小。
3.关于SqlServer的timestamp类型:该类型为SqlServer的时间戳类型,创建表的时候可以没有列名,例如
create table zh(a1 int,timestamp);
在进行插入操作的时候不能插入timestamp列,它会自动插入一个二进制类型8个字节的数据,或者插入default。
插入的值会发现是1900年的时间,这个据MSDN解释是这个时间不同于系统时间,而是为了区分该行数据有没有被更改,该行数据一旦被更改,则timestamp列的时间会自动更新。
在数据库里该列是以binary存储,MSDN解释:可为空的该列相当于binary(8),不可为空的该列相当于varbianry(8)
在取列数据的时候,需要将数据转换成datetime类型
sql语句:利用cast或者convert ,convert(datetime,timestamp_c)
程序里:利用转换方法Convert.ToDateTime
相关文档:
SQLServer和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) valu ......
由于以前都是在sqlserver 2005处理,现在客户要求oracle数据库服务器,
最初的代码为:
allRecordSize = (Integer) rs1.getObject(1); //Integer allRecordSize=0;
当执行的时候报:BigDecimal无法转化为Integer类型
为了兼容两者修改后的代码为:
Object o = rs1.getObject(1);
&nbs ......
只是sqlserver 提供的远程数据访问函数; 在本地sqlserver 中取外部数据源数据时候可用;
对连接本地 oracle 操作远程 oracle 不能使用; 测试: pl/sql 中使用:
select * from openrowset(................); 无效!!!!!!!!!!!!!!
在oracle 中需要访问远程数据,需要建立一连接远程oracle 的 dblink ;
再用如下方 ......
package com.wfy.system.dao;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
......