You are browsing the archive for Oracle EBS基础.

安装客户端/服务器模式Oracle UPK3.5

10:45 pm in Oracle EBS基础 by aronezhang

由于公司的需要,正好安装了Oracle UPK3.5的C/S,Oracle UPK3.5的安装文档写的比较凌乱,很多内容描述的并不清楚,因此安装过程中也不乏遇到麻烦,

本文详细的整理了整个UPK3.5的服务器安装步骤,同时展示了如何从客户端连接到服务器,记录于博文中以供备查,同时也供其他人参考。

 

Read the rest of this entry →

Oracle User Productivity Kit(Oracle UPK) 3.5

9:25 pm in Oracle EBS基础 by aronezhang

Oracle的官方是这样描述Oracle UPK工具的:

Oracle用户生产力套件提供了协作式开发环境,以创建与系统相关的资产——“人与系统之间”的文档——用于项目生命周期的所有其他阶段。Oracle用户生产力套件借助其通过单一记录会话生成多输出的功能,可以减少内容开发的时间和成本。企业可以快速生成交互式事务模拟、教室和基于Web的培训资料以及对使用管理软件能力的支持。通过创建用户测试脚本,系统事务可以在投入运行之前进行定义和测试,从而提供必要的资料,确保用户采用。Oracle用户生产力套件对于提高生产力和降低整个软件实施成本至关重要。

 

Read the rest of this entry →

64位操作系统PL/SQL Developer连接数据库报ORA-12154错误

3:32 pm in Oracle EBS基础 by aronezhang

?

?

在Windows Vista 64位操作系统中安装Oracle Express数据库,安装连接数据库工具PL/SQL Developer,配置好数据库连接信息tnsnames。

连接数据报出如下的错误:

ORA-12154: TNS:could not resolve the connect identifier specified

ORA-12154:TNS:无法解析指定的连接标示

?

开始以为是tnsnames配置有问题,认证检查并通过tnsping命令进行测试,没有任何问题可以连接数据库。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
C:\Users\Arone.Zhang > tnsping xe
 
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 10-1月 -
2009 23:24:30
 
Copyright (c) 1997, 2005, Oracle.  All rights reserved.
 
已使用的参数文件:
C:\oraclexe\app\oracle\product\10.2.0\server\network\admin\sqlnet.ora
 
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = aronezha
ng)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = XE)))
OK (30 毫秒)

?

经过搜索,发现是是由于32位软件在64位操作系统下安装的时候,默认会安装在:

C:\Program Files (x86)

而不像在32位操作系统下安装默认的路径是:

C:\Program Files

?

由于Oracle的Net Service在解析连接的时候存在一个Bug,无法解析路径中包括的圆括号,因此最简单的解决方案是:

?

将PL/SQL Developer或其它客户端连接工具安装到没有包括圆括号的目录下。

?

问题解决!

?

另外最好当然是Oracle能够解决这个Bug了。

?

?

Oracle SQL 空值排序(Nulls)

1:36 am in Oracle EBS基础 by aronezhang

 

在数据开发应用中,很多时候需要对数据进行排序,但是在Oracle 数据库中,有空值一说(NULL)。如果一个列中有的值是空的,则如果对此列进行排序的话,空值的行将被排序放到后面,如我对HR模式下的EMPLOYEES员工表按照佣金比率列进行排序的话,

SELECT t.employee_id, t.last_name, t.commission_pct
FROM employees t
WHERE t.employee_id BETWEEN 178 AND 181
ORDER BY t.commission_pct

 

结果如下:

179 Johnson 0.10
178 Grant 0.15
180 Taylor
181 Fleaur

 

180,181由于没有佣金比率被排到了后面
而有的时候我们希望将空值的记录排序在前面而不是后面 ,这时候则需要使用关键字:
NULLS FIRST :将空值的记录排序在前面
NULLS LAST:将空值的记录排序在后面(默认)

 

例如上面的例子做少许的修改:

SELECT t.employee_id, t.last_name, t.commission_pct
FROM employees t
WHERE t.employee_id BETWEEN 178 AND 181
ORDER BY t.commission_pct NULLS FIRST

 

结果如下:

180 Taylor
181 Fleaur
179 Johnson 0.10
178 Grant 0.15

180,181由于没有佣金比率被排到了前面

ORACLE客户端与数据库服务器连接

12:29 am in Oracle EBS基础 by aronezhang

对于初学者,关于客户端工具与数据库服务器的连接总是会存在如下的疑问:

  1. 我一定要在本地机器上面安装Oracle数据库吗?
  2. 如果我在本地安装了Oracle数据库,为什么还要配置一个TNS来连接数据库呢,它怎么这么笨呢?
  3. 如果本地可以不安装数据库,那又怎么弄呢?
  4. 还有SQL*Plus,PL/SQL Developer和Oracle数据库有什么关系呢?

?

要弄清楚上面的问题和这些名词之间的关系,我下面就以一个比较笨拙的比喻来说明:
首先需要了解两个进程(Windows平台):Oracle数据库进程和Oracle数据库服务监听进程。如果按照这两个进程来划分安装阶段的话,我们可以将安装阶段分为数据库后台系统安装和创建数据库两个阶段,而数据库进程和数据库服务监听进程分别就是两个安装阶段创建的。

而第一个阶段安装完成后,其实Oracle数据库并没有“真正数据库”的功能,因为它只是具备了管理数据库能力的一个基础系统,并不能存储数据。就像盖房子,需要先有块地皮,才能盖房子,但是光地皮它还不是房子。而如果Oracle数据库进程成功启动了,说明养?上面我们可以清楚,如果我需要操作数据库服务器,只要如下条件就可以了:

  1. 知道TNS,即数据库地址相关的信息
  2. 具备Oracle Net软件层
  3. 客户端应用

?

TNS的知识已经足够了,那怎么样才能使自己的系统中拥有Oracle Net软件层呢?有几种途径:

  1. 专门安装Oracle Client软件,可以从Oracle网站下载
  2. 安装Oracle开发工具,如Form、Report、Discoverer等等,因为这些软件也带了Oracle Net软件层
  3. 安装Oracle数据库,它也带了Oracle Net软件层

?

而我们需要的是一个客户端应用,以便我们来操作数据库,SQL*Plus就是Oracle很多产品中自带的一个应用工具,而PL/SQL Developer则是第三方公司开发的一个Oracle客户端工具。因此要使用SQL*Plus或者PL/SQL Developer操作数据库之前,我们一般要做的就是进行TNS配置,而要进行TNS配置就需要安装Oracle Net软件层。

综上所述,要操作Oracle数据库,或者说在Oracle数据库环境下进行数据库应用开发,我们最常见的环境组合:

  1. 开发机器上安装Oracle Client软件,让其具备Oracle Net软件层,进而配置TNS,标识出要连接的数据库信息;并安装PL/SQL Developer这样的Oracle客户端开发工具。而Oracle数据库服务器系统安装在公司的服务器或者“遥远的地方”,和开发人员没有关系,只要TNS配置好就行
  2. 开发机器上安装Oracle数据库,同时也具备了Oracle Net软件层的功能,配置TNS,标识出连接本机上的数据库;同时安装Oracle客户端开发工具

?

这样一来没有条件在自己机器上面安装一个Oracle数据库的同学就可以选择第一个方案,然后找一个有条件同学的数据库服务器或者公司的数据库服务器来进行学习,当然前提是要保证网络连接!