当前位置:首页 » 存储配置 » 怎么写存储过程

怎么写存储过程

发布时间: 2022-01-15 06:09:57

A. 存储过程怎么写啊

//创建存储过程

CREATE PROCEDURE userData(

IN id INT

)

BEGIN

SELECT * from userdata WHERE userflag = id;

END;

其中IN是传进去的变量;

drop procere userData;//销毁这个存储过程。

call userData(2) //调用存储过程。

(1)怎么写存储过程扩展阅读:

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这两个语句。

参考资料来源:网络-储存过程



B. 关于SQL存储过程怎么写

1.计算出公司员工总数是多少人和原来的工资总数
declare @rs int
declare @gz money
select @rs=count(*),@gz=sum(工资) from t
2.作循环加工资
没明白加工资的原则
问题
a.一半的人的工资 如果有7个人 那么需要 3人还是4人工资到3000?
b.怎么加工资呢
3.计算出加工资花的钱和加的人次
select sum(工资)gz,(sum(工资)-@gz)/100 from t

C. 存储过程怎么写···

看看帮助

D. 存储过程怎么写简单

可以的
CREATE procere InSertUser
@Username varchar(50),
@UserPwd varchar(50),
@UserDate datetime=getdate,
@Action varchar(50)
as
if(@Action='Create')
BEGIN
INSERT INTO Users
(UserName, UserPwd, UserDate)
VALUES
(
@Username,
@UserPwd,
@UserDate
)
END
else if(@Action='Update')
BEGIN
update xxx set aaa=''
END

GO
通过传递@Action的不同值就可以了 这只是个思路 具体实现你可以自己考虑考虑

E. Oracle数据库的存储过程怎么写

1 CREATE OR REPLACE PROCEDURE 存储过程名
2 IS
3 BEGIN
4 NULL;
5 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体的结束.
存储过程创建语法:
create or replace procere 存储过程名(param1 in type,param2 out type)
as
变量1 类型(值范围); --vs_msgVARCHAR2(4000);
变量2 类型(值范围);
Begin
Select count(*) into 变量1 from 表A where列名=param1;

If (判断条件) then
Select 列名 into 变量2 from 表A where列名=param1;
Dbms_output。Put_line(‘打印信息’);
Elsif (判断条件) then
Dbms_output。Put_line(‘打印信息’);
Else
Raise 异常名(NO_DATA_FOUND);
End if;
Exception
When others then
Rollback;
End;

F. oracle存储过程怎么写

存储过程就是若干sql语句的集合而已。
一般语法就是
create or replace 存储过程名(参数1,参数2,……) is
sql语句
end 存储过程名;

G. Oracle 的存储过程怎么写。

oracle 存储过程的基本语法

1.基本结构
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER,
参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN

END 存储过程名字

2.SELECT INTO STATEMENT
将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条
记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)
例子:
BEGIN
SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;
EXCEPTION
WHEN NO_DATA_FOUND THEN
xxxx;
END;
...

3.IF 判断
IF V_TEST=1 THEN
BEGIN
do something
END;
END IF;

4.while 循环
WHILE V_TEST=1 LOOP
BEGIN
XXXX
END;
END LOOP;

5.变量赋值
V_TEST := 123;

6.用for in 使用cursor
...
IS
CURSOR cur IS SELECT * FROM xxx;
BEGIN
FOR cur_result in cur LOOP
BEGIN
V_SUM :=cur_result.列名1+cur_result.列名2
END;
END LOOP;
END;

7.带参数的cursor
CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
OPEN C_USER(变量值);
LOOP
FETCH C_USER INTO V_NAME;
EXIT FETCH C_USER%NOTFOUND;
do something
END LOOP;
CLOSE C_USER;

8.用pl/sql developer debug
连接数据库后建立一个Test WINDOW
在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试

H. SQL存储过程怎么写

--表a和表b两个表之间要存在一种联系(比如你的会员ID,在这两个表里都有吧?)
--所以你可以这样写
--select case a.STS when Y then b.临时地址 else a.联系地址 end as Address
--from a join b on a.会员ID=b.会员ID
--这样就可以得到相应的地址了

热点内容
sql语句复制数据库 发布:2024-11-15 19:28:02 浏览:837
算法的薪资 发布:2024-11-15 19:15:22 浏览:322
ubuntu可以重新编译吗 发布:2024-11-15 19:09:10 浏览:649
access数据库表的创建 发布:2024-11-15 18:51:18 浏览:141
怎么搭建信令服务器 发布:2024-11-15 18:48:03 浏览:578
如何解锁安卓手机锁屏图 发布:2024-11-15 18:47:48 浏览:966
c语言水仙花数编程 发布:2024-11-15 18:45:50 浏览:852
安卓快手伴侣悬浮怎么设置 发布:2024-11-15 18:26:50 浏览:524
浏览器缓存好的视频为什么都删了 发布:2024-11-15 18:23:06 浏览:161
睡眠缓解压力 发布:2024-11-15 18:20:02 浏览:434