顾客订阅信息表为:userborrow
顾客编号:userid 顾客名:username 订阅报纸名:newspaper 订阅份数:papertotal
创建存储过程:
CREATE PROCEDURE C_P_Proc
@username nvarchar(50)
AS
select userid,username,newspaper,papertotal from userborrow where username=@username
GO
调用存储过程:
EXECUTE C_P_Proc 'JIM'
Ⅱ 数据库中的存储过程是什么
存储过程是存储在
.dbc
文件中的
Visual
FoxPro
代码,是专门操作数据库中数据的代码过程。存储过程可以提高数据库的性能,因为在打开一个数据库时,它们便加载到了内存中。
使用存储过程主要是为了创建用户自定义函数,字段级规则和记录级有效性规则将引用这些函数。当把一个用户自定义函数作为存储过程保存在数据库中时,函数的代码保存在
.dbc
文件中,并且在移动数据库时,会自动随数据库移动。使用存储过程能使应用程序更容易管理,因为可以不必在数据库文件之外管理用户自定义函数。
Ⅲ 数据库创建存储过程
假设你表结构如下:
学号 姓名 课程 分数
不用存储过程,就用sql
select 学号,姓名 ,avg(分数)
from table
group by 学号,姓名 having avg(分数)<60
Ⅳ 数据库的存储过程是怎么做的
create or replace PROCEDURE test_owen -定义名称
(in_bakk_id in number, -定义输入值
on_code out number) -定义输出值
is
--v_bakk varchar(8);
begin -开始实施
insert into an_bakk_mid select * from an_bakk where bakk_id = in_bakk_id; --操作语句提取数据到中间表
end test_owen; -结束
查询错误-show error;
创建存储过程-create procere 名称 is
begin
--执行
end;
如果过程名存在
覆盖,替换创建存储过程
-create or replace procere 名称 is
begin
--执行
end;
调用存储过程-exec 过程名(参数1,参数2);
调用存储过程-call 过程名(参数1,参数2);
调用系统包输出一句话-begin
dbms_output.put_line('ni hao !');
end;
-----------------
set serveroutput on 输入选项开关
-----------------
提示输入一个值来查询;
declare
--定义变量
v_ename varchar2(5);
begin
--执行部分
select ename into v_ename from emp where empno=&aa;
--在控制台显示
dbms_output.put_line('用户名是:'||v_ename);
--异常处理
exception
when no_data_found then
dbms_output.put_line('您输入的编号输入有错误,请重新输入!');
end;
-----------------------
更改一个人的工资
create procere new_sy(newname varchar2,newsal number) is
begin
update emp set sal=newsal where ename=newname;
end;
----------------------------------------------------------
输入一个编号查询个人所得税
--------------------------
declare
c_tax_rate number(3,2):=0.03;
v_ename varchar2(10); ---v_ename emp.ename&tpye;
v_sal number(7,2);
v_tex_sal number(7,2);
begin
select ename,sal into v_ename,v_sal from emp where empno=&no;
v_tex_sal:=v_sal*c_tax_rate;
dbms_output.put_line('姓名是:'||v_ename||' 工资是:'||v_sal||' 个税是:'||v_tex_sal);
end;
------------------------------
找出工资小于2000的人给其加薪百分之20;
create or replace procere SP_syadd (add_name varchar2) is
add_sal emp.sal%type;
begin
select sal into add_sal from emp where ename=add_name;
if add_sal<2000 then
update emp set sal=sal*1.2 where ename=add_name;
end if;
end;
-------------------------------
--输入一个雇员编号,如果该雇员的职位是PRESIDENT 就给他加1000
--如果职位是MANAGER给他加500,其他职位加200;
create or replace procere SP_syadd (add_name varchar2) is
add_job emp.job%type;
begin
select job into add_job from emp where empno=add_name;
if add_job='PRESIDENT' then
update emp set sal=sal+1000 where empno=add_name;
elsif add_job='MANAGER'then
update emp set sal=sal+500 where empno=add_name;
else
update emp set sal=sal+200 where empno=add_name;
end if;
end;
---------------------------------
可变的标量--
v_ename emp.ename&tpye;
Ⅳ 数据库中怎样创建加密的存储过程
可以例用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';
结果:看不到其原码
Ⅵ 用数据库创建存储过程,求大神解答啊,老师布置的作业,在线坐等
例:
• 1、在 student 数据库中 , 创建一个名称为
myproc的存储过程, 该存储过程的功能是从数据表student_info中查询所有男同学的信
息。
USE student
GO
CREATE PROCEDURE myproc AS
SELECT * FROM student_info WHERE sex = '
男'
GO
• 2、 创建带有参数的存储过程
例: 在student数据库中, 创建一个名称为
InsertRecord的存储过程, 该存储过程的
功能是向数据表stud_info中插入一条记
录, 新记录的值由参数提供。
USE student
GO
CREATE PROCEDURE InsertRecord
(
@sno char(6),
@sn char(20),
@age numeric(5),
@sex char(2),
@dept char(10)
)
AS
INSERT INTO stud_info
VALUES(@sno,@sn,@sex,@age,@dept)
GO
• 3、 创建具有参数默认值的存储过程
例:在 student 数据库中 , 创建一个名称为
InsertRecordDef的存储过程, 该存储过程的
功能是向数据表student中插入一条记录, 新
记录的值由参数提供, 如果未提供系别dept
的值时, 由参数的默认值代替。
USE student
GO
CREATE PROCEDURE InsertRecordDef
(
@sno char(6),
@sn char(20),
@age numeric(5),
@sex char(2),
@dept char(10)='无'
)
AS
INSERT INTO stud_info
VALUES(@sno,@sn, @sex , @age, @dept)
GO
•
Ⅶ 题目:在图书管理数据库中创建一个存储过程,在用户借书之前,判断该用户能否借书。
不知道你的表结构什么样, 不过一下几点:
分类=类型, 这样写是将两个列进行比较, 你确定不是 分类='类型' 这样吗
设置值的时候, 可以直接SELECT @xxx =[列] FROM .... 这样, 当然你那样写也可以
你的execute语句, 后面的参数如果过是字符串型,应该用单引号引起来
存储过程创建之后, 可以用 ALTER PROCEDURE进行修改, 不必每次都drop重新create
Ⅷ SQL 中创建存储过程
你把那个创建存储过程的查询语句运行一下
数据库里就会按照你的语句建立存储过程了
建立好后你写的那个创建存储过程的语句就没用了
下次直接就可以调用创建好的存储过程
有output参数的存储过程可以通过定义变量来传入参数啊,比如这样
--创建存储过程
create
procere
Test
@i
int
output
as
set
@i
=
@i
*
2
--定义一个变量
declare
@i
int
--赋值10
set
@i
=
10
--打印输出
print
@i
--调用存储过程,使变量@i乘以2
Test
@i
output
--打印输出
print
@i
Ⅸ 书店销售管理系统的数据库函数,存储过程
关键字:procere 例子: SQL> create [or replace] procere procere_name is begin --开始执行 insert into test('10001','Visket'); end; / 以上操作就能为test表添加一条信息执行存储过程procere用的命令是exec 记住存储过程中,语句结尾一定要有分号
Ⅹ 如何建立一个数据库存储过程
在有sp_updatediagrams的实例上,用sp_helptext 获取代码
然后在缺失sp_updatediagrams的实例上运行。
再用下面语句,设为系统存储过程:
<code style="font-size: 12px;"><span style="color:blue">EXEC </span><span style="color:darkred">sp_MS_Marksystemobject </span><span style="color:red">'sp_updatediagrams' </span></code>