Oracle的SQL脚本如何用 MS-SQL Server 的标准语句描述??

时间:2023-02-04 14:11:00
1  where A.fieldindex = B.fieldindex(+)   oracle的这个条件语句如何用 MS-SQL 的SQL脚本描述

2  create sequence C;
create or replace procedure D
( faxtype out numeric     )
as
begin
select C.nextval into faxtype from dual;
end D;

用 MS-SQL Server 的SQL脚本如何描述??   另外  dual  是什么意思???

5 个解决方案

#1


sf

#2


#3


在线等,大家帮助看看了,谢谢

#4


1  where A.fieldindex = B.fieldindex(+)   oracle的这个条件语句如何用 MS-SQL 的SQL脚本描述
------------------------------------------------------------------------------------------------
from
    A
left join
    B
on
    A.fieldindex = B.fieldindex



2  create sequence C;
create or replace procedure D
( faxtype out numeric     )
as
begin
select C.nextval into faxtype from dual;
end D;

用 MS-SQL Server 的SQL脚本如何描述??   另外  dual  是什么意思???
------------------------------------------------------------------------------------------------
SQL Server中没有Oracle中序列这个对象,通过为列指定IDENTITY()属性实现自动递增。
方式如下:

create table tname(
ID   int  identity(1,1),
name varchar(10))

插入数据时,不需要显式的指定自增列的值,SQL Server会自动把递增值存放在该列中:
insert into tname(name) values('xxxx')

select * from tname

ID  name 
--  -----
1   xxxx



BTW:
因为Oracle要求select语句中必须有from子句,dual主要用于在select操作并非从表中提取数据时,替代from后的表名

#5


谢谢 libin_ftsafe(子陌红尘) 

问题2 如何用 MS-SQL Server 的存储过程 描述 ?
我个人对问题2存储过程的理解是:创建 序列C 、存储D。其中,把序列C生成的数据赋值给存储过程D的参数 faxtyep,即 faxtype = C.nextval。 在这个存储过程中  out  是 什么意思?
如果存储过程表达的是上述意思的话,为什么 程序 需要 通过 序列C 给 过程D赋值呢? 

oracle  创建 存储过程时,参数 "out","in"表示的什么意思?我看了他们解释,还是似懂非懂
++++++++++++++++++++++++++++++++++++++
摘录
++++++++++++++++++++++++++++++++++++++
 IN     当过程被调用时,实参的值将传入该过程。在该过程内部,形参类似P L / S Q L使用的常
数,即该值具有只读属性不能对其修改。当该过程结束时,控制将返回到调用环境,这
时,对应的实参没有改变。

 OUT   当过程被调用时,实参具有的任何值将被忽略不计。在该过程内部,形参的作用类似没
有初始化的P L / S Q L变量,其值为空( N U L L)。该变量具有读写属性。当该过程结束时,
控制将返回调用环境,形参的内容将赋予对应的实参。(在O r a c l e 8 i中,该操作可由
N O C O P Y变更。有关N O C O P Y的详细内容,请看本章“按引用和按值传递参数”一节。)

IN OUT 当该模式是模式IN 和O U T的组合。当调用过程时,实参的值将被传递到该过程中。在该
过程内部,形参相当于初始化的变量,并具有读写属性。当该过程结束时,控制将返回
到调用环境中,形参的内容将赋予实参(在O r a c l e 8 i中与参数N O C O P Y有关)。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#1


sf

#2


#3


在线等,大家帮助看看了,谢谢

#4


1  where A.fieldindex = B.fieldindex(+)   oracle的这个条件语句如何用 MS-SQL 的SQL脚本描述
------------------------------------------------------------------------------------------------
from
    A
left join
    B
on
    A.fieldindex = B.fieldindex



2  create sequence C;
create or replace procedure D
( faxtype out numeric     )
as
begin
select C.nextval into faxtype from dual;
end D;

用 MS-SQL Server 的SQL脚本如何描述??   另外  dual  是什么意思???
------------------------------------------------------------------------------------------------
SQL Server中没有Oracle中序列这个对象,通过为列指定IDENTITY()属性实现自动递增。
方式如下:

create table tname(
ID   int  identity(1,1),
name varchar(10))

插入数据时,不需要显式的指定自增列的值,SQL Server会自动把递增值存放在该列中:
insert into tname(name) values('xxxx')

select * from tname

ID  name 
--  -----
1   xxxx



BTW:
因为Oracle要求select语句中必须有from子句,dual主要用于在select操作并非从表中提取数据时,替代from后的表名

#5


谢谢 libin_ftsafe(子陌红尘) 

问题2 如何用 MS-SQL Server 的存储过程 描述 ?
我个人对问题2存储过程的理解是:创建 序列C 、存储D。其中,把序列C生成的数据赋值给存储过程D的参数 faxtyep,即 faxtype = C.nextval。 在这个存储过程中  out  是 什么意思?
如果存储过程表达的是上述意思的话,为什么 程序 需要 通过 序列C 给 过程D赋值呢? 

oracle  创建 存储过程时,参数 "out","in"表示的什么意思?我看了他们解释,还是似懂非懂
++++++++++++++++++++++++++++++++++++++
摘录
++++++++++++++++++++++++++++++++++++++
 IN     当过程被调用时,实参的值将传入该过程。在该过程内部,形参类似P L / S Q L使用的常
数,即该值具有只读属性不能对其修改。当该过程结束时,控制将返回到调用环境,这
时,对应的实参没有改变。

 OUT   当过程被调用时,实参具有的任何值将被忽略不计。在该过程内部,形参的作用类似没
有初始化的P L / S Q L变量,其值为空( N U L L)。该变量具有读写属性。当该过程结束时,
控制将返回调用环境,形参的内容将赋予对应的实参。(在O r a c l e 8 i中,该操作可由
N O C O P Y变更。有关N O C O P Y的详细内容,请看本章“按引用和按值传递参数”一节。)

IN OUT 当该模式是模式IN 和O U T的组合。当调用过程时,实参的值将被传递到该过程中。在该
过程内部,形参相当于初始化的变量,并具有读写属性。当该过程结束时,控制将返回
到调用环境中,形参的内容将赋予实参(在O r a c l e 8 i中与参数N O C O P Y有关)。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++