一、免安装Oracle客户端使用PL/SQL连接Oracle
1.利用Oracle 提供的Instant Client Package进行设置
只需要在Oracle下载一个叫Instant Client Package的软件就可以了,这个软件不需要安装,只要解压就可以用了,很方便,就算重装了系统还是可以用的。
下载地址:http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html
下载这个,Instant Client Package - Basic包。然后解压到任意目录,在这个目录下建立NETWORK文件夹,接着再这个文件夹下再建立ADMIN文件夹,然后在ADMIN内建立tnsnames.ora文件,内容如下:
yourDataBaseName =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yourhostIp )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = yourSID )
)
)
例如:
# TNSNAMES.ORA Network Configuration File: C:/oracle/ora90/NETWORK/ADMIN/tnsnames.ora
# Generated by Oracle configuration tools.
LILO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.33.220.157)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = Lilo)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
2.设置PL/SQL
这里根据自己的实际情况配置。接着打开PL/SQL,在perference里面设置OCI Library和Oracle_home,我的设置是OCI Library=c:/oracleclient/oci.dll,Oracle_home=c:/oracleclient。
根据自己的实际情况配置,c:/oracleclient其实就是刚才下载下来的那个包的路径。
配置工作基本完成,再做一个bat 批处理来解决字符集乱码的问题:
写一个批处理plsql. bat放到plsqldeveloper安装目录下,内容如下:
set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
PLSQLDev.exe
这个字符集,指的是服务器端的字符集.
----
常设的字符集:
set nls_lang=simplified chinese_china.zhs16cgb231280
set nls_lang=simplified chinese_china.ZHS16GBK
set nls_lang=simplified chinese_china.Utf8
二、vs(C#)程序连接orcle
1.设置Instant Client Package同上
2、添加注册表内容:(其内容如下,涉及到的文件位置的根据自己需要改)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
"LD_LIBRARY_PATH"="D:\\fox\\instantclient"
"TNS_ADMIN"="D:\\fox\\instantclient"
"NLS_LANG"="AMERICAN_AMERICA.ZHS16GBK"
在桌面新建一个文本文档,把上面的复制进去,并把后缀名 文本文档.txt 改成 文本文档.reg 保存并双击导入注册表
3、添加环境变量
右键单击“我的电脑”-->“属性”-->“高级”-->“环境变量”-->“系统变量”-->选中“Path”-->“编辑”-->在“变量值”原来的数据后添加";D:\fox\instantclient"
4、重启计算机(经测试,按此顺序应该是不必重启的)。
5、查询Oracle数据库部分代码:
当然此代码的运行的基础:在此开发项目中——>添加引用——>.NET选项卡,选取System.Data.OracleClient.dll。
并在此cs开头添加:using System.Data.OracleClient;//引用Oracle连接类
1 private void button8_Click(object sender, System.EventArgs e) 2 { 3 try 4 { 5 OracleConnection cnn=new OracleConnection("Data Source=orcl1;User ID=方案名;Password=密码"); 6 cnn.Open(); 7 OracleDataAdapter myDa =new OracleDataAdapter(); 8 myDa.SelectCommand = new OracleCommand("select * from \"表名\"",cnn); //查询时,表名用双引号括起来 9 DataSet myDs =new DataSet(); 10 myDa.Fill(myDs); 11 this.textBox1.Text=myDs.Tables[0].Rows[0][0].ToString();//得到查询表的第一行第一列 12 } 13 catch(Exception ex) 14 { 15 MessageBox.Show(ex.Message); 16 } 17 }
附:所需软件:
1.Instant Client Package
2.PL/SQL
3.VISUAL STUDIO