搜索到关键字为 Oracle 的相关日志 9 篇: ("[空格]和"+"[加号] 可作搜索分隔符号使用.)

常用数据库validationQuery语句 suny

在配置数据库连接池的时候,有一个选项validationQuery,该选项用来验证数据库连接的有效性,下表是从网上收集的常用数据库的validationQuery语句。

数据库 validationQuery
Oracle select 1 from dual
DB2 select 1 from sysibm.sysdummy1
mysql select 1
microsoft sql select 1
hsqldb select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
postgresql select version();
ingres select 1
derby select 1
H2 select 1

CentOS 删除自带的OpenJDK 和 安装SunJDK suny

卸载OpenJDK:
[root@WX32 local]# java -version
java version "1.6.0"
OpenJDK  Runtime Environment (build 1.6.0-b09)
OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)

[root@WX32 local]# rpm -qa | grep java
java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
...

不受支持的 SQL 类型 1111 rainy

Sybase 的官方驱动 jConnect4 (链接字符串:jdbc:sybase:Tds:127.0.0.1:5000/xxx) 结合myBatis使用时,发现如下问题,当insert或者update语句的变量含有null值,会报错:

 ### Cause: java.sql.SQLException: JZ006: 捕获到 IO 例外:java.io.IOException: JZ0SL: 不受支持的 SQL 类型 1111。

Cause: java.sql.SQLException: JZ006: Caught IOException: java.io.IOException: JZ0SL: Unsupported SQL type 1111.

由于参数出现了null值,myBatis进行操作的时候,指定jdbcType类型的参数时,mybatis默认设置为jdbcType.OTHER,导致Sybase数据库无法识别此格式。

解决方法:给参数加上jdbcType可解决(注意大小写) 。

比如:
insert into xxx(a,b) values(#{a,jdbcType=VARCHAR}, #{b,jdbcType=DATE})
update xxx set a=#{a,jdbcType=VARCHAR} where id=#{id}

目前jdbcType含有以下类型:

ARRAY(Types.ARRAY),
BIT(Types.BIT),
...

jSQL Manager Version 1.0.0 Beta(测试版)低调发布 cloudy

什么是jSQL Manager?

      笔者从事JAVA开发2年多,期间开发和维护了不少项目,深知数据库管理的重要性。程序排错、系统更新、日常维护都和数据库管理息息相关。特别是一些在Linux系统部署的系统维护更为头疼,由于采用SSH远程连接,直接在控制台敲命令。SSH没有图形化可视操作,而且对中文的支持也很不友好,数据库管理很不方便。而且大部分系统为了安全考虑,并没有开放数据库和SSH的外网远程访问权限,常常需要使用QQ的远程协助功能和其系统内部的一些技术员进行远程控制操作,受网络传输影响,常常卡得心烦气躁,头疼不已。

      因此,我开始有了开发一个在线管理数据库的软件的想法,jSQL Manager应运而生。

      jSQL Manager是一款基于Java/jsp语言开发的在线管理数据库的软件,适用于MySQL、MSSQL、Oracle的数据库在线管理。(目前测试版仅支持MySQL5)。

...

ORA-00600: internal error code, arguments: [ttcgcshnd-1], [0], [], [], [], [], [], [] suny

      今天一个系统的Oracle数据库升级后,遇到如下的错误:ORA-00600: internal error code, arguments: [ttcgcshnd-1], [0], [], [], [], [], [], [] 
      百度告诉我:这个问题可能是Oracle的版本问题,可用ojdbc14.jar代替classes12.jar,因为从oracle 9.2之后,对jdbc 的驱动程序的命名将有所改变,JDK1.1,JDK1.2的驱动程序名(class12.jar)将不再改变,一直沿用下去,从JDK1.4开始驱动程序名将所有改变,例如:JDK1.4的驱动名为ojdbc14.jar 。JDK1.5的驱动名为ojdbc15.jar。
      重新下载了对应的驱动程序后,问题得到解决。

删除Oracle某数据库下的所有表 suny

今天使用imp导入dmp格式的数据库备份的时候,发现导入出错,提醒对象已经存在,才记起来要先删除所有表才能导入,如果数据库有几十上百个表的话,一个一个去删除真浪费时间。为了方便,就写了一条语句来查询所有表和生成批量删除的语句:

select 'drop table '||table_name||';' as sqlscript from user_tables;

SQLSCRIPT
--------------------------------------------
drop table LO_CASEINFO;
drop table LO_HARMONIZECASE;
drop table LO_LAWCHECK;
drop table LO_LEGISLATIONITEM;
...

PLSQL Developer + Oracle客户端简易安装方法 cloudy

之前一直都是用eclipse自带的Data Source Explorer访问Oracle数据库,可是只能简单地查看,而且很多字段不兼容。
今天开始使用PLSQL Developer连接远程Oracle数据库的时候,提示我没有安装Oracle客户端,才知道PLSQL Developer不是独立的软件,是要基于Oracle客户端运行的。

下面就介绍一下没有安装Oracle数据库的情况下,单独安装一个客户端。

1、到Oracle官方网站下载一个客户端:http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html

2、我这里选择的是:即时客户端程序包 — Basic: 运行 OCI、OCCI 和 JDBC-OCI 应用程序所需的所有文件(instantclient-basic-win32-11.1.00.70.0.zip)

3、将安装包解压和重命名为:D:\OracleInstantClient_11_1

4、设置环境变量:
 1.;D:\OracleInstantClient_11_1; (在PATH环境变量追加)
 2.SET TNS_ADMIN=D:\OracleInstantClient_11_1 (新建)
 3.SET NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK (新建,防止查询乱码)

5、指定需要连接的实例名字,在D:\OracleInstantClient_11_1目录下新建一个tnsnames.ora文件,然后填入
192.168.8.201 =
...

Oracle 分页和排序问题探讨 cloud

1、在ORACLE中,rownum是一个伪列,对于这个列,只能使用"<"或者"<="这两个操作符
2、它一定是从1开始的,不能跨过1;
3、不能用:>,>=,=,Between...and。由于rownum是一个总是从1开始的伪列,Oracle 认为这种条件不成立,查不到记录。执行总是显示:未选定行。

如果要使用  >,>=,=,Between...and 操作符,可以使用子查询把rownum转为实际列:
select namef from (select rownum r,namef from tablename)t where r > 10;
...

Oracle 异常: ORA-12541: TNS:no listener;无监ting器 cloud

Oracle Io异常: The Network Adapter could not establish the connection

今天刚上班,启动项目时总是报(Io异常: The Network Adapter could not establish the connection),昨天还好好的呢,今天怎么就不行了?使用 telnet 192.168.8.201 1521测试连不通,还以为是防火墙搞鬼;而跑到服务器上面关闭服务器防火墙还是不行,并且直接telnet 127.0.0.1 1521还是不通。到此可以确定是oracle的服务异常了。

解决方法
1、首先打开oracle配置和移植工具 --> Net manager --> 本地   --> 监听程序 -- > listener --> (TCP/IP协议的)网络地址 ---> 把主机那一项改为"localhost";然后点击:本地-->服务命名-->(TCP/IP协议的)网络地址 ---> 把主机名那一项改为"localhost"。
...