网上对于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. Spring事务管理——其他的事务属性

    之前我们说过Spring事务管理中的事务的传播行为的属性.下面我们来说一下它的其他属性. 一.事务的隔离级别 1 .数据库事务并发问题.假设现在有两个事务:Transaction01和Transact ...

  2. 超简单CSS3水平动态进度条+小圆球+背景色渐变

    实现的的效果图如下:效果是动态加载的 代码如下: <!DOCTYPE html> <html lang="en"> <head> <met ...

  3. 基于SSM框架的文件上传

    我整理了一下,这个办法在Servlet上应该也用得上.其实文件上传主要的问题是在于存储路径的拼接. 这里我是把东西存在Web项目的WebContent目录下的 下面贴一些代码 目标应该是这样一个格式 ...

  4. .net core 2.0 登陆权限验证

    首先在Startup的ConfigureServices方法添加一段权限代码 services.AddAuthentication(x=> { x.DefaultAuthenticateSche ...

  5. jQuery遍历-后代

    后代是子.孙.曾孙等等. 通过 jQuery,您能够向下遍历 DOM 树,以查找元素的后代. 向下遍历 DOM 树 下面是两个用于向下遍历 DOM 树的 jQuery 方法: children() f ...

  6. django日期比较

    from django.db import models from django.utils import timezone import datetime # Create your models ...

  7. [2016-09-09]IIS站点发布、同步和备份工具MSdeploy(WebDeploy)介绍

    前提准备:完整安装Microsoft Web Deploy 3 下载页面:WebDeploy_amd64_zh-CN.msi msdeploy 同步站点 命令所在目录C:\Program Files\ ...

  8. jmeter系列------变量的提取

    为了保证脚本的移植性,需要把一些变量提取出来,变量主要分为2类 1.一类是公用变量(全局变量),包括:IP.port.附件路径.CSV路径等,通常是使用用户定义的变量 组件 2.另一类是测试变量一般作 ...

  9. JVM内存模型与GC算法

    1.JVM内存模型 JVM内存模型如上图,需要声明一点,这是<Java虚拟机规范(Java SE 7版)>规定的内容,实际区域由各JVM自己实现,所以可能略有不同.以下对各区域进行简短说明 ...

  10. Begin the new life as a coder

    今天刚刚开通博客园的博客频道,这里将成为自我成长点滴记录的土壤!从今天开始,从这篇博文开始,我将分享自己从一个fresher开始的成长经历.原与广大仁人志士共同在程序中共享快乐!我真是太高兴了 :D