由于以前都是在sqlserver 2005处理,现在客户要求oracle数据库服务器,
最初的代码为:
allRecordSize = (Integer) rs1.getObject(1); //Integer allRecordSize=0;
当执行的时候报:BigDecimal无法转化为Integer类型
为了兼容两者修改后的代码为:
Object o = rs1.getObject(1);
System.out.println(o.getClass().getName());
if(o.getClass().getName().equalsIgnoreCase("java.math.BigDecimal") ){
ballRecordSize =(java.math.BigDecimal)o;
allRecordSize = ballRecordSize.intValue();
}else{
allRecordSize = (Integer)o;
} ......
由于以前都是在sqlserver 2005处理,现在客户要求oracle数据库服务器,
最初的代码为:
allRecordSize = (Integer) rs1.getObject(1); //Integer allRecordSize=0;
当执行的时候报:BigDecimal无法转化为Integer类型
为了兼容两者修改后的代码为:
Object o = rs1.getObject(1);
System.out.println(o.getClass().getName());
if(o.getClass().getName().equalsIgnoreCase("java.math.BigDecimal") ){
ballRecordSize =(java.math.BigDecimal)o;
allRecordSize = ballRecordSize.intValue();
}else{
allRecordSize = (Integer)o;
} ......
只是sqlserver 提供的远程数据访问函数; 在本地sqlserver 中取外部数据源数据时候可用;
对连接本地 oracle 操作远程 oracle 不能使用; 测试: pl/sql 中使用:
select * from openrowset(................); 无效!!!!!!!!!!!!!!
在oracle 中需要访问远程数据,需要建立一连接远程oracle 的 dblink ;
再用如下方式进行访问
select * from hyhr.view_qj_salary@dblink_hydata.us.oracle.com ......
只是sqlserver 提供的远程数据访问函数; 在本地sqlserver 中取外部数据源数据时候可用;
对连接本地 oracle 操作远程 oracle 不能使用; 测试: pl/sql 中使用:
select * from openrowset(................); 无效!!!!!!!!!!!!!!
在oracle 中需要访问远程数据,需要建立一连接远程oracle 的 dblink ;
再用如下方式进行访问
select * from hyhr.view_qj_salary@dblink_hydata.us.oracle.com ......
我在把oracle数据导入sqlserver中时,发现在oracle中字段定义为唯一索引时,不同记录的此字段如果为空不被认为是重复的,但在sqlserver中如果此字段为唯一索引字段,不允许有2个以上的空值。郁闷。所以只好将sqlserver中的唯一索引字段手工修改为几个非空的值,但这样程序肯定要进行修改了。需要在程序中为此字段设置不重复的非空值,这样才能保证程序在不同数据库环境中能正常使用。
(需要修改openjweb的系统角色管理,在保存的时候给treecode字段赋值。)
关键字:java快速开发平台 openjweb 增删改查 ......
我在把oracle数据导入sqlserver中时,发现在oracle中字段定义为唯一索引时,不同记录的此字段如果为空不被认为是重复的,但在sqlserver中如果此字段为唯一索引字段,不允许有2个以上的空值。郁闷。所以只好将sqlserver中的唯一索引字段手工修改为几个非空的值,但这样程序肯定要进行修改了。需要在程序中为此字段设置不重复的非空值,这样才能保证程序在不同数据库环境中能正常使用。
(需要修改openjweb的系统角色管理,在保存的时候给treecode字段赋值。)
关键字:java快速开发平台 openjweb 增删改查 ......
一 在Oracle中连接数据库
public class Test1 {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
主机名 端口 SID 帐号 密码
"jdbc:oracle:thin:@haha:1521:oracle", "hehe", "a");
Statement stt = conn.createStatement();
ResultSet rs = stt.executeQuery("select * from emp");
while (rs.next()) {
System.out.print(rs.getObject(2).toString());
System.out.println("\t" + rs.getObject(3).toString());
}
rs.close();
stt.close();
&nb ......
一 在Oracle中连接数据库
public class Test1 {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
主机名 端口 SID 帐号 密码
"jdbc:oracle:thin:@haha:1521:oracle", "hehe", "a");
Statement stt = conn.createStatement();
ResultSet rs = stt.executeQuery("select * from emp");
while (rs.next()) {
System.out.print(rs.getObject(2).toString());
System.out.println("\t" + rs.getObject(3).toString());
}
rs.close();
stt.close();
&nb ......
如果ORACLE出现了数据块损坏, 导致SQL语句查询无法完成, 可以采用下面的方法, 将损坏的块排除掉, 这意味着会丢失数据.
方法如下:
1. 以SYS登录ORACLE,执行: ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10' ;
2. 将表中的数据拷贝到另外的表: CREATE TABLE GLB_PCB_PRINTED_BAK AS SELECT * from GLB_PCB_PRINTED;
3.将表重新命名: ALTER TABLE GLB_PCB_PRINTED RENAME TO GLB_PCB_PRINTED_01;
ALTER TABLE GLB_PCB_PRINTED_BAK RENAME TO GLB_PCB_PRINTED;
4.重建索引等其它对象 ......
如下例子所示
oracle 9.0.1.1.2
9:版本号
0:新特性版本号
1(第一个):维护版本号
1(第二个):普通的补丁设置号码
2:特殊的平台补丁设置号码
其他版本的话一个一个往上套就可以啦 ......