PowerBuilder(PB)和Oracle分别是前端开发工具和RDBMS的主流产品 PB提供了两种与Oracle连接的接口 PowerSoft内置的数据库接口(Native Database Interface)和ODBC接口
PowerBuilder与Oracle的连接
假定已安装Oracle客户端应用程序 可用Sqlplus或Tnsping等是否能连接到Oracle数据库 确定在SQLNET配置文件中使用的数据库别名(Database Alias 又称服务器名 Server Name) 如有疑问 可在Oracle客户端程序目录下tnsname ora文件中找到 另外保证搜索路径已包括SQLNET应用程序的安装目录(如C:\ORAWIN \BIN)
进入PB的Database Profiles画笔 可看到所有已安装的数据库接口(PB 缺省安装的是Oracle 版的接口 如使用低版本的Oracle 需在安装时指定) 选择 O Oracle 点击 New 按钮 进入Database Profile Setup对话框 在 Connection 页输入下列信息 Profile Name:为该Database Profile起一个有意义的名称 Server:@TNS:ServerName 其中ServerName为上述数据库别名(服务器名) 如@TNS:ORA ;注意 PB 则没有前面那个@TNS:!!!
Login ID:Oracle数据库中实际的用户名 由于PB初次连接到数据库时要自动建立五个系统表(PowerBuilder Catalog Table:PBCATTBL PBCATCOL PBCATEDT PBCATFMT PBCATVLD 存储表的扩展属性) 因此第一个连接到Oracle的用户必须具有建表 给PUBLIC角色授权等权限 例如可用SYSTEM用户进行第一次连接 此后的连接对用户则无特殊要求
Password:该用户的口令
设置上述内容后 即可连上Oracle 为优化数据库连接 还可设置下列选项
Prompt for Database Information:连接时是否提示用户输入用户名和口令
Generate Trace:启动DB跟踪工具 跟踪连接
Thread Safe:开发需要多线程环境支持的分布式应用时 选择该项 缺省为未选 适用于非分布应用
PBDBMS:与存储过程调用方式有关的参数 Oracle为 或更高版本时 清除该选项 此时带IN OUT参数的存储过程可作为数据窗口数据源 版本以下 选择该项 调用PBDBMS Put Line建立存储过程的SQL语句 缺省是选中
Commit on Disconnect:断开连接时 指定提交或回退未提交的事务
Case Sensitive:连接的Oracle服务器是否区分大小写 注意该项选中时 所有主键 包含主键的表名 外键须全为大写字符
PowerBuilder Catalog Tables Owner:指定拥有PB系统表的用户 缺省为 SYSTEM 如果要使用多种显示格式或有效性规则 可以在不同的用户下建立几套系统表
Table Criteria:指定满足哪些条件的表 视图和同义词可在 Select Tables 对话框中显示出来 例如DEV用户下销售子系统的表都以SALE开头 则可以用SALE% DEV TABLE VIEW 指定只显示DEV用户以SALE开头的表和视图
Asynchronous:选择该项 可在一个复杂的SQL语句执行过程中 返回第一行结果前 切换到其他 *** 作
Number of Seconds to Wait:若上一项选中 还可进一步通过该项指定检索数据时 等待数据库响应的时间
Retrieve Blocking Factor:决定数据窗口对象一次可从数据库取出的记录数
Number of SQL Staments Cached:PB可将数据窗口对象产生的SQL语句和嵌入式SQL语句保存在SQL语句缓冲区 该参数指定缓冲区为PB保留的SQL语句数目 该数值可由下式计算 SQLCache=服务器OPEN CURSORS数 (保留的游标数) 本连接预期使用的最大游标数
Disable Bind:指定是否将输入变量与SQL语句绑定 此参数影响PB为数据窗口对象生成INSERT语句的方式
Static Bind:数据窗口对象检索数据前是否检测SELECT语句的合法性
在Syntax页 还可指定日期 时间的格式等 在Preview页可查看Database Profile设置对应的PowerScript写法
Oracle存储过程的使用
归纳起来PB 中调用Oracle存储过程有以下四种方法
方法一 以关键字RPCFUNC声明存储过程
方法二 以DECLARE PROCEDURE语句声明存储过程
方法三 以动态SQL语句实现
方法四 调用函数PBDBMS Put Line
一般情况下 方法一能得到较好的运行效率和更完善的功能 因此推荐使用方法一 但是某些类型的存储过程只能使用其他方法 以下重点介绍方法一和方法二
两种方法比较起来 有以下几点主要区别
)方法一适用于具有IN OUT和IN OUT参数的存储过程 而方法二仅支持IN和OUT参数 不支持IN OUT参数
)方法一对参数的数目无限制 方法二最多支持 个参数
)方法一不支持记录(Recorder)的传递 方法二可传递和接收记录
方法一 *** 作步骤
)在用户对象画笔中创建一个Class Standard类型的 从Transaction继承的用户对象
)在此用户对象中 声明Local External Functions 将存储过程以RPCFUNC关键字声明为外部函数 在Declare Local External Functions对话框中按Procedures按钮选择要调用的后台存储过程 或直接输入类似subroutine TEST(long id ref string name)RPCFUNC ALIAS FOR DEVTEST 的语句 例如DEVTEST的参数为(id IN NUMBER name IN OUT VARCHAR )
)保存该用户对象
)在Application画笔中 进入应用属性对话框 在Variable Types页 将上Transaction用户对象设置为缺省的全局变量SQLCA
)脚本中 编码调用相应的外部函数 形式 SQLCA函数名(参数) 如可用 SQLCATEST(ln id ls name) 调用例子中定义的DEVTEST存储过程 其中ln id ls name为调用参数
方法一注意事项
)由于PB中String类型的数据长度是动态分配的 因此对Ref String类型的参数 每次调用前需要申请足够的空间 例如上例从输入的id值检索name 后台声明的NAME数据类型为VARCHAR ( ) 每次调用SQLCATEST前需要用ls name=SPACE( )置ls name为足够长度的空串
lishixinzhi/Article/program/PB/201311/24641
如何连接oracle数据库及故障解决办法
如何配置才能使客户端连到数据库:
要使一个客户端机器能连接oracle数据库,需要在客户端机器上安装oracle的客户端软件,唯一的例外就是java连接数据库的时候,可以用jdbc thin模式,不用装oracle的客户端软件。加入你在机器上装了oracle数据库,就不需要在单独在该机器上安装oracle客户端了,因为装oracle数据库的时候会自动安装oracle客户端。
用过sql server数据库然后又用oracle的新手可能会有这样的疑问:问什么我用sql server的时候不用装sql server的客户端呢?原因很简单,sql server也是microsoft的,它在 *** 作系统中集成了sql server客户端,如果microsoft与oracle有协议,将oracle客户端也集成到 *** 作系统中,那我们也就不用在客户端机器装oracle客户端软机就可访问数据库了,不过,这好像是不可能实现的事情。
也有的人会问:为什么在sql server中没有侦听端口一说,而在oracle中要配置侦听端口?其实sql server中也有侦听端口,只不过microsoft将侦听端口固定为1433,不允许你随便改动,这样给你一个错觉感觉sql server中没有侦听端口,咳,microsoft把太多的东西都封装到黑盒子里,方便使用的同时也带来的需要副作用。而oracle中的侦听端口直接在配置文件中,允许随便改动,只不过无论怎样改动,要与oracle服务器端设置的侦听端口一致。
好,言归正传,我们如何做才能使客户端机器连接到oracle数据库呢?
A. 安装相关软件
B. 进行适当的配置
A.在适当的位置安装适当的软件:
在客户端机器:
1.在客户端机器上安装ORACLE的Oracle Net通讯软件,它包含在oracle的客户端软件中。
2.正确配置了sqlnetora文件:
NAMESDIRECTORY_PATH = (TNSNAMES, …)
NAMESDEFAULT_DOMAIN=DB_DOMAIN
一般情况下我们不用NAMESDEFAULT_DOMAIN参数。如果想不用该参数用#注释掉或将该参数删除即可,对于NAMESDIRECTORY_PATH参数采用缺省值即可,对于NAMESDEFAULT_DOMAIN参数有时需要注释掉,在下面有详细解释。
3.正确配置了tnsnameora文件
在服务器端机器:
1.保证listener已经启动
2.保证数据库已经启动。
如果数据库没有启动,用:
Oracle 9i:
dos>sqlplus “/ as sysdba”
sqlplus> startup
Oracle 8i:
dos>svrmgrl
svrmgrl>connect internal
svrmgrl>startup
命令启动数据库
如果listener没有启动,用:
lsnrctl start [listener name]
lsnrctl status [listener name]
命令启动listener
B.进行适当的配置
如何正确配置tnsnameora文件:
可以在客户端机器上使用oracle Net Configuration Assistant或oracle Net Manager图形配置工具对客户端进行配置,该配置工具实际上修改tnsnamesora文件。所以我们可以直接修改tnsnamesora文件,下面以直接修改tnsnamesora文件为例:
该文件的位置为: …\network\admin\tnsnamesora (for windows)
…/network/admin/tnsnamesora (for unix)
此处,假设服务器名为testserver,服务名为orcltestservercom,使用的侦听端口为1521,则tnsnamsora文件中的一个test网络服务名(数据库别名)为:
test =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcltestservercom)
)
)
此处的笑脸为)。
红色的内容为需要根据实际情况修改的内容,现解释如下:
PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。
HOST:数据库侦听所在的机器的机器名或IP地址,数据库侦听一般与数据库在同一个机器上,所以当我说数据库侦听所在的机器一般也是指数据库所在的机器。在UNIX或WINDOWS下,可以通过在数据库侦听所在的机器的命令提示符下使用hostname命令得到机器名,或通过ipconfig(for WINDOWS) or ifconfig(for UNIX)命令得到IP地址。需要注意的是,不管用机器名或IP地址,在客户端一定要用ping命令ping通数据库侦听所在的机器的机器名,否则需要在hosts文件中加入数据库侦听所在的机器的机器名的解析。
PORT:数据库侦听正在侦听的端口,可以察看服务器端的listenerora文件或在数据库侦听所在的机器的命令提示符下通过lnsrctl status [listener name]命令察看。此处Port的值一定要与数据库侦听正在侦听的端口一样。
SERVICE_NAME:在服务器端,用system用户登陆后,sqlplus> show parameter service_name命令察看。
如何利用配置的网络服务名连接到数据库:
用sqlplus程序通过test网络服务名进行测试,如sqlplus system/manager@test。如果不能连接到数据库,则在tnsnameora文件中的test网络服务名(net service)后面加上sqlnetora文件中NAMESDEFAULT_DOMAIN参数的值,此处我的参数值为testservercom,将其加到网络服务名后面,修改后的tnsnameora中关于该网络服务名的内容为:
什么情况下会引起oracle自动设置NAMESDEFAULT_DOMAIN参数?
出现这种情况的典型环境为windows的客户端的‘我得电脑à属性à计算机名à更改à其它…à此计算机的主DNS后缀’中设置了‘primary dns suffix’,因为在这种情况下安装客户端时,会在sqlnetora文件中自动设置NAMESDEFAULT_DOMAIN参数,或许当把计算机加入域中安装oracle客户端时也会出现这种情况,有条件的话大家可以试一下。
我在设置oracle的客户端时一般手工修改tnsnamesora文件,但是还有许多人喜欢用图形工具配置,该图形工具最终还是修改tnsnamesora文件,但是它有时会引起其它的问题:
在用oracle的图形配置软件'net assistant'或‘Net Configuration Assistant’配置网络服务名时,假如已经设置了‘primary dns suffix’,但是在图形配置软件中写的网络服务名的名字中没有‘primary dns suffix’,如只是写了test,则图形配置软件会自动在后面加上‘primary dns suffix’,使之变为testtestservercom,并存在tnsnamesora中,而不管你的sqlnetora文件中是否有NAMESDEFAULT_DOMAIN参数。此时,用图形工具进行测试连接是通过的,但是假如此时sqlnetora文件中没有NAMESDEFAULT_DOMAIN参数,则你在使用网络服务名时应该使用在tnsnamesora中的testtestservercom,而不是你在图形配置软件中键入的test。解决的办法为:
<1>可以在sqlnetora文件中设置NAMESDEFAULT_DOMAIN= testservercom,这时你可以用test或testtestservercom连接数据库
<2>在sqlnetora文件中不设置NAMESDEFAULT_DOMAIN参数,在tnsnamesora文件中将testtestservercom中的testservercom去掉,这时你可以用test连接数据库。
关于为什们在网络服务名后面加db_domain参数,需要了解sqlplus连接数据库的原理,我在后面解决12154常见故障中给出了详细的说明。
如果上面的招数还不奏效的话,只好用一下乾坤大挪移了。
将客户端的网络服务名部分
testtestservercom =
(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcltestservercom)
)
)
此处的笑脸为)。
拷贝到服务器的tnsnamesora文件中。然后再服务器端用sqlplus system/manager@testtestservercom连接到数据库。
如果能连接成功,说明你的客户端与服务器端的网络有问题。
如果连接不成功,用前面的部分检查网络服务名部分部分是否正确,如果确信网络服务名部分正确而且所有的客户端都连不上数据库则可能为系统TCP/IP或Oracle系统有问题,建议重新安装数据库。
常见故障解决办法:
TNS-12154 (ORA-12154):TNS:could not resolve service name
该错误表示用于连接的网络服务名在tnsnamesora文件中不存在,如上面的tnsnamesora中的网络服务名只有test,假如用户在连接时用sqlplus system/manager@test1则就会给出TNS-12154错误。
要注意的是,有时即使在tnsnamesora文件中有相应的网络服务名,可是用该网络服务名连接时还会出错,出现这种情况的典型配置如下(在客户端的机器上):
sqlnetora文件:
NAMESDIRECTORY_PATH = (TNSNAMES, …)
NAMESDEFAULT_DOMAIN = servercom
tnsnamesora文件:
test =
(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcltestservercom)
)
)
此处的笑脸为)。
sqlplus运行基本机理:
在用户输入sqlplus system/manager@test后,sqlplus程序会自动到sqlnetora文件中找NAMESDEFAULT_DOMAIN参数,假如该参数存在,则将该参数中的值取出,加到网络服务名的后面,即此例中你的输入由sqlplus system/manager@test自动变为sqlplus system/manager@testservercom ,然后再到tnsnamesora文件中找testservercom网络服务名,这当然找不到了,因为该文件中只有test网络服务名,所以报错。解决的办法就是将sqlnetora文件中的NAMESDEFAULT_DOMAIN参数注释掉即可,如#NAMESDEFAULT_DOMAIN = servercom。假如NAMESDEFAULT_DOMAIN参数不存在,则sqlplus程序会直接到tnsnamesora文件中找test网络服务名,然后取出其中的host,port,tcp,service_name,利用这些信息将连接请求发送到正确的数据库服务器上。
另外原则上tnsnamesora中的配置不区分大小写,但是我的确遇到区分大小写的情况,所以最好将使用的网络服务与tnsnamesora中配置的完全一样。
ORA-12514: TNS:listener could not resolve SERVICE_NAME given in connect Descriptor
该错误表示能在tnsnamesora中找到网络服务名,但是在tnsnamesora中指定的SERVICE_NAME与服务器端的SERVICE_NAME不一致。解决的办法是修改tnsnamesora中的SERVICE_NAME。
易混淆术语介绍:
Db_name:对一个数据库(Oracle database)的唯一标识,该数据库为第一章讲到的Oracle database。这种表示对于单个数据库是足够的,但是随着由多个数据库构成的分布式数据库的普及,这种命令数据库的方法给数据库的管理造成一定的负担,因为各个数据库的名字可能一样,造成管理上的混乱。为了解决这种情况,引入了Db_domain参数,这样在数据库的标识是由Db_name和Db_domain两个参数共同决定的,避免了因为数据库重名而造成管理上的混乱。这类似于互连网上的机器名的管理。我们将Db_name和Db_domain两个参数用’’连接起来,表示一个数据库,并将该数据库的名称称为Global_name,即它扩展了Db_name。Db_name参数只能由字母、数字、’_’、’#’、’$’组成,而且最多8个字符。
Db_domain:定义一个数据库所在的域,该域的命名同互联网的’域’没有任何关系,只是数据库管理员为了更好的管理分布式数据库而根据实际情况决定的。当然为了管理方便,可以将其等于互联网的域。
Global_name:对一个数据库(Oracle database)的唯一标识,oracle建议用此种方法命令数据库。该值是在创建数据库是决定的,缺省值为Db_name Db_domain。在以后对参数文件中Db_name与Db_domain参数的任何修改不影响Global_name的值,如果要修改Global_name,只能用ALTER DATABASE RENAME GLOBAL_NAME TO <db_namedb_domain>命令进行修改,然后修改相应参数。
Service_name:该参数是oracle8i新引进的。在8i以前,我们用SID来表示标识数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。该参数的缺省值为Db_name Db_domain,即等于Global_name。一个数据库可以对应多个Service_name,以便实现更灵活的配置。该参数与SID没有直接关系,即不必Service name 必须与SID一样。
Net service name:网络服务名,又可以称为数据库别名(database alias)。是客户端程序访问数据库时所需要,屏蔽了客户端如何连接到服务器端的细节,实现了数据库的位置透明的特性。
Everyderived表必须有这句话本身的别名
意思是说,每一个派生表必须有它自己的别名
一般在一个多表查询时,就会发生这个错误。
因为,出了子查询结果时,嵌套查询作为一个派生表,检查水平,所以子查询的结果必须有一个别名
更改MySQL语句:selectcount()从(SELECT FROM )为总;
问题是解决了,虽然只是增加了一个没有效果的别名总量,但这个别名是必需的
1、建立数据库
/建立Oracle登录用户(以ZXDIFSRV为例) 即建立空数据库---------------------------------/
xsl>svrmgrl
svrmgrl>connect system/manager
svrmgrl>
drop user ZXDIFSRV cascade;
CREATE USER "ZXDIFSRV" IDENTIFIED BY "ZXDIFSRV" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" PROFILE DEFAULT;
GRANT "CONNECT" TO "ZXDIFSRV";
GRANT "RESOURCE" TO "ZXDIFSRV";
GRANT UNLIMITED TABLESPACE TO "ZXDIFSRV";
ALTER USER "ZXDIFSRV" DEFAULT ROLE ALL;
svrmgrl>commit;
2、数据库启动
//数据库启动,即启动Oracle Service ORCL
xsl>svrmgrl
xsl>connect interal
xsl>startup
xsl>exit
xsl>sqlplus system/manager
xsl>sqlplus zxdifsrv/zxdifsrv
3、建立一个新访问用户
建立一个新的访问用户与密码:
xsl>svrmgrl
svrmgrll>connect system/manager
svrmgrl>
drop user win2001-900 cascade;
CREATE USER "win2001-900" IDENTIFIED BY "123456" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" PROFILE DEFAULT;
GRANT "CONNECT" TO "win2001-900";
GRANT "RESOURCE" TO "win2001-900";
GRANT UNLIMITED TABLESPACE TO "win2001-900";
ALTER USER "win2001-900" DEFAULT ROLE ALL;
svrmgrl>commit;
4、导入导出数据
导入数据时必须先要建立一个空的数据库
直接进入命令行窗口,可以进行导入导出命令
导入xsl>imp zxdifsrv/zxdifsrv 然后按提示写入文件的路径就可以了(输入时提示要输入用户名,此用户名应该为导入文件的原数据库的用户名,而不是导入的数据库的用户名)
导出xsl>exp zxdifsrv/zxdifsrv 然后按提示写入文件的路径就可以了
启动Oracle,首先要启动OracleServiceORCL服务
5、建立一个表
//在Oracle里system数据库建立一个表Customer
xml>svrmgrl
svrmgrl>connect system/manager
svrmgrl>Create table Customer(
CustID integer,
CustName varchar(20),
Memo varchar(200)
);
commit;
//DB2直接ENTER就可以,不用commit;
svrmgrl>exit
语句已执行
建立成功
/
6、导入数据的另外一种方法
注:不管用哪一种数据库导入的方法,都要先建立一个空的数据库
xml>sqlplus zxdifsrv/zxdifsrv
sql>@ (为要导入的数据库的脚本),然后Enter。
7、delete tablename是删除整个表的内容,而drop tablename是删除表。
运行存储过程用“/”结束
8、数据库后安装配置
把D:\Oracle\network\ADMIN里的tnsnamesora配置下,参照原来的配置就可以了
9、sqlplus远程启动
在命令提示符下输入(此方式必须先进行关闭数据库 *** 作,见14、远程关闭(要求远程数据库必须是已启动),在E:\ORACLE\ORA81\SYSMAN\IFILES目录下生成一个DE_TEST_ZCB_8112ORA文件后,再以此文件启动数据库):
SQLPLUS /NOLOG
CONNECT INTERNAL/ORACLE@TESTSOFTONECOM AS SYSDBA
STARTUP FILE=E:\ORACLE\ORA81\SYSMAN\IFILES\DE_TEST_ZCB_8112ORA
此路径为远程启动服务路径,一般情况下在本地安装目录的ORACLE\ORA81\SYSMAN\IFILES下。
INTERNAL 为用户名,ORACLE为密码,TESTSOFTONECOM为远程服务连接串
Sqlplus远程关闭
SQLPLUS /NOLOG
CONNECT INTERNAL/ORACLE@TESTSOFTONECOM AS SYSDBA
SHUTDOWN
INTERNAL 为用户名,ORACLE为密码,TESTSOFTONECOM为远程服务连接串。
10、TNSNAMESORA配置
在安装目录下,如:E:\Oracle\Ora81\network\ADMIN下用写字板或记事本打开TNSNAMEORA文件,文件内容大概如下:
TESTSOFTONECOM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = zcb_8115)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test)
)
)
蓝色部分为安装时录入的信息。
如果该文件没有配置成功,该文件可通过以下步骤进行配置:
1)、在程序菜单中打开NET8 CONFIGURATION ASSISTANT
2)、选择Net8 Configuration Assistant,打开,进入"Net8 Configuration Assistant:欢迎"窗口
2)、选择"本地网络服务名设置",点击"下一步", d出以下窗体;
3)、在"Net8 Configuration Assistant:网络服务名配置"窗口中选择"添加",点击"下一步", d出以下窗体;
4)在"Net8 Configuration Assistant:网络服务名配置,数据库版本"窗口中选择"ORACLE 8I数据库或服务",点击"下一步",d出以下窗体;
5)在"Net8 Configuration Assistant:网络服务名配置,服务名"窗口输入服务名,此服务名跟安装时录入的服务名(SID)相同,录入后,点击"下一步",d出以下窗体;
6)、在"Net8 Configuration Assistant:网络服务名配置,请选择协议"窗口选择"TCP"此时只能选择"TCP",点击"下一步", d出以下窗体;
7)在"Net8 Configuration Assistant:网络服务名配置,TCP/IP协议"窗口输入主机名(如果连接本地数据库,则录入本地计算机名,如果连接远程数据库,则录入远程计算机名),选择默认的"请使用标准端口号1521"(建议最好不要修改),点击"下一步",d出以下窗体;
8)、在"Net8 Configuration Assistant:网络服务名配置,测试"窗口选择"是,进行测试",点击"下一步",d出以下窗体;
9)、当"Net8 Configuration Assistant:网络服务名配置,正在连接"窗口对话框中出现提示"正在连接…测试成功"信息,表示测试通过。此时点击"下一步",进入"Net8 Configuration Assistant: 网络服务名配置,网络服务名"窗口;
10)、在"Net8 Configuration Assistant:网络服务名配置,网络服务名"窗口输入网络服务名,服务名为ORACLE连接串,可任意录入,如:test,点击"下一步",d出以下窗体;
11)、在"Net8 Configuration Assistant:网络服务名配置,是否需要另一个网络服务名"窗口中选择"否",点击"下一步",进入"网络服务名配置完成" 窗口;
12)、在"网络服务名配置完成"窗口中点击"下一步",d出以下窗体;
13)、在"欢迎"窗口点击"完成",退出配置过程
TNSNAMESORA配置完成后,再配置BDE(BDE如何配置略),可通过BDE、PLSQL、SQL EXPLORER和TNSPING命令来测试ORACLE是否连接正确。下面用TNSPING来测试是否连接。
11、配置服务
可以在客户端机器上使用oracle Net Configuration Assistant或oracle Net Manager图形配置工具对客户端进行配置,该配置工具实际上修改tnsnamesora文件。所以我们可以直接修改tnsnamesora文件,下面以直接修改tnsnamesora文件为例:
该文件的位置为: …\network\admin\tnsnamesora (for windows)
…/network/admin/tnsnamesora (for unix)
此处,假设服务器名为testserver,服务名为orcltestservercom,使用的侦听端口为1521,则tnsnamsora文件中的一个test网络服务名(数据库别名)为:
test =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcltestservercom)
)
)
在命令提示符下录入: TNSPING TESTSOFTONECOM
用sqlplus程序通过testtestservercom网络服务名测试,如sqlplus system/manager@testtestservercom
12、易混淆术语介绍
Db_name:对一个数据库(Oracle database)的唯一标识
Db_domain:定义一个数据库所在的域,该域的命名同互联网的’域’没有任何关系,只是数据库管理员为了更好的管理分布式数据库而根据实际情况决定的。
Global_name:对一个数据库(Oracle database)的唯一标识
Service_name:该参数是oracle8i新引进的。
Net service name:网络服务名,又可以称为数据库别名(database alias)。
以上就是关于PB内置Oracle数据库接口的使用方法[1]全部的内容,包括:PB内置Oracle数据库接口的使用方法[1]、Oracle 9i数据库、数据库 Every derived table must have its own alias.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)