今天帮人把一个SQL SERVER的简单存储过程改成了ORACEL的存储过程
--以前这个存储过程是SQL Server的,我想把它用oracle语句来,但是编译不过,有错误,请大家指教一下,
create or replace p_GetPrenDataOfAtt(yymmdd1 date,empid1 number)
as
RHour11 float;
RHour21 float;
PreWTID varchar2(20);
PreLastOut number;
begin
select PreLastOUT:=case
when IntGO5>-1 and IntOUT5>-1 then IntOUT5;
when IntGO4>-1 and IntOUT4>-1 then IntOUT4;
when IntGO3>-1 and IntOUT3>-1 then IntOUT3;
when IntGO2>-1 and IntOUT2>-1 then IntOUT2;
when IntGO1>-1 and IntOUT1>-1 then IntOUT1;
end case,
RHour11: = RHour1, RHour21: = RHour2 , PreWTID:= WTID
from AttDayData where YYMMDD =YYMMDD1 - 1 and EmpID=EmpID1;
if PreLastOUT is null then
PreLastOUT: = -1;
end if;
if PreLastOUT >1440 then
PreLastOUT: = PreLastOUT - 1440;
else
PreLastOUT:= 0 ;
end if ;
if RHour11>0 or RHour21>0 or PreWTID is null then
select PreWTID:=a.WTID from
(select row_number()over(order by YYMMDD DESC) as "row",wtid from AttDayData where YYMMDD < yymmdd1 -1 and EmpID =EmpID1;)a
where a.row=1;
end if;
end ;
--------------------------
create or replace procedure p_GetPrenDataOfAtt(yymmdd1 date,empid1 number)
as
RHour11 float;
RHour21 float;
PreWTID varchar2(20);
PreLastOut number;
begin
select case
when IntGO5>-1 and IntOUT5>-1 then IntOUT5
when IntGO4>-1 and IntOUT4>-1 then IntOUT4
when IntGO3>-1 and IntOUT3>-1 then IntOUT3
when IntGO2>-1 and IntOUT2>-1 then IntOUT2
when IntGO1>-1 and IntOUT1>-1 then IntOUT1
end case,
--RHour11: = RHour1, RHour21: = RHour2 , PreWTID:= WTID
RHour1,RHour2,WTID into PreLastOUT,RHour11,RHour21,PreWTID
from AttDayData where YYMMDD =YYMMDD1 - 1 and EmpID=EmpID1;
if PreLastOUT is null then
PreLastOUT:= -1;
end if;
if PreLastOUT >1440 then
PreLastOUT:= PreLastOUT - 1440;
else
PreLastOUT:= 0 ;
end if ;
if RHour11>0 or RHour21>0 or PreWTID is null then
-- select PreWTID:=a.WTID from
select a.WTID into PreWTID from
(select row_number()over(order by YYMMDD DESC) as "row",wtid from AttDayData where YYMMDD < yymmdd1 -1 and EmpID =EmpID1) a
where rownum=1;
end if;
end ;
分享到:
相关推荐
可以将SQL Server存储过程转为oracle存储过程的工具
oracle到sqlserver 存储过程语法转换,希望对大家有帮助啊! 最近刚把oracle的数据库移植到sqlserver!
SQL_Server_vs_Oracle_存储过程语法转换
SQL_Server_vs_Oracle_存储过程语法转换,10积分买的,贡献出来,希望对大家有用,SQL_Server_vs_Oracle_存储过程语法转换,10积分买的,贡献出来,希望对大家有用
SQLServer2000到Oracle11G存储过程转换技术探究.pdf
支持oracle,sqlsever,access等数据库之间数据格式转换:即Oracle转SQL Server;SQL Server转Oracle;Oracle转Access;Access转Oracle;SQL Server转Access, Access转SQL Server等。可以实现数据库的移植,异构数据库...
能快速把Sqlserver数据库转换到Oracle数据库的一款小工具 目前该工具需安装Oracle客户端,以后再开发无需客户端的版本。 使用方法还是很简单的,目前暂时不支持函数和存储过程的转换 未注册版本限制5个表,...
创建sqlserver存储过程给第三方公司调用获取对应检查报告记录的需求,如果是oracle数据库的话,其实也可以参考oracle的语法将本文转换下,因为本文的原生脚本就是来自于oracle,读者略微研究下就明白,语法大同小异...
介绍就不多说了,下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整...
两个版本的数据库对比,同时支持sqlserver,oracle,MySql ,代码差异高亮显示 具体功能 介绍博客有图片 :https://blog.csdn.net/wwja_chen/article/details/89336728 如开发库和正式库之间的结构和数据同步,此工具可以...
SQLBuilder的 项目介绍 表达式表达式树转换为SQL语句,支持SqlServer,MySql,Oracle,Sqlite,PostgreSql 编码云地址
7.oracle 有个特点,就是如果表结构发生变化,就会有很多视图,存储过程,触发器等跟着失效,这时候要把这些无效的对象重新编译一下。但是这个动作会经常遗忘, 所以这里加了一个检索并修正无效对象的功能;...
涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...
BDB是跨数据库平台的数据库设计和自动安装工具、支持Oracle、SQLServer、Access、MySQL、SQLAnyWhere数据库。 通过BDB可以快速建立数据库模型、并随时与实体数据库进行双向同步。 同时它还可以为您的应用程序创建...
关系型 非关系型 Access SQL Server Oracle Sybase mySQL Mongo DB Redis SQLite 常见的数据库管理系统 SQLserver2016-数据库系统概述全文共16页,当前为第6页。 数据模型是数据库中的数据按一定的方式存储在一起的...
涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...
涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...
BDB是跨数据库平台的数据库设计和自动安装工具、 支持Oracle、SQLServer、Access、MySQL、SQLAnyWhere数据库。 通过BDB可以快速建立数据库模型、并随时与实体数据库进行双向同步。同时它还可以为您的应用程序...