Oracle Select into 用Sql server替换

Posted 名扬博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle Select into 用Sql server替换相关的知识,希望对你有一定的参考价值。

--Oracle:
DECLARE n_count int;
begin
  Select count(*) into n_count from  from M_Test where ENTITYLSH = 1;
  dbms_output.put_line(n_count);
 end;
 







--sql server:
declare @is_exist_alert3 int;
Select @is_exist_alert3=count(*) from M_Test where ENTITYLSH = 1;
print(@is_exist_alert3);

以上单从表达意思上更改,还有其他差别

触发器中使用时所遇到的区别

--oracle
CREATE OR REPLACE TRIGGER TR_INST_ALARM
    BEFORE INSERT ON M_ALARM
    FOR EACH ROW
BEGIN
    select ENTITY_SEQ.NEXTVAL into :new.ENTITYLSH from dual;
    select ‘A_‘ || trim(to_char(:new.ENTITYLSH, ‘00000000‘)) into                            :new.ALARMINDEX from dual;
END;
--ENTITY_SEQ.NEXTVAL取序列下一个
--第一个select语句意思是取序列下一个值赋值给系统表(new)中的ENTITYLSH字段
--第二个select语句意思是修改系统表(new)中的ENTITYLSH字段的标示方法并插入
--new相当于插入表,是系统维护的与你触发此触发器的插入语句中的表结构一样



--Sql server
CREATE TRIGGER TR_INST_ALARM
ON M_ALARM
instead of insert
AS
BEGIN
DECLARE @index VARCHAR(20),@Orderindex VARCHAR(20);
select @index=next value for ENTITY_SEQ;
select @Orderindex= ‘A_‘+rtrim(ltrim(right(cast(‘00000000‘+rtrim(cast(@index as int)) as varchar(20)),10)))
INSERT INTO M_ALARM select @index
           ,@Orderindex
           ,ALARMDEPARTMENT
           ,TYPEMETHODINDEX
           ,ALARMPHENOMENON
           ,ENTITYTYPE from Inserted ;	
END;
--意思与上边一样,
--insert类似于oracle中的new

  

以上是关于Oracle Select into 用Sql server替换的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中insert into select和select into的区别

请问两个oracle数据库,用insert into 学生 select * from 学生 @dblink。发现学生表里面的有一个字段。

Oracle PL/SQL SELECT INTO 子句认为它需要另一个 INTO

oracle 中 merge into 在动态sql 中怎么用

oracle 中SQL 语句开发语法 SELECT INTO含义

如何在 Oracle PL SQL 中将 INTO 与 SELECT AS 一起使用?