定义函数
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER function [dbo].[FunJSLC](@carid bigint,@date datetime)
returns decimal
as
begin
declare @jslc decimal
set @jslc=(select JSLC from BYReMIn where iCarID=@carid and dtDate=@date)
return(@jslc)
end
存储过程应用函数
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER proc [dbo].[BYProc]
as
declare @jglc decimal
select cCode,dtDate ,cLBName,dMoney ,JSLC=dbo.FunJSLC(iCarID,dtDate),
JGLC=(dbo.FunJSLC(iCarID,dtDate)-dbo.Funccclc(iCarID)),
CCLC=dbo.Funccclc(iCarID),cHandler,cUName,cBYXM,cMemo into #t from vBYB
select cCode as '车牌号',dtDate as '保养日期',cLBName as '保养类别',dMoney as '保养费用',
JSLC as '上次保养里程',CCLC as '当前里程',cHandler as '经手人',cUName as '保养单位',
cBYXM as '保养项目',cMemo as '备注'
from #t where CCLC>JSLC
dbo.FunJSLC(iCarID,dtDate)即函数FunJSLC的返回值
了解最基本的定义调用会用就OK
这样实现统计的时候就方便多了,用sql去处理,使程序代码简洁,有效率!
在SQL*Plus中默认的"&"表示替代变量,SQL*Plus认为&符后面的字符串为变量;只要在命令中出现该符号,SQL*Plus就会要你输入替代值。这就意味着你无法将一个含有该符号的字符串插入或更新到数据库
set define off 关闭替代变量功能,“&”将作为普通字符
set def ......