DECLARE var_name[,...] type [DEFAULT value]
这个语句被用来声明局部变量。
要给变量提供一个默认值,请包含一个DEFAULT子句。
值可以被指定为一个表达式,不需要为一个常数。
如果没有DEFAULT子句,初始值为NULL。
局部变量的作用范围在它被声明的BEGIN ... END块内。
它可以被用在嵌套的块中,除了那些用相同名字声明变量的块。
‘贰’ mysql中的存储过程怎么使用
存储过程(Stored
Procere)是一组为了完成特定功能的SQL语句集功能是将常用或复杂的工作,预先用SQL语句写好并用一个指定名称存储起来,
以后需要数据库提供与已定义好的存储过程的功能相同的服务时,只需调用
call
存储过程名字,
即可自动完成命令。存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,可由应用程序通过一个调用来执行,而且允许用户声明变量
。同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。
‘叁’ 数据库存储过程中根据什么声明变量
declare @变量名 类型
‘肆’ 在SQL中存储过程的一般语法是什么
1、 创建语法
createproc|procerepro_name
[{@参数数据类型}[=默认值][output],
{@参数数据类型}[=默认值][output],
....
]
as
SQL_statements
2、 创建不带参数存储过程
--创建存储过程
if(exists(select*fromsys.objectswherename='proc_get_student'))
dropprocproc_get_student
go
createprocproc_get_student
as
select*fromstudent;
--调用、执行存储过程
execproc_get_student;
3、 修改存储过程
--修改存储过程
alterprocproc_get_student
as
select*fromstudent;
4、 带参存储过程
--带参存储过程
if(object_id('proc_find_stu','P')isnotnull)
dropprocproc_find_stu
go
createprocproc_find_stu(@startIdint,@endIdint)
as
select*fromstudentwhereidbetween@startIdand@endId
go
execproc_find_stu2,4;
5、 带通配符参数存储过程
--带通配符参数存储过程
if(object_id('proc_findStudentByName','P')isnotnull)
dropprocproc_findStudentByName
go
createprocproc_findStudentByName(@namevarchar(20)='%j%',@nextNamevarchar(20)='%')
as
select*fromstudentwherenamelike@nameandnamelike@nextName;
go
execproc_findStudentByName;execproc_findStudentByName'%o%','t%';
(4)存储过程中使用哪些命令声明变量扩展阅读:
SQL存储过程优点:
1、重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
2、减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
3、安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。
‘伍’ 存储过程中如何定义一个变量
存储过程常见的变量:局部变量、用户变量、系统变量
‘陆’ 存储过程的变量指什么
存储过程是面向对象的数据库编程语言,与其他面向对象编程语言类似,可声明变量,用变量来存取某一类值,变量在存储过程中占有非常重要的位置。变量声明在MySQL语言的存储过程中,变量有会话变量、存储过程变量两种。两种变量的声明方式不同,作用场景也不尽相同,在实际使用中要根据需要加以选择。
1.变量种类((1)会话变量会话变量也称用户变量,可以在一个客户端会话的任何地方声明,作用域是整个会话,会话断开后,会话变量也就消失。会话变量名以@开头,使用set直接赋值,在一个会话内,会话变量只需初始化一次。
例如,Set@num=1;表示声明了一个名字叫“@num”的会话变量,其初始值为1。
(2)存储过程变量存储过程变量以DECLARE为关键字声明的变量,只能在存储过程中使用,其命名不需要以@开头。以DECLARE声明的变量都会被初始化为NULL,存储过程变量存在于数据库服务器上。2.变量定义存储过程变量定义格式:DECLARE+变量名+数据类型+[DEFAULTVALUE]其中,((1)DECLARE为声明存储过程变量的关键字;
(2)变量名可以任意,但尽可能达到能表意的目的;
(3)数据类型为MySQL的数据类型,如int
‘柒’ sql 存储过程中 如何使用declare 有的存储过程声明了,有的没有声明。请回答的详细点。。谢谢
存储过程既可以有declare语句,也可以没有,declare声明的是一个语句块,是pl/sql执行的基本单位,
案例:一个基本的declare语句块
DECLARE
e_invalid_departmentEXCEPTION;--声明部分,给例外命名
BEGIN
UPDATEdepartments
SETdepartment_name='OracleTechnologyCenter'
WHEREdepartment_id=60;
IFSQL%NOTFOUNDTHEN
RAISEe_invalid_department;--程序执行部分,使用raise语句显示抛出例外
ENDIF;
COMMIT;
EXCEPTION
WHENe_invalid_departmentTHEN--例外处理部分,处理抛出的例外
DBMS_OUTPUT.PUT_LINE('Nosuchdepartmentid.');
END;
一个简单的存储过程案例:
CREATEPROCEDUREquery_emp(p_idINemployees.employee_id%TYPE,
p_nameOUTemployees.last_name%TYPE,
p_salaryOUTemployees.salary%TYPE,
p_commOUTemployees.commission_pct%TYPE)
AUTHIDCURRENT_USERIS
BEGIN
SELECTlast_name,salary,commission_pct
INTOp_name,p_salary,p_comm
FROMemployees
WHEREemployee_id=p_id;
ENDquery_emp;
‘捌’ 存储过程中怎么声明int类型变量
如果你把存储过程看作是批处理语句就好理解多了! 存储过程只不过是一个带着名称的SQL批处理语句,如果在整个过程中需要变量时就是可以声明,但该变量声明后只能存活在批处理
‘玖’ 存储过程中如何定义一个变量
create proc 存储过程名字
@参数名 类型,
........
as
declare @变量名 类型
set @变量名=。。。。。赋值
‘拾’ oracle存储过程可以声明变量吗
你在写存储过程的时候就按照语法 CREATE OR REPLACE PROCEDURE P_NAME IS BEGIN END P_NAME; 就行了,但是你要是在SQL window或者command window中调试一段代码的话,就要用declare声明。