求救:这2个存储过程是在Oracle中用的,现在急需把他转换成Sql server2000中能用的,高手救命啊!

yandu111 2006-11-02 08:43:14
这2个存储过程是在Oracle中用的,现在急需把他转换成Sql server2000中能用的,高手救命啊!

1,create or replace procedure getDelayAccrualMoney(ctrtId varchar2,
postType varchar2,
startDate date,
endDate date,
money out number) is
type ResultSet is ref cursor;
sqlStr varchar2(1000);
cr ResultSet;
bt varchar2(100) := 'paymentAccrual';
begin
sqlStr := 'select sum(latePay_interest) from gl_mpm_payment_delay_interest f, ('
|| getPaymentSql || ') e where f.id_salvey = e.id';
open cr for sqlStr using startDate, endDate, bt, ctrtId, postType;
fetch cr into money;
close cr;
end;




2,create or replace procedure getFinishBillMoney(ctrtId varchar2,
billChpt varchar2,
postType varchar2,
startDate date,
endDate date,
money out number) is
type ResultSet is ref cursor;
sqlStr varchar2(1000);
cr ResultSet;
bt varchar2(100) := 'middlePay';
begin
sqlStr := 'select sum(k.money) from gl_ccm_middle_pay_bill k,
(select x.id from gl_ccm_contract_billData x, gl_ccm_contract_bill y
where x.bill_id = y.id and y.id_contract=:ctrtId and y.bill_code like '''|| billChpt ||'%'') m,
(select f.id from gl_ccm_middle_pay f, (' || getPaymentSql || ') e where f.salvey_id = e.id) n
where k.id_middle = n.id and k.id_billprice = m.id';
open cr for sqlStr using ctrtId, startDate, endDate, bt, ctrtId, postType;
fetch cr
into money;
close cr;
end;
...全文
183 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhyyjj0000 2006-11-15
  • 打赏
  • 举报
回复
首先你要熟悉sql和oracle的存储过程的写法,也就是sql中的存储过程写法和oracle中的pl/sql语句语法(以上搂主们列了一些转换方法),然后要看懂你的oracle存储过程的意思,要知道如何转化到sql中去。
试着给你改第一个,没测试,你再改改阿。

create or replace procedure getDelayAccrualMoney
@ctrtId varchar(50),
@postType varchar(50),
@startDate date,
@endDate date
) as

declare @sqlStr varchar2(1000);
-- declare @cr ResultSet;
declare @bt varchar2(100) = 'paymentAccrual'

select sum(latePay_interest) from gl_mpm_payment_delay_interest f, (
+ getPaymentSql + ) e where f.id_salvey = e.id


GO
这两个都用了游标,返回结果用输出参数表示,sql中的存储过程可以直接返回结果集。
OracleRoob 2006-11-02
  • 打赏
  • 举报
回复
1、create or replace procedure

-->

create procedure

2、varchar2

-->

varchar


3、date

-->

datetime

4、number

-->

decimal

5、:=

-->

=

6、||

-->

+

7、定义变量用declare,变量名以@开头

如:

declare @sqlStr varchar(1000);
Teng_s2000 2006-11-02
  • 打赏
  • 举报
回复
Create proc
alter proc

sqlStr :=
在sql中不支持,改成sqlStr =
内容概要:本文围绕“分布式电源接入配电网承载力评估方法”的研究展开,重点复现了一项基于双层鲸鱼优化算法求解的核心学术论文,结合Matlab编程实现,对IEEE 33节点配电网系统进行建模与仿真分析。研究旨在科学评估在大规模分布式电源接入背景下配电网的承载能力,构建了综合考虑系统运行安全性、电能质量、网络损耗及电压稳定性等多重约束条件的优化评估模型,并采用高效的智能优化算法进行求解,有效提升了评估精度与计算效率,为新能源并网规划、电网扩容改造及运行决策提供了可靠的理论依据和技术支撑。该资源不仅提供完整的代码实现,还深入解析算法设计逻辑与模型构建流程,具有较强的科研复现价值和工程参考意义。; 适合人群:具备电力系统分析基础理论知识和Matlab编程能力,从事新能源并网、智能配电网规划、电力系统优化、分布式能源管理等方向的研究生、科研人员及电力行业工程技术人员。; 使用场景及目标:① 学习并掌握分布式电源接入对配电网影响的量化评估方法;② 深入理解双层优化架构与智能算法(如鲸鱼优化算法)在复杂电力系统问题中的应用机制;③ 获取可运行、可调试的Matlab代码资源,用于科研论文复现、课题研究仿真、课程设计或工程项目前期论证。; 阅读建议:此资源以核心论文的技术路线为基础,强调理论与实践相结合。建议读者在阅读过程中结合电力系统潮流计算、约束优化等基础知识,逐步理解模型构建思路,并动手运行与调试所提供的Matlab代码,通过参数调整与结果分析深化对算法性能与工程适用性的认知,从而真正实现从“看懂”到“掌握”的转化。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧