当前位置:首页 » 参考文献 » 数据库的存储过程创建

数据库的存储过程创建

发布时间: 2021-03-27 16:26:40

A. 什么是数据库存储过程

SQL的调用可以分为函数和存储过程。

个人理解,其实函数和存储过程是相似的,至少在引用的时候跟函数很是一样。或者干脆把存储过程理解为另一种函数,另一种经过优化的函数。它的优点在于,存储过程在被编译后会被直接保存在数据库中,成为数据库的一部分,以后就可以反复调用,运行速度快,效率高,这些是函数做不到的。

B. mysql如何创建存储过程

1 用mysql客户端登入
2 选择数据库
mysql>use test
3 查询当前数据库有哪些存储过程
mysql>show procere status where Db='test'
4 创建一个简单的存储过程
mysql>create procere hi() select 'hello';
5 存储过程创建完毕,看怎么调用它
mysql>call hi();
显示结果 mysql> call hi();
+-------+
| hello |
+-------+
| hello |
+-------+
1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
6 一个简单的储存过程就成功了

C. 如何利用存储过程创建数据库

抱歉我开始的答案 我试过了 没法办到 因为通过存储过程 创建数据库 和 表, 数据库名或者表名都必须是常量 不能为变量 也就是说 不能通过传输入参数的形式为它指定名字 同样我也试过了 数据库的路径 也同样不能跟参数 我可以把我的代码给你看看 你可以试一下 也许你能办到
在 sa 用户登陆下 在master 数据库中 :
create proc sp_createdatabase
@basename varchar(20),
@path varchar(50)
as
create database @basename
on primary
(
name=@basename,
filename=@path+'.mdf',
size=5mb,
filegrowth=1mb
)
log on
(
name=@basename,
filename=@path+'.ldf',
size=2mb,
filegrowth=1mb
)

D. 如何编写数据库存储过程

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;

E. 数据库中怎样创建加密的存储过程

可以例用Oracle 自带的Wrap工具实现,此工具在$ORACLE_HOME/BIN目录下,具体如下
1、设置字符集环境变量
set NLS_LANG=CHINESE_CHINA.ZHS16GBK

2、创建一个存储过程文件
在E:\下创建test.sql文件,内容如下:
create or replace procere test1(i in number) as
begin
dbms_output.put_line(' 输入参数是'||to_char(i));
end;
3、加密
c:\> cd %ORACLE_HOME%\BIN
c:\>wrap iname=e:\test1.sql
PL/SQL Wrapper: Release 8.1.7.0.0 - Proction on Tue Nov 27 22:26:48 2001
Copyright (c) Oracle Corporation 1993, 2000.All Rights Reserved.
Processing test1.sql to test1.plb

4、运行test1.plb
sqlplus /nolog
SQL>conn TEST/TEST@db01
SQL> @e:\a.plb
过程已创建。

5、运行存储过程
SQL> set serveroutput on
SQL> execute test1(1);
输入参数是1
PL/SQL 过程已成功完成。

6、查看存储过程的代码
SQL> select name,text from all_source where type='PROCEDURE' and name='TEST1';

结果:看不到其原码

F. 如何建立一个数据库存储过程

由于不知道你的表结构,所以以下过程供参考(提醒:创建存储过程前,先选版好要执行创建语句的权数据库)
--------------------------------------------------
CREATE PROCEDURE getavg--存储过程名字为getavg
@kc varchar(255),--假设课程号字段为字符类型
@avg decimal(5,1) OUTPUT --输出平均成绩
AS
--课程号为@kc的平均成绩
SELECT @avg = avg(成绩字段)
from 表名
where 课程号字段 = @kc

return @avg
GO

------
以上为创建存储过程,以下为调用
declare @a decimal(5,1)
EXECUTE getavg '课程号', @avg = @a output
print @a

G. mysql 数据库创建存储过程是怎么创建的

创建存储过程
mysql> delimiter $ -- delimiter $是设置 $为命令终止符号,代替默认的分号,因为分号有其他用处.
mysql> create procere sp_test(IN pi_id int, OUT po_name varchar(10))
-> begin
-> select * from test.tb_test;
-> select tb_test.name into po_name from test.tb_test where tb_test.id = pi_id;
-> end
-> $
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ; -- 恢复分号作为分隔终止符号

5.调用存储过程
mysql> set @po_name='';
Query OK, 0 rows affected (0.00 sec)
mysql> call sp_test(1,@po_name);

H. (SQL数据库)我想创建一个存储过程来更新表中的数据

create procere update_table ( @c_tbname varchar(128), -- 要更新的表名
@c_upcolname varchar(1000), -- 要更新的字段列表,以豆号隔开
@c_updata varchar(1000), -- 要更新的数据列表,以豆号隔开,要与相应的列一一对应
@c_id varchar(100) -- 要更新的关键字,没有关键字的不能更新
)
as
begin
declare @c_sql varchar(max)
declare @i_bcol int
declare @i_ecol int
declare @i_bdata int
declare @i_edata int
if @c_id is null or @c_id = ''
return
set @i_bcol= 1
set @i_bdata= 1
set @c_sql = ' update ' + @c_tbname + ' set '
set @i_ecol = charindex(',' , @c_upcolname , @i_bcol )
while @i_ecol > 0
begin
set @c_sql = @c_sql + substring( @c_upcolname,@i_bcol,@i_ecol - 1 ) + ' = '
set @i_edata= charindex(',' , @c_updata, @i_bdata)
set @c_sql = @c_sql + '''' + substring( @c_updata,@i_bdata,@i_edata- 1 ) + ''' ,'
set @i_bcol = @i_ecol + 1
set @i_ecol = charindex(',' , @c_upcolname , @i_bcol )
end

set @c_sql = @c_sql + substring( @c_upcolname,@i_bcol,len@c_upcolname) - 1 ) + ' = '
set @c_sql = @c_sql + '''' + substring( @c_updata,@i_bdata,len(@c_updata)- 1 ) + ''' '
set @c_sql = @c_sql + ' where id = ''' + @c_id + ''' '
exec ( @c_sql )
end

I. 如何创建SQL存储过程

CREATE proc ProcBlacker_ADD --定义存储过程
@UserID int, --用户输入的参数1
@strName varchar(20), --用户输入的参数2
@strMobile varchar(20), --用户输入的参数3
@strRemark nvarchar(200) --用户输入的参数4,最后一个不需要加,

as

declare @ID int --定义变量
declare @Account varchar(50) --同上
declare @Content varchar(50) --同上

if not exists(select * from tblBlackList(nolock) --如果不存在则执行下面的语句.
where fdcMobile=@strMobile)
begin
insert into tblBlackList(fdcMobile,fdcName,fdtTm,fdcMemo)
values(@strMobile,@strName,getdate(),@strRemark) --getdate()获取当前系统的时间
set @ID=@@identity --返回一行记录

select @Account=Account from dbo.UserInfo where UserID=@UserID
set @Content='添加黑名单('+'操作者:'+@Account+','+'用户名:'+@strName+'手机:'+@strMobile+'备注:'+@strRemark+')' --设置变量的值
exec ProcRecordLog @Account,'添加',@Content ---执行储过程ProcRecordLog

return @ID
end
GO
这个存储后面调用了ProcRecordLog存储过程

热点内容
涂鸦论文 发布:2021-03-31 13:04:48 浏览:698
手机数据库应用 发布:2021-03-31 13:04:28 浏览:353
版面217 发布:2021-03-31 13:04:18 浏览:587
知网不查的资源 发布:2021-03-31 13:03:43 浏览:713
基金赎回参考 发布:2021-03-31 13:02:08 浏览:489
悬疑故事范文 发布:2021-03-31 13:02:07 浏览:87
做简单的自我介绍范文 发布:2021-03-31 13:01:48 浏览:537
战略地图参考 发布:2021-03-31 13:01:09 浏览:463
收支模板 发布:2021-03-31 13:00:43 浏览:17
电气学术会议 发布:2021-03-31 13:00:32 浏览:731