PowerDesigner连接远程Oracle数据库

来源:互联网 发布:积分系统数据库 编辑:程序博客网 时间:2024/06/03 15:44

记得以前在实习的时候使用过PowerDesigner连接过本机Oracle数据库,但是是在本机安装了Oracle服务器,所以附带的一些连接oracle的ODBC驱动以及环境变量等的配置当时都很简单。所以自然而然在用PowerDesigner的反向工程,并导出其数据模型的时候也没出什么大问题,很容易就配置好了。

但是这次没有装oracle服务器端,而是仅仅装了oracle客户端,然后访问远程Unix服务器上的oracle数据库,碰到了很多问题。下面将这些问题分享,希望能帮助碰到类似问题的朋友以供参考。

1.安装是Oracle 10.2客户端。

2.完了就准备配置连接oracle的ODBC数据源。

Start→Programs→Oracle-OraDb10g_home1→Configuration and Migration Tools→Microsoft ODBC Administrator,选择 系统dsn 选项卡,添加 Oracle in OraClient10g_home1。

Data Source Name: OCS               数据源名称,可以随便取

TNS Service Name: ocs                 TNS服务名,这个是根据我之前装(Oracle9i精简客户端时候配置的tnsnames.ora                                                                                C:/Oracle/ora90/network/ADMIN/)

UserID:ods30远程数据库登陆名

 

然后Test Connection输入密码后,出现了 unable to connect sqlstate=s1000 错误


ORA-12705:Cannot access NLS data files or invalied environments specified

 

以及

 

无法加载oracle in oradb10g_home2 odbc驱动程序的安装例程,因为存在系统错误代码998

(环境变量PATH上添加 :E:/oracle/product/10.2.0/client_1/;)

 

在网上搜到了 Windows XP Oracle and ODBC Configuration文章,分析是因为以前安装过Oracle9i精简客户端,现在安装的Oracle 10.2客户端,在配置ODBC的时候,不能依照C:/Oracle/ora90/network/ADMIN/tnsnames.ora来,而是要copy 配置文件tnsnames.ora在Oracle 10.2的安装目录下E:/oracle/product/10.2.0/client_1。

并且要修改注册表信息:(参考链接:http://topic.csdn.net/u/20081106/13/df67a576-03eb-4aad-9e2a-d6e837e00d75.html)

如果是Windows平台,注册表里 /HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE 查找键 NLS_LANG,这个键由Oracle标准客户端安装创建, 值是 NA 。这个导致了 ORA-12705错误。解决方法就是修改NA为SIMPLIFIED CHINESE_CHINA.ZHS16GBK。

 

 

然后再Test Connection, 出现Connection successful!  OK,ODBC数据源配置成功。

 

3.ODBC配置完,然后就是打开PD工具,配置相应数据库连接,并反向生成相应的数据模型了。

 

打开PowerDesigner,Database->configure connections,若上面配置成功,则会在ODBC Machine Data Sources选项卡中出现相应的数据源。

连接数据库,Database->connect ,选择ODBC machine data source,选择刚配置的OCS(Oracle in OraClient 10g_home1) ,保证数据库登陆名和密码正确。应该就可以正常连接了。

 

接下来就是从数据库中导出数据库表反向生成相应的数据模型了:Database->Reverse Engineer Database ,选择Using a data source:OCS(Oracle in OraClient 10g_home1)  就可以生成数据库中对应的数据模型了。

 

若出现unable to list users错误,则可能是因为在新建物理数据模型是没有选择正确的DBMS,解决办法是

Database->Change Current DBMS->Oracle Version 10g(我这里连接的远程数据库版本是 Oracle 10g,这里根据自己连接到数据库类型和版本选择相应的ok了)