oracel-如何把下面的oracle中的存储过程转换成sql的?

问题描述

如何把下面的oracle中的存储过程转换成sql的?

create or replace procedure BJ_MAXCASENO_Get(InCount in number,
OutMaxCaseNO out number) as
tem number;
begin
select max(caseno) into tem from BJ_MAXCASENO;
if tem is null then
tem := 0;
-- 没有数据时新增0进入
insert into BJ_MAXCASENO (CASENO) VALUES (0);
end if;
tem := tem + InCount;
update BJ_MAXCASENO set CaseNO = tem;
OutMaxCaseNO := tem;

end BJ_MAXCASENO_Get;

解决方案

你这个逻辑即需要insert,又需要update,即需要输入参数,又有输出参数,通过sql是没法写出的.
从你的存过分析来看,你只是对BJ_MAXCASENO表的max(CASENO)+InCount做更新和查询操作,
可以考虑以下这种实现方式:如果是空则新增0近入,如果非空,也新增一条max(caseno)+'InCount'近入,insert into BJ_MAXCASENO
(CASENO)
select (case
when max(CASENO) is null then
0
else
max(CASENO) + 'InCount'
end) as CASENO
from BJ_MAXCASENO;

当然查询最大值就又得需要一条查询sql语句:select max(caseno) from BJ_MAXCASENO

PS:以上内容,纯当参考,

时间: 2016-06-13

oracel-如何把下面的oracle中的存储过程转换成sql的?的相关文章

转换数据库-数据库:Oracle数据库转换成SQL server数据库

问题描述 数据库:Oracle数据库转换成SQL server数据库 把oracle数据库转换成SQL server数据库(2008 r2)版本的,数据迁移,大概百万条数据,有什么好的办法或者是执行语句嘛: 解决方案 我只知道可以把脚本倒出来 然后在sql中执行 解决方案二: http://wenku.baidu.com/link?url=TA7z0XmVyfKHyTQqiPwE6gAdkKbFG7ngBBL75mvjbRbAGFVElPyxOLFSvNT4YskRl8KLdeVdOlHc8a6

进制转换-java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制

问题描述 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制,但是老是运行出错.大神们能不能给个小例子解释一下,谢谢 解决方案 http://blog.csdn.net/vanezuo/article/details/6556768 解决方案二: 使用函数啊,你找一下,Java有相应的函数能做到 解决方案三: 如果你的程序出错,你贴出你的程序才知道. 也可以参考我给你的

select-asp 文件转换php实现,主要是SQLSERVER里的存储过程转换成mysql语句写不出来!

问题描述 asp 文件转换php实现,主要是SQLSERVER里的存储过程转换成mysql语句写不出来! =================存储过程======================= ALTER PROCEDURE [dbo].[CreatUser] -- Add the parameters for the stored procedure here @Username varchar(50), @userPassword varchar(50), @QQID varchar(11

winform-我想在c#中把字符串转换成声音然后读出来

问题描述 我想在c#中把字符串转换成声音然后读出来 我得到系统当前日期,然后想让它读出来.求大神帮助,看了好多文件,有出先了新问题 拒绝访问. (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED)) 在线等!!!!

mssql server 数据库存储过程转换成mysql数据库(1/2)

mssql server 数据库教程存储过程转换成mysql教程数据库 DELIMITER $$ DROP PROCEDURE IF EXISTS ChangeSequence$$ CREATE PROCEDURE ChangeSequence ( _sign INT ,-- 0: 上移 1:下移  TableName VARCHAR(50) ,-- 表名  ItemName VARCHAR(50) ,-- 主键字段名  ItemID INT , -- 主键ID  SortName VARCHA

VB6.0语言中关于布尔表达式转换成字符串的问题

问题描述 VB6.0语言中关于布尔表达式转换成字符串的问题 VB6.0语言数据库里存储的布尔表达式怎么以结果的形式拿到值,或者字符串转换为表达式的运算 解决方案 你可以用scripthost去执行你的表达式,得到结果

shell .bat-将一段.bat文件中的命令转换成.sh文件中的命令

问题描述 将一段.bat文件中的命令转换成.sh文件中的命令 start jre/bin/java -jar zlzfofs.jar 9999 解决方案 BAT文件的所有命令和用法Red Hat下执行sh命令文件.bat文件中call命令的用法

Oracle中利用存储过程建表

Oracle中存储过程不可以执行DDL语句,但是我们可以利用动态sql语句来建立表格. 如下:   代码 create or replace procedure spCreateTestTableis    v_CreateString varchar2(1000);begin    declare        v_count number;    begin        v_count := 0;                select count(*)        into v_c

如何加密Oracle中的存储过程

软件环境: 1.操作系统:Windows 2000 Server 2.数 据 库:Oracle 8i R2 (8.1.7) for NT 企业版 3.安装路径:C:\ORACLE 实现方法: 1. D:\>set NLS_LANG=AMERICAN_AMERICA.USACII7 或 D:\>set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 D:\>set 直接打set命令可以查看环境变量 2. 在D:\下创建a.sql文件,内容如下: create