重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在把Oracle查询结果转换为SQL Server的时候要特别当心一些不容易注意到的问题。
创新互联建站2013年至今,先为久治等服务建站,久治等地企业,进行企业商务咨询服务。为久治企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL.这两种查询语言都对
ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何
对这些扩展进行转化以用在SQL Server环境下。
列的选择
用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUAL.DUAL表由
Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2
(1)类型,有一行值X.
从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。
Oracle下的DUAL查询如下所示:
SELECT
‘x’ FROM dual
而对等的SQL Server查询则是下面这个样子:
SELECT ‘x’
连接
Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ .
Oracle查询如下所示:
Select ‘Name’ || ‘Last Name’
From tableName
对应的SQL Server查询如下所示:
Select ‘Name’ + ‘Last Name’
数字取舍
Oracle数据库内有一个TRUNC函数,该函数返回m位十进制数的n位;如果省略m则n就是0位。m的值可以为负,表示截去小数点左边m位数字。
在SQL Server下可以用Round或者Floor.
以下是Oracle查询:
SELECT
TRUNC(15.79,1) "Truncate" FROM DUAL;
下面是同类查询的SQL Server版本:
SELECT ROUND(15.79, 0) rounded ,
ROUND(15.79, 0,1) truncated
SELECT FLOOR(ROUND(15.79, 0)),
FLOOR(ROUND(15.79, 0,1) )
在把Oracle查询转换为SQL Server的时候要特别当心一些不容易注意到的问题。我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL.这两种查询语言都对
ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何
对这些扩展进行转化以用在SQL Server环境下。
列的选择
用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUAL.DUAL表由
Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2
(1)类型,有一行值X.
从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。
Oracle下的DUAL查询如下所示:
SELECT
‘x’ FROM dual
而对等的SQL Server查询则是下面这个样子:
SELECT ‘x’
连接
Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ .
Oracle查询如下所示:
Select ‘Name’ || ‘Last Name’
From tableName
对应的SQL Server查询如下所示:
Select ‘Name’ + ‘Last Name’
在以SYSDBA身份登陆时可以修改其他用户的密码,比如:用户已更改。在以SYSDBA身份登陆时可以修改其他用户的密码,比如:用户已更改。一般来说,oracle数据库安装后,里面有很多个默认账号和密码,比较常用的是:账号:scott
密码:tiger
账号:system
密码:manager
账号:sys
密码:任意字符。当我们想创建一个账号时,可以使用sys登录sysdba后,创建用户(需要授权),代码如下我们一般使用的是用scott登录sysdba,这时候有可能出现账户未解锁的状态,这时候可以用来解锁账户。解锁之后可能会要求你改密码:可以用
把查出来的数据做一个表g,a.rsc_status_cd as rsc_status
使用update g set g.rsc_status = '43'。
使用b表数据更新a表,那么where条件是什么,也就是说,更新a表中哪些数据,用b表中的哪些数据更新,二者的关系是什么。从你的语句中我看不出b表和a表的关联。
找到关联条件后,通过关联条件查出的b表数据是否唯一,如果不唯一,还是会出现“返回值多于一行”的错误。
逻辑结构
它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。
总之,逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。
以上内容参考:百度百科-Oracle数据库
需要用update语句来进行修改。
update语句基本语法:
update 表名 set 字段='值' where 条件;
如test表中有如下数据:
现在要将ID=3的这条数据的NAME改成badkano,可用如下语句:
update test set NAME='badkano' where ID=3;
commit;
运行后的结果:
说明:
update语句执行后,必须commit来提交,否则只在当前session中有效。
查询到的结果可用for update来修改。
如:
select * from emp;
查询到以下数据:
此时语句可改写:
select * from emp for update;
然后点击如图图标:
此时可以修改表中内容,如将empno为8888的改成4444。按图中所示进行操作即可。