给同为.NET开发者普及一点Oracle数据库经验
前段时间,因为要给自己开发的搜易站内搜索引擎增加Oracle数据库的支持,所以学习了下Oracle的基础知识,发现使用方式跟MYSQL,MSSQL等数据库的思维有很大的不同,总结一下几点不同,希望给初学者一点经验,减少学习的时间:
一,Oracle数据没有数据库的概念
我们使用MSSQL等数据,习惯的思维是先有数据库,然后有表,然后有个用户可以访问这个数据库,但是Oracle是没有数据库这个概念的,他的用户就等于数据库,用户下面有表,这个是很大的不同,这个思维习惯要转变,要不然无法理解。
二,链接字符串和链接方式也有些不同
我摸索了一下,发现Oracle的链接字符串呢,写法有两种:
2.1,简洁模式
Data Source=XE;User ID=user;Password=pwd;
这种字符串很简介,但先需要在tnsnames.ora(在Oracle安装目录搜索一下可以找到)文件里配置如下:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mypc)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
这种链接方式,对本地和远程数据库都有用,假如我有一个远程Oracle数据库,基本信息如下:
IP : 33.33.33.33
端口:1521
服务名orcl
账号:u
密码:p
那么先在tnsnames.ora里增加一段代码如下:
ycdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 33.33.33.33)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
然后,链接字符串就可以写成:
Data Source=ycdb;User ID=u;Password=p;
对比一下,应该很好理解。
2.2,长模式
沿用上面的远程数据库例子,只是这种情况无需配置tnsnames.ora了,链接字符串就如下:
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=33.33.33.33)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));Password=p;User ID=u;
对比一下,其实就是把tnsnames.ora的里代码全部写入到链接字符串了。
至于那种方式比较方便,因人而已吧。我个人比较喜欢第一种写法,简洁,看着舒服。
感觉Oracle也没那么难,当然要精通估计会遇到不少坑。