存档

‘Oracle’ 分类的存档,文章数:14

在CentOS5.5 x86_64上安装了Oracle11g,版本号为:11.2.0.1.0

但是,在其它客户端上使用sqlplus连接的时候需要等待很长时间才能连接上,有时候报超时的错误。

错误信息为:

***********************************************************************

Fatal NI connect error 12537, connecting to:
 (LOCAL=NO)

  VERSION INFORMATION:
        TNS for Linux: Version 11.2.0.1.0 - Production
        Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production
        TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production
  Time: 30-NOV-2011 14:28:10
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12537

TNS-12537: TNS:connection closed
    ns secondary err code: 12560
    nt main err code: 0
    nt secondary err code: 0
    nt OS err code: 0
opiodr aborting process unknown ospid (29666) as a result of ORA-609
Wed Nov 30 14:36:24 2011

Oracle11g服务器数据库名为:lzf,全局名称为:lzf.dbainfo.net

在CentOS5.6上安装oracle10gR2,安装程序进行到86%的时候报下面的错误:

INFO: gcc:
INFO: /usr/lib/libstdc++.so.5: No such file or directory
INFO:

INFO: /home/oracle/db_1/bin/genorasdksh: Failed to link liborasdkbase.so.10.2

INFO: make: *** [liborasdkbase] Error 1

INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'all_no_orcl ihsodbc' of makefile '/home/oracle/db_1/rdbms/lib/ins_rdbms.mk'. See '/home/oracle/oraInventory/logs/installActions2011-04-28_09-49-27AM.log' for details.
Exception Severity: 1

这个错误是和编译有关的,检查日志发现果然缺少了一个C的类库:
INFO: /usr/lib/libstdc++.so.5: No such file or directory

例:有表

--sybase

create table t_test(

mydate datetime)

go

--oracle

create t_test(mydate date)

方法1:在sybase侧建立视图,然后从导出视图(此方法舍弃了毫秒部分)

create view v_test as

select

convert(varchar(10),pst_exec_stime,111)+' '+convert(varchar(9),pst_exec_stime,8) mydate

from t_test

go

在运行./runInstaller时出现的错误 错误一: /tmp/OraInstall2007-12-30_02-16-11PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open  shared object file: No such file or directory occurred. 原因是:缺少支持打印的图形化动态链接库libXp.so.6 这个错误是由于缺少系统安装包,在RHEL5以前的版本,可以安装xorg-x11-deprecated-libs包即可,这个安装包可以在系统光盘第三张盘中找到(对于redhat as4.2以前,redhat as4.4是在第四张安装光盘) 我下载的文件如下: xorg-x11-deprecated-libs-6.8.2-31.i386.rpm   我用的是redhat 5,在5中 被libXp-1.0.0-8.i386.rpm替代了,所以从安装盘中找到这个文件, rpm  -Uvh   libXp-1.0.0-8.i386.rpm 再./runInstaller就没有问题,可以启动图形界面了。 转自:http://shuhui018125.blog.163.com/blog/static/7711050201062203346193/

在上一篇文章中,查看表中列属性的SQL语句 查看Oracle中表的简要列属性信息。利用上面的SQL语句,可以改进出来统计表所占物理存储空间大小的语句。 在Oracle中number数字类型所占的空间,计算公式为: number(p,s) 占用的字节数为: floor( ( p + 1  ) / 2 ) + 1   select object_name,sum(decode(data_type,'NUMBER',floor((col_length+1)/2) + 1,col_length)) table_size from   (select object_name,column_name,data_type,decode(data_precision,NULL,data_length,data_precision) col_length     from       (select o.name object_name,c.column_name column_name,c.data_type,c.data_length,c.data_precision,c.data_scale         from sys.tab$ t,dba_tab_cols c,sys.obj$ o,sys.user$ u           where o.obj#=t.obj#             and o.name=c.table_name             and c.owner=u.name             and o.owner#=u.user#             and [...]

在sqlplus中,desc后面跟上表名,能够显示简要的表创建语法。

下面的SQL语句能够实现类似sqlplus中desc的类似的功能。

select o.obj#,o.name object_name,c.column_id,c.column_name,c.data_type,c.data_length,c.data_precision,c.data_scale,c.nullable
from sys.tab$ t,dba_tab_cols c,sys.obj$ o,sys.user$ u
where o.obj#=t.obj#
  and o.name=c.table_name
  and c.owner=u.name
  and o.owner#=u.user#
  and u.name='SCOTT'
  and o.name='EMP'
order by obj#,column_id 
;

Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。

一、连接各种数据库方式速查表
   下面罗列了各种数据库使用JDBC连接的方式,可以作为一个手册使用。
   1、Oracle8/8i/9i数据库(thin模式)
Java代码  
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();   
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID   
String user="test";   
String password="test";   
Connection conn= DriverManager.getConnection(url,user,password);   
 
   2、DB2数据库
Java代码  
Class.forName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();   
String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名   
String user="admin";   
String password="";   
Connection conn= DriverManager.getConnection(url,user,password);   
 

oracle的版本为:10gr2,10.2.0.1.0。 利用oracle中的hsodbc连接sqlserver2005数据库。已成功连接。db link的名字为: sql2005fororacle。 执行:select count(*) from sysdatabases@sql2005fororacle; 能够成功执行。 但是,在执行: select count(*) from sysobjects@sql2005fororacle;却导致系统出现了死机症状,无法响应任务的操作,任务管理器看到cpu利用率不高。无奈,只能强制关机。 在alert_<SID>.log文件中发现有这么几句: Memory Notification: Library Cache Object loaded into SGA Heap size 2225K exceeds notification threshold (2048K) KGL object name :XDB.XDbD/PLZ01TcHgNAgAIIegtw== 原来遇到oracle的bug了。上网检索,说 是oracle的一个bug在10g10.2.0.1的各个平台上都出现过。 Oracle10g中,在load较大的对象进library cache中时,会记录以上警告。在版本10.2.0.1中,这个定义大对象的阈值是2M,这是有隐含参数 _kgl_large_heap_warning_threshold 指定的从10.2.0.2起,这个参数的默认值被修改为50M。 解决方法1 :升级到10.2.0.2或者以上。 解决方法2 : SQL> alter system set "_kgl_large_heap_warning_threshold"=20388608 scope=spfile ; SQL> shutdown immediate SQL> [...]