oracle数据库使用心得之与SQL serve数据库的差异
网上对于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数据库的差异的更多相关文章
- SQL serve 数据库--视图、事物、分离附加、备份还原
视图是数据库中的一种虚拟表,与真实的表一样,视图包含一系列带有名称的行和列数据.行和列数据用来自定义视图的查询所引用的表,并且在引用视图时动态生成. 视图只能用来查询,不能增删改:不允许出现重复列 ...
- C#连接Sql Serve数据库及增,删,改操作
一:连接. string sqlconn = "server=主机名;database=数据名;integrated security=true" //integrated sec ...
- SQL Serve数据库排序空值null始终前置的方法
[转:http://blog.knowsky.com/233986.htm] [sqlserver]: sqlserver 认为 null 最小. 升序排列:null 值默认排在最前. 要想排后面,则 ...
- sql serve 数据库游标的使用
什么是游标? 通俗来讲,个人理解,游标是对一个查询结果集,每次取出一条数据进行处理操作. 使用场景: 例如,我们要修改一个表300条数据,且每条数据修改的内容不一样,那么平时用的update ...
- 5、SQL Server数据库、T-SQL
SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...
- SQL Server 数据库的安全管理(登录、角色、权限)
---数据库的安全管理 --登录:SQL Server数据库服务器登录的身份验证模式:1)Windows身份验证.2)Windows和SQL Server混合验证 --角色:分类:1)服务器角色.服务 ...
- SQL Server 数据库项目
ylbtech-.NET Framework: SQL Server 数据库项目 SQL Server 数据库项目 类型:SQL Server 用于创建 SQL Server 数据库的项目 1. 新建 ...
- sql server数据库状态监控
sql server数据库监控 转自:https://www.cnblogs.com/seusoftware/category/500793.html 6. SQL Server数据库监控 - 如 ...
- SQL Server数据库字段类型说明
SQL Server数据库字段类型说明 目前Sql Server 数据库一共有X个字段类型,大体分为9类,分别是字符串类型.二进制码字符串数据类型.Unincode字符串数据.整数类型.精确数据类型. ...
随机推荐
- 7.21.02 switch语句
switch语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. 语法 switch语法格式如下: switch(expression) { case value : //语句 break ...
- Node.js之操作文件系统(二)
Node.js之操作文件系统(二) 1.创建与读取目录 1.1 创建目录 在fs模块中,可以使用mkdir方法创建目录,该方法的使用方法如下: fs.mkdir(path,[mode],callbca ...
- 【渗透笔记】拿下某小H网的全过程
自从班上A片小王子的7个T资源被封了以后,本小白为造福全班同学,尝试拿下个小H网,先用webrobot搜某些只有小H网才会出现的关键词 本以为直接导出放御剑里跑就行了,然并软.于是用awvs扫了一下, ...
- hdu 3966 Aragorn's Story(树链剖分+树状数组/线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3966 题意: 给出一棵树,并给定各个点权的值,然后有3种操作: I C1 C2 K: 把C1与C2的路 ...
- c++中find函数的用法
find函数主要实现的是在容器内查找指定的元素,并且这个元素必须是基本数据类型的.查找成功返回一个指向指定元素的迭代器,即元素在容器中的下标,查找失败返回end迭代器. 头文件 #include &l ...
- Oracle03——游标、异常、存储过程、存储函数、触发器和Java代码访问Oracle对象
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7476717.html 1.游标(光标)Cursor 在写java程序中有集合的概念,那么 ...
- c语言中的文件格式化读写函数fscanf和fprintf函数
很多时候我们需要写入数据到文件中时都觉得很困扰,因为格式乱七八槽的,可读性太差了,于是我们就想有没有什么函数可以格式化的从文件中输入和输出呢,还真有.下面我将讲解一下fscanf和fprintf的强大 ...
- el-input监听不了回车事件
vue使用element-ui的el-input监听不了回车事件,原因应该是element-ui自身封装了一层input标签之后,把原来的事件隐藏了,所以如下代码运行是无响应的: <el-inp ...
- Linux-chown命令(1)
chown [chang owner]:更改文件的属主,也就是指定文件的拥有者改为另一个指定的用户或组. 命令格式: chown [选项]... [用户][:[组]] 文件... 例子: sudo ...
- [转载]Word直接发布新浪博客(以Word 2013为例)
原文地址:Word直接发布新浪博客(以Word 2013为例)作者:paulke2011 注意:这篇博客直接由Word 2013发出!这虽然也算是一个教程,但更多的是一个试验品. 老早就知道Word有 ...