最简单的存储过程
实现的方法和详细的操作步骤如下:
1、第一步,双击plsql图标进入登录界面,输入用户名和密码,然后传输数据库实例名称,如下图所示,然后进入下一步。
2. 何为存储过程,举例说明
存储过程,实际就是一段写在数据库中的代码。。
由于此段数据库操作代码由服务器完成,而客户端只是进行简单的参数提交,所以,可以有效的利用服务器的强劲而减小对客户机的负合。
如:你想插入一条数据到数据库。
虽然你的要求是,先检查表里面是否己存在该项。
如果不存在就Insert,如果存在就UPDATE。
这个时候,你就可以把这个判断用存储过程来写。
你的程序只要提示你想要保存到数据库里面的东西即可。
下面就是一个简单的存储过程。
CREATE PROCEDURE [insert_A_Employees]
(@fWorkNo [int],
@fWorkName [char](10),
@fDeptName [varchar](20),
@fGroupName [varchar](20),
@fRecordDate [datetime])
AS
declare @iCount int
select @iCount = count(*) from A_EMPLOYEES where @fWorkNo = fWORKNO --统计该工号在数据库的数量赋值给 @iCount
if @iCount = 0 --如果数据库中不存在该工号
begin
INSERT INTO [CLKQ].[dbo].[A_Employees] --则插入数据
( [fWorkNo],
[fWorkName],
[fDeptName],
[fGroupName],
[fRecordDate])
VALUES
( @fWorkNo,
@fWorkName,
@fDeptName,
@fGroupName,
@fRecordDate)
return 1 --返回一个标识
end else begin --否则则更新数据
update [CLKQ].[dbo].[A_Employees]
set [fWorkName]=@fWorkName,
[fDeptName]=@fDeptName,
[fGroupName]=@fGroupName,
[fRecordDate]=@fRecordDate
where [fWorkNo]=@fWorkNo
return 0 --返回一个标识
end
GO
此时你只要在客户端程序提供:
@fWorkNo ,
@fWorkName ,
@fDeptName ,
@fGroupName ,
@fRecordDate
这几个值就行了。。
其它处理过程就由服务器方处理了。
以上是以 SQL 数据库为例。。。
ACCESS 等数据库没有此功能。
3. sqlserver2008 写一个简单的存储过程,两个输入参数,调用远程另一个存储过程并传入这两个参数。
--on serverA,test_A 数据库
Create proc P_test_A @A int,@B int
AS
select @A+@B
--on ServerB,test_B 数据库
Create proc P_Test_B @A int,@B int
AS
exec [serverA].[test_A].[dbo].P_test_A @A,@B
以上示例为在ServerB的test_b数据库上创建存储过程调用server_a上的test_a数据库中P_test_A存储过程,在执行前需在Server_B上添加链接服务器server_a
4. 简单通俗的解释一下存储过程是干什么的
存储过程..完成一定功能的可重复调用的程序。
你可以这样理解:
你使用手机拨打A同事的手机,需要一个一个号码的输入,然后才能拨打
而如果你把这个号码设置为快速拨号,那么你只要长按1(自己设置的数字键)就可以直接拨打电话了
把这个号码设置为快速拨号的过程你就可以理解为创建存储过程。
汗..语言表达能力不足,不能完整的表达出我的意思,你看着理解吧。
5. 一个简单的oracle存储过程的问题,begin和end之间具体能放那些东西
oracle存储过程中,begin和end中存放的存储过程的主体。
Oracle存储过程基本语法 存储过程:
CREATEORREPLACEPROCEDURE存储过程名
IS
BEGIN
NULL;
END;
行1:
CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;
行2:
IS关键词表明后面将跟随一个PL/SQL体。
行3:
BEGIN关键词表明PL/SQL体的开始。
行4:
NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句;
行5:
END关键词表明PL/SQL体的结束
6. 存储过程怎么写啊
//创建存储过程
CREATE PROCEDURE userData(
IN id INT
)
BEGIN
SELECT * from userdata WHERE userflag = id;
END;
其中IN是传进去的变量;
drop procere userData;//销毁这个存储过程。
call userData(2) //调用存储过程。
(6)最简单的存储过程扩展阅读:
sql中的存储过程及相关介绍:
CREATE PROCEDURE [拥有者.]存储过程名[;程序编号]
[(参数#1,…参数#1024)]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
]
[FOR REPLICATION]
AS 程序行
其中存储过程名不能超过128个字。每个存储过程中最多设定1024个参数
(SQL Server 7.0以上版本),参数的使用方法如下:
@参数名数据类型[VARYING] [=内定值] [OUTPUT]。
每个参数名前要有一个“@”符号,每一个存储过程的参数仅为该程序内部使用,参数的类型除了IMAGE外,其他SQL Server所支持的数据类型都可使用。
[内定值]相当于我们在建立数据库时设定一个字段的默认值,这里是为这个参数设定默认值。[OUTPUT]是用来指定该参数是既有输入又有输出值的,也就是在调用了这个存储过程时,如果所指定的参数值是我们需要输入的参数。
同时也需要在结果中输出的,则该项必须为OUTPUT,而如果只是做输出参数用,可以用CURSOR,同时在使用该参数时,必须指定VARYING和OUTPUT这两个语句。
参考资料来源:网络-储存过程