网上对于SQL数据库的使用比较详细,但是对于Oracle的使用比较少,本文特别适合学过SQL数据库但是工程需要使用Oracle数据的编程人员查看,

时间匆忙,文章可能写得不够详细,希望有人指出错误或者不同见解。

1.VS工作环境的设置
     VS中Oracle的功能在2010左右已经停止的更新,如果需要最新的功能可以去Oracle官网上下载
   ODP.NET的插件,装好之后手动添加两个引用分别为:
    -->using Oracle.DataAccess.Client;
    -->using Oracle.DataAccess.Types;
  由于是Oracle写的有些注释或帮助比较少,可以参考SQL的方法进行学习,对SQL语句的编写需要达到非常熟练的程度,
  不然对程序中出现的bug调试比较困难。一条数据库的命令结尾不应该加上;,会出现意想不到的错误。

2.数据类型的不同
  -->在SQL Serve中数据类型基本和之前的C,C#,C++的数据类型基本一致方便上手,而在oracle数据库之中对于数字类型统一使用numeric来实现。
     -->numeric(n,m) n-m表示整数部分的长度,m代表小数部分

Oracle中的varchar2与sql中varchar使用相同

3.数据库连接字符串
使用SQL连接字符串为
-->Server=服务器地址;Database=数据库名称;User Id=用户名;Password=密码;
Server与Data Source相同,表示要连接数据库实例的名称或者网络
Initial Catalog与Database相同,表示数据库的名称
4.基本操作指令的不同
1.Top n
-->在SQL Serve数据库中取出结果的前n行
-->在Oracle数据库中删除了该指令,可以采用rownum<n+1的形式。结果相同
2.identity(n,m)
-->在SQL Serve中对某一列值自动赋值,n为起始值,m为增量值,这样对主键的设置比较简单。
-->在Oracle数据库中删除了该指令,若想实现上面的效果,通过触发器设置,通用做法如下
-->1.创建一个全新的序列(Sequences) 代码如下
create sequence SEQ_DOWNRZ_ID --创建序列
minvalue 1 --最小值
maxvalue 99999 --最大值
start with 2012 --序列下一个值
increment by 1 --每次递增1
nocache; --不设置缓存区
-->2.创建一个触发器,将序列的值传给数据表中
create or replace trigger TRI_Downrz_ID --创建触发器
before insert on downrz for each row --设置触发器触发条件,当插入数据id为空值时触发
when (new.ID is null)
begin --满足条件时,执行下列语句
select SEQ_downrz_ID.Nextval into:new.id from dual; --将序列的值复制给id
end;
5.ADO的差异
1. 更新,插入,删除,选择操作。对于更新有必要说要下,对于Oracle删除了Bulk类(主要用于大量数据插入到数据库中)
Oracle使用了OracleDataAdapt.Updata(dt),可以将dataTable类型的数据直接更新到数据库中,DT应与数据库的表具有相同的结构。
2.参数化,参数化的目的在于防止漏洞攻击,SQL在sql语句中使用的是@name表示变量名,Oracle则用的是:name表示变量名,实例如下
SQL参数化:string sql = "insert into studentinfo(stuname,stusex) values(@name,@sex);";
SqlParameter[] op = new SqlParameter("@name","liuc"),
Oracle参数化设置:string sql = "insert into studentinfo(stuname,stusex) values(:name,:sex)";
OracleParameter[] op = new OracleParameter(":name","liuc"),

oracle数据库使用心得之与SQL serve数据库的差异的更多相关文章

  1. SQL serve 数据库--视图、事物、分离附加、备份还原

    视图是数据库中的一种虚拟表,与真实的表一样,视图包含一系列带有名称的行和列数据.行和列数据用来自定义视图的查询所引用的表,并且在引用视图时动态生成.  视图只能用来查询,不能增删改:不允许出现重复列 ...

  2. C#连接Sql Serve数据库及增,删,改操作

    一:连接. string sqlconn = "server=主机名;database=数据名;integrated security=true" //integrated sec ...

  3. SQL Serve数据库排序空值null始终前置的方法

    [转:http://blog.knowsky.com/233986.htm] [sqlserver]: sqlserver 认为 null 最小. 升序排列:null 值默认排在最前. 要想排后面,则 ...

  4. sql serve 数据库游标的使用

      什么是游标? 通俗来讲,个人理解,游标是对一个查询结果集,每次取出一条数据进行处理操作.   使用场景: 例如,我们要修改一个表300条数据,且每条数据修改的内容不一样,那么平时用的update ...

  5. 5、SQL Server数据库、T-SQL

    SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...

  6. SQL Server 数据库的安全管理(登录、角色、权限)

    ---数据库的安全管理 --登录:SQL Server数据库服务器登录的身份验证模式:1)Windows身份验证.2)Windows和SQL Server混合验证 --角色:分类:1)服务器角色.服务 ...

  7. SQL Server 数据库项目

    ylbtech-.NET Framework: SQL Server 数据库项目 SQL Server 数据库项目 类型:SQL Server 用于创建 SQL Server 数据库的项目 1. 新建 ...

  8. sql server数据库状态监控

    sql server数据库监控 转自:https://www.cnblogs.com/seusoftware/category/500793.html   6. SQL Server数据库监控 - 如 ...

  9. SQL Server数据库字段类型说明

    SQL Server数据库字段类型说明 目前Sql Server 数据库一共有X个字段类型,大体分为9类,分别是字符串类型.二进制码字符串数据类型.Unincode字符串数据.整数类型.精确数据类型. ...

随机推荐

  1. python的引用计数分析(二)

    python所有对象引用计数被减少1的情况: 一.对象的别名被赋予新的对象; a = 23345455 # 增加了一个引用 b = a # 增加了一个引用 print(sys.getrefcount( ...

  2. Django创建应用、模型、配置后台自动管理

    1.创建应用 python manage.py startapp myblog 2.应用结构 3.创建模型(models.py) from django.db import models # Crea ...

  3. 201671010121 2016-2017-2《java程序设计》第一周学习总结

    之前学了些C语言,学的也不是太懂,还算能读懂一些简答的代码吧,我觉得这就是进步.刚步入大二,在计算机这个专业里不刻苦是不行的.但是,到我拿到Java书的时候,真心是吓住我了,好厚的一本书啊,不过在老师 ...

  4. docfx (一)

    什么是docFX? DocFX 是一个基于.NET的API文档生成器,当前支持 C# 和 VB.它可以通过你的代码中的三斜杠注释生成 API 参考文档.同样也支持你使用 Markdown 文件创建一些 ...

  5. 帆软的报表系统与泛微OA结合起来,这两个软件麦枫提供了经典的服务。

    一.集成配景泛微OA对企业的代价 泛微协同办公计划能向你供给一个协同的.集成的办公情况,使所有的办公职员都在统一且个性化的信息流派中一路事情, 解脱光阴和地区的限定,实现协同事情与知识治理. Eoco ...

  6. 图片懒加载Demo

    相关知识: [js获取元素位置+元素大小]全面总结

  7. 全平台轻量级 Verilog 编译器 & 仿真环境

    一直苦于 modelsim 没有Mac版本,且其体量过大,在学习verilog 时不方便使用. 终于找到一组轻量级且全平台 ( Linux+Windows+macOS ) 的编译仿真工具组. Icar ...

  8. web项目的发布

    1.我们将web项目布署到IIS上之前需要将我们的源码发布,然后再将发布后的代码布署到II上 2.首先在VS上打开我们的应用程序,在WEB层上右键->发布,会弹出一个"发布web&qu ...

  9. UTF-8笔记170330

    unicode 为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言.跨平台进行文本转换.处理的 UTF-8使用可变长度字节来储存 Unicode字符,例如ASCII字母继续使用1字节储 ...

  10. HTML的基本标签及语法

    一.HTML基本标签head部分 HTML文档的基本结构 <!DOCTYPE html> <html> <head> <meta charset=" ...