文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络技术网络管理在Framework1.0下同时连接SqlServer和Oracle的一些体会
精品推荐
特别推荐
·局域网共享的具体设置
·网络故障诊断排除70例
·宽带拨号连接密码恢复原理
·网管好帮手 最常用的网络命令精萃
·共享:宽带ADSL拨号应用技巧五则
·Windows域信任关系建立全攻略
·IE主页被修改的处理方法
·Windows系统使用的文件及打开方式
·操作电脑最忌的十八个小动作
·ping 命令的用法大全
·网管秘籍:选择安全漏洞扫描工具
·拨号一切正常 但不能上网的解决方法
·一步一步教你保护你的Wi-Fi网络
·25年来最具影响力的十大IT技术组合
·网管员必读的十四大安全策略
·windows启动项目解答
·DEBUG命令大全
·最全面的WindowsXP修改大全
·Wap开发FAQ大全
·windows 2000进程一览
热点TOP10
·最全面的WindowsXP修改大全
·教你学习如何破解XP登陆密码
·操作电脑最忌的十八个小动作
·可以胜任任何一家网吧技术主管的绝招
·网吧组建完全手册
·XYNTService:Windows平台的开源管理工具
·网络速度我做主,限制带宽小技巧
·IE主页被修改的处理方法
·windows启动项目解答
·拨号一切正常 但不能上网的解决方法
·常用的网络测试命令
·腾讯(国外QQ)靓号申请,使用,下载方法
·ping 命令的用法大全
·初级网管或黑客必需撑握的8个DOS命令
·网管必读-十项必备基础
·远程控制篇:通过IP地址得到机器名
·恢复IE为默认浏览器
·添加删除程序打不开或者打开时空白的临时解决方法
·超强windows密码设置及破解
·网吧网管培训视频教程之软件讲解

在Framework1.0下同时连接SqlServer和Oracle的一些体会

日期:2005年10月31日 作者: 查看:[大字体 中字体 小字体]


前一阵子做一个项目,就是把以前SqlServer的数据库移植到Oracle中,要求是在原有代码的基础上修改,使应用程序可以同时运行在两种不同的数据库上。这是我第一次接触用C#操作Oracle。走了不少弯路,现在把它记下来,也希望可以别人少走一些弯路。

1. Oracle中表名,字段名,存储过程名,变量名不能超过30个字符串长度。

2. Oracle中不支持Top 语法。使用where rownum < n 代替。但需要注意如果在Top前有排序的操作,则需要先排序在利用rownum取得。

3. Oracle中光标的使用与SqlServer中有挺大差别,主要是在循环控制方面不一致。

4. 在Oracle中如果某列是Date类型,那么它默认的格式是yyyy-MM-dd,如果使用

where colDate = ‘2005-06-08 17:14:57’就会出错,‘2005-06-08’可以。如果此时需要精确比较时间(小时,分,秒),可以采用下列方法:TO_DATE('2005-6-8 17:14:57','yyyy-mm-dd hh24:mi:ss')。由于Oracle和 SQLServer在DateTime上对SQL标准的拓展实现方式不同,因此不能用同一个

SQL实现。

5. Oracle中的TimeStamp(时间戳)与SqlServer中的差别很大。SqlServer中的TimeStamp是二进制格式存储在数据库中,可以将DataSet中的这个字段类型设定为base64Binary类型。Oracle中的TimeStamp是时间格式存储的。因此,无法用同一个DataSet既装载SqlServer的TimeStamp,有装载Oracle的TimeStamp.由于在应用程序中很少用到这个值,因此可以不检索这个字段。

6. Oracle中的TimeStamp不能像SqlServer在传入数据的时候自动填充,可以设定默认值systimestamp来实现类似功能。

7. Oracle中没有Boolean的字段类型,可以用intger或者char代替SqlServer中的bit类型。

8. Oracle中会将””空字符串当多NULL处理,也就是说,当应用程序往数据库中插入一个空字符串时,实际数据库会尝试插入一个NULL。如果这个字段是NOTNULL类型,那么就会出错,这种情况下可以用别的默认值代替空字符串。当从SqlServer导入数据到Oracle的时候,在 NOTNULL列上的空字符串会导致导出操作失败。此时可以在导出向导中手工修改SQL脚本,将空字符串设定成一个特殊值。

9. 在利用OLEDBCommand调用Oracle存储过程的时候应注意,应用程序传入参数与存储过程中的参数是按照顺序匹配而不是名称,这一点是和SqlServer有着本质的不同。在调试的时候如果遇到E_Fail等错误,可以参考下列顺序检查程序。

(1)检查应用程序传入参数个数与存储过程的参数个数是否一致。

(2) 检查应用程序传入参数的顺序是否与存储过程参数的顺序一致,这一点很重要,如果不匹配很容易导致各种看似奇怪的问题。建议对相对简单的存储过程(单表的增删改)写一个自动生成工具来完成此操作。

(3) 检查存储过程是否正确。

10. 使用OleDbDataReader对象需要特别注意。在SqlServer中我们可以在存储过程中利用一句Select语句返回一个DataReader,但是在Oracle中不能这样做,必须用Oracle REF CURSOR 返回查询结果。但此时需要使用OracleCommand.ExecuteReader() 方法,而不能使用OLEDBCommand对象。因此,如果想在Oracle中使用 DataReader,必须使用微软提供的For Oracle Data Provide类包。这个Framework1.0中默认不存在,需要下载,在Framework11.1中默认存在。具体方法参考:

http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconusingadonetproviderstoaccessdata.asp

(出处:清风网络学院






上一篇:婚礼计划书

下一篇:和软驱彻底说拜拜 制作启动U盘及其新用法

在Framework1.0下同时连接SqlServer和Oracle的一些体会 相关文章:
·女性必看!太经典了,我深有体会
·警句格言:关于人生一些经典格言
·不可以不看的一些网站
·XP的一些禁忌 用XP的人一定要看
·让DVD刻录机刻录速度快一些的方法
·网赚研究:由免费QQ所联想的一些知识
·收集一些典型的骗子网站
·局域网连接设备--局域网知识
·如何在Windows Me下设置Internet连接共享
·解决无线网络连接故障的12个方法
在Framework1.0下同时连接SqlServer和Oracle的一些体会 相关软件:
·有关毛泽东的一些问题解答(不完整版)
·Oracle认证考试百宝箱V 2.0
·Vista 远程桌面连接 V6.0 绿色版
·Oracle官方文档CHM合集-Oracle10g错误代码
·CASP.NET以及数据库的一些电子书,初次做种
·星际争霸(StarCraft)V1.08b版 连接官方战网补丁
·一些建国初期的名家作品
·亚洲的戏剧——对一些国家的贫困的研究
·爱情和一些妖精
·电路连接

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot