为什么必须安装Oracle客户端呢?

时间:2020-12-01 05:54:50
开发一个C/S结构程序,大小还不到1M,有一些读取Oracle数据库的操作。 
然后安装到客户机器上,却必须要安装那么大的Oracle客户端或者简化版的Oracle客户端,还要配置一些服务,然后程序才能连接上Oracle数据库。 
这样导致一个程序的安装和配置相对于用户来说太复杂了,一般用户自己根本配置不明白。 

但是开发Java程序的时候,只需要几个Oracle的驱动包文件(.jar)就可以了,并不需要安装Oracle客户端,也不需要配置服务什么的。 

我对.net接触不太多,就是想问问,就没有办法不安装Oracle客户端吗?
如果数据库是SQLSERVER 的话,不用安装客户端。
如果是Mysql的话,安装一个不大(4.12M)的驱动也就可以了。
唯独Oracle,难道就没有小的驱动安装或者驱动文件可以使用吗?

这个问题我还有一个帖子,有人进行了一些讨论,大家也可以去看看
http://topic.csdn.net/u/20090311/14/bdbb2f4f-cbe8-4b41-989d-56b9c4db336f.html

20 个解决方案

#1


引用楼主 wts 的帖子:
开发一个C/S结构程序,大小还不到1M,有一些读取Oracle数据库的操作。 
然后安装到客户机器上,却必须要安装那么大的Oracle客户端或者简化版的Oracle客户端,还要配置一些服务,然后程序才能连接上Oracle数据库。 
这样导致一个程序的安装和配置相对于用户来说太复杂了,一般用户自己根本配置不明白。 

但是开发Java程序的时候,只需要几个Oracle的驱动包文件(.jar)就可以了,并不需要安装Oracle客户端,也不需要配置服务什…



用plsql、toad、sqlloader等等工具就可以取代oracle客户端了吧!平常DBA不都用这些工具吗?

#2


仅是连接数据库,我认为是不需要安装oracle的,这就需要程序在打包时,把oracle相关的动态链接库文件一起打包进去

#3


“用plsql、toad、sqlloader等等工具就可以取代oracle客户端了吧!平常DBA不都用这些工具吗?”

如果没安装Oracle客户端,plsql,toad都是连不上数据库的。
而我正想知道是否有好的解决方案,并且不必安装Oracle客户端。

#4


引用 2 楼 hdhai9451 的回复:
仅是连接数据库,我认为是不需要安装oracle的,这就需要程序在打包时,把oracle相关的动态链接库文件一起打包进去 


不安装的话,现在是连不上Oracle的。
打包相关Dll,都哪些是相关的啊?我总不能全部都打进去,或者挨个排除,太费劲了。没有好的解决方案吗?

#5


你看到这个问题大致就解决了
http://topic.csdn.net/u/20090308/12/4174a772-360f-41a8-8220-15ccf31883c7.html?seed=1114660684

最终提炼的文件应该还能少,不到10M的样子

#6


这个Oracle真是愁人兼霸道,为什么他就不直接提供一个最小的驱动包呢?
害大家这么费事。

#7


引用 5 楼 lpc19598188 的回复:
你看到这个问题大致就解决了 
http://topic.csdn.net/u/20090308/12/4174a772-360f-41a8-8220-15ccf31883c7.html?seed=1114660684 

最终提炼的文件应该还能少,不到10M的样子

你最终抽取好的,发布了没?或者从哪能下载到?或者有安装包没?
谢谢,辛苦

#8


方便的话,麻烦发我邮箱:testman@163.com
谢谢

#9


Oracle提供了一个精简版的客户端:“Oracle ODBC Instant Client for Windows ”,大概100多m,

当然也可以用微软ODBC提供的oracle驱动,但性能和效果都不太理想。

如果是windows平台的客户端程序,建议打包“Oracle ODBC Instant Client for Windows ”

#10


看了下,五楼的方法好,帮顶一下。

#11


oracle本身提供一个瘦客户端,你可以把这个瘦客户端直接打包到安装文件中.直接安装就可以使用了!

#12


引用 11 楼 rexyudl 的回复:
oracle本身提供一个瘦客户端,你可以把这个瘦客户端直接打包到安装文件中.直接安装就可以使用了!


想想我的程序才1M,却要打包那么大的一个客户端,总感觉很是荒谬

#13


没有办法要装的

#14


引用 12 楼 wts 的回复:
引用 11 楼 rexyudl 的回复:
oracle本身提供一个瘦客户端,你可以把这个瘦客户端直接打包到安装文件中.直接安装就可以使用了! 
 

想想我的程序才1M,却要打包那么大的一个客户端,总感觉很是荒谬 
是有简易客户端的,很小的。10多M。自己可以网上搜下。
为什么装客户端?打个比方:装好了操作系统为什么还要装驱动程序呢?虽然不是很恰当,但也是那个道理哈

#15


没错,确认是那个道理。
但我现在希望看到的是Oracle驱动程序而不是庞大的客户端

#16


连接oracle必须有oracle的客户端,网上有精简的,大概10m左右,google一下就可以。

#17


原来做PB的时候用的:
方法1   copy文件方法 
具体如下: 
(1).先在某机器上安装好客户端(最好安装在c盘); 
(2).复制此客户端oracle目录下的所有文件作为独立的oracle安装文件; 
(3).搜索注册表,找到   HKey_Local_machine\software\oracle,把此项目及分支全部导出。 
(4).打包好你的pb程序,并独立打包好oracle客户端和注册表导出文件。 
(5).到干净的客户端,解开两个包,导入注册表文件,然后加入路径支持: 
    path=%path%; "c:\Ora817\bin " 
此方法测试通过,并实施好多项目中. 
方法2,前两天刚测试成功的,使用jdbc 
SQLCA.DBMS       =       "JDBC "       
    SQLCA.LogPass       =       "pwd "     
    SQLCA.LogId       =       "user "       
    SQLCA.AutoCommit       =       False       
    SQLCA.DBParm   =   "Driver= 'oracle.jdbc.driver.OracleDriver ',URL= 'jdbc:oracle:thin:@10.0.0.14:1521:orclsc ' "; 
    connect   using   sqlca; 
把class111.zip放到C:\Program   Files\Sybase\Shared\PowerBuilder\下面, 
并他其填加到classpath路径里面,还有,确保rt.jar也在classpath中. 
可参见http://www.itlove.net/Article/2/630/2005/20051122111300.html 

帖子见http://community.csdn.net/Expert/topic/5335/5335680.xml?temp=.6083643 


http://topic.csdn.net/u/20070206/11/05EDC484-4DC3-4D75-A373-E443C6702B56.html

#18


哈,这也行,真要.net下可行,就太好了。
谢谢楼上
可是
http://www.itlove.net/Article/2/630/2005/20051122111300.html 
以及
http://community.csdn.net/Expert/topic/5335/5335680.xml?temp=.6083643
都无法打开了,你那里有备份吗?

#19


我就是不想用那种所谓绿色版或者简化版的,因为事实已经证明确实会与已经安装的Oracle客户端有冲突。
因为客户机器上有的业务软件因为需要所以已经安装Oracle客户端了。
结果安装了简化版的之后,所有程序都访问不了Oracle了。

#20


引用 17 楼 jdsnhan 的回复:
原来做PB的时候用的: 
方法1  copy文件方法 
具体如下: 
(1).先在某机器上安装好客户端(最好安装在c盘); 
(2).复制此客户端oracle目录下的所有文件作为独立的oracle安装文件; 
(3).搜索注册表,找到  HKey_Local_machine\software\oracle,把此项目及分支全部导出。 
(4).打包好你的pb程序,并独立打包好oracle客户端和注册表导出文件。 
(5).到干净的客户端,解开两个包,导入注册表文件,然后加入路径支持: 
    …


把class111.zip放到C:\Program  Files\Sybase\Shared\PowerBuilder\下面
这个是为什么呢?
针对VB或者.net这些语言,应该放哪,怎么引用呢?

#1


引用楼主 wts 的帖子:
开发一个C/S结构程序,大小还不到1M,有一些读取Oracle数据库的操作。 
然后安装到客户机器上,却必须要安装那么大的Oracle客户端或者简化版的Oracle客户端,还要配置一些服务,然后程序才能连接上Oracle数据库。 
这样导致一个程序的安装和配置相对于用户来说太复杂了,一般用户自己根本配置不明白。 

但是开发Java程序的时候,只需要几个Oracle的驱动包文件(.jar)就可以了,并不需要安装Oracle客户端,也不需要配置服务什…



用plsql、toad、sqlloader等等工具就可以取代oracle客户端了吧!平常DBA不都用这些工具吗?

#2


仅是连接数据库,我认为是不需要安装oracle的,这就需要程序在打包时,把oracle相关的动态链接库文件一起打包进去

#3


“用plsql、toad、sqlloader等等工具就可以取代oracle客户端了吧!平常DBA不都用这些工具吗?”

如果没安装Oracle客户端,plsql,toad都是连不上数据库的。
而我正想知道是否有好的解决方案,并且不必安装Oracle客户端。

#4


引用 2 楼 hdhai9451 的回复:
仅是连接数据库,我认为是不需要安装oracle的,这就需要程序在打包时,把oracle相关的动态链接库文件一起打包进去 


不安装的话,现在是连不上Oracle的。
打包相关Dll,都哪些是相关的啊?我总不能全部都打进去,或者挨个排除,太费劲了。没有好的解决方案吗?

#5


你看到这个问题大致就解决了
http://topic.csdn.net/u/20090308/12/4174a772-360f-41a8-8220-15ccf31883c7.html?seed=1114660684

最终提炼的文件应该还能少,不到10M的样子

#6


这个Oracle真是愁人兼霸道,为什么他就不直接提供一个最小的驱动包呢?
害大家这么费事。

#7


引用 5 楼 lpc19598188 的回复:
你看到这个问题大致就解决了 
http://topic.csdn.net/u/20090308/12/4174a772-360f-41a8-8220-15ccf31883c7.html?seed=1114660684 

最终提炼的文件应该还能少,不到10M的样子

你最终抽取好的,发布了没?或者从哪能下载到?或者有安装包没?
谢谢,辛苦

#8


方便的话,麻烦发我邮箱:testman@163.com
谢谢

#9


Oracle提供了一个精简版的客户端:“Oracle ODBC Instant Client for Windows ”,大概100多m,

当然也可以用微软ODBC提供的oracle驱动,但性能和效果都不太理想。

如果是windows平台的客户端程序,建议打包“Oracle ODBC Instant Client for Windows ”

#10


看了下,五楼的方法好,帮顶一下。

#11


oracle本身提供一个瘦客户端,你可以把这个瘦客户端直接打包到安装文件中.直接安装就可以使用了!

#12


引用 11 楼 rexyudl 的回复:
oracle本身提供一个瘦客户端,你可以把这个瘦客户端直接打包到安装文件中.直接安装就可以使用了!


想想我的程序才1M,却要打包那么大的一个客户端,总感觉很是荒谬

#13


没有办法要装的

#14


引用 12 楼 wts 的回复:
引用 11 楼 rexyudl 的回复:
oracle本身提供一个瘦客户端,你可以把这个瘦客户端直接打包到安装文件中.直接安装就可以使用了! 
 

想想我的程序才1M,却要打包那么大的一个客户端,总感觉很是荒谬 
是有简易客户端的,很小的。10多M。自己可以网上搜下。
为什么装客户端?打个比方:装好了操作系统为什么还要装驱动程序呢?虽然不是很恰当,但也是那个道理哈

#15


没错,确认是那个道理。
但我现在希望看到的是Oracle驱动程序而不是庞大的客户端

#16


连接oracle必须有oracle的客户端,网上有精简的,大概10m左右,google一下就可以。

#17


原来做PB的时候用的:
方法1   copy文件方法 
具体如下: 
(1).先在某机器上安装好客户端(最好安装在c盘); 
(2).复制此客户端oracle目录下的所有文件作为独立的oracle安装文件; 
(3).搜索注册表,找到   HKey_Local_machine\software\oracle,把此项目及分支全部导出。 
(4).打包好你的pb程序,并独立打包好oracle客户端和注册表导出文件。 
(5).到干净的客户端,解开两个包,导入注册表文件,然后加入路径支持: 
    path=%path%; "c:\Ora817\bin " 
此方法测试通过,并实施好多项目中. 
方法2,前两天刚测试成功的,使用jdbc 
SQLCA.DBMS       =       "JDBC "       
    SQLCA.LogPass       =       "pwd "     
    SQLCA.LogId       =       "user "       
    SQLCA.AutoCommit       =       False       
    SQLCA.DBParm   =   "Driver= 'oracle.jdbc.driver.OracleDriver ',URL= 'jdbc:oracle:thin:@10.0.0.14:1521:orclsc ' "; 
    connect   using   sqlca; 
把class111.zip放到C:\Program   Files\Sybase\Shared\PowerBuilder\下面, 
并他其填加到classpath路径里面,还有,确保rt.jar也在classpath中. 
可参见http://www.itlove.net/Article/2/630/2005/20051122111300.html 

帖子见http://community.csdn.net/Expert/topic/5335/5335680.xml?temp=.6083643 


http://topic.csdn.net/u/20070206/11/05EDC484-4DC3-4D75-A373-E443C6702B56.html

#18


哈,这也行,真要.net下可行,就太好了。
谢谢楼上
可是
http://www.itlove.net/Article/2/630/2005/20051122111300.html 
以及
http://community.csdn.net/Expert/topic/5335/5335680.xml?temp=.6083643
都无法打开了,你那里有备份吗?

#19


我就是不想用那种所谓绿色版或者简化版的,因为事实已经证明确实会与已经安装的Oracle客户端有冲突。
因为客户机器上有的业务软件因为需要所以已经安装Oracle客户端了。
结果安装了简化版的之后,所有程序都访问不了Oracle了。

#20


引用 17 楼 jdsnhan 的回复:
原来做PB的时候用的: 
方法1  copy文件方法 
具体如下: 
(1).先在某机器上安装好客户端(最好安装在c盘); 
(2).复制此客户端oracle目录下的所有文件作为独立的oracle安装文件; 
(3).搜索注册表,找到  HKey_Local_machine\software\oracle,把此项目及分支全部导出。 
(4).打包好你的pb程序,并独立打包好oracle客户端和注册表导出文件。 
(5).到干净的客户端,解开两个包,导入注册表文件,然后加入路径支持: 
    …


把class111.zip放到C:\Program  Files\Sybase\Shared\PowerBuilder\下面
这个是为什么呢?
针对VB或者.net这些语言,应该放哪,怎么引用呢?

#21