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聲明。