W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
宏是一組SQL語句,通過調(diào)用宏名稱來存儲(chǔ)和執(zhí)行。 宏的定義存儲(chǔ)在數(shù)據(jù)字典中。 用戶只需要EXEC特權(quán)來執(zhí)行宏。 用戶不需要對宏中使用的數(shù)據(jù)庫對象具有單獨(dú)的特權(quán)。 宏語句作為單個(gè)事務(wù)執(zhí)行。 如果宏中的某個(gè)SQL語句失敗,則所有語句都將回滾。 宏可以接受參數(shù)。 宏可以包含DDL語句,但應(yīng)該是宏中的最后一個(gè)語句。
宏是使用CREATE MACRO語句創(chuàng)建的。
以下是CREATE MACRO命令的通用語法。
CREATE MACRO <macroname> [(parameter1, parameter2,...)] ( <sql statements> );
考慮以下Employee表。
員工不 | 名字 | 姓 | 生日 |
---|---|---|---|
101 | Mike | James | 1/5/1980 |
104 | Alex | Stuart | 11/6/1984 |
102 | Robert | Williams | 3/5/1983 |
105 | Robert | James | 12/1/1984 |
103 | Peter | Paul | 4/1/1983 |
下面的示例創(chuàng)建一個(gè)名為Get_Emp的宏。 它包含一個(gè)select語句,用于從employee表中檢索記錄。
CREATE MACRO Get_Emp AS ( SELECT EmployeeNo, FirstName, LastName FROM employee ORDER BY EmployeeNo; );
宏使用EXEC命令執(zhí)行。
以下是EXECUTE MACRO命令的語法。
EXEC <macroname>;
以下示例執(zhí)行宏名稱Get_Emp; 執(zhí)行以下命令時(shí),它將從employee表中檢索所有記錄。
EXEC Get_Emp; *** Query completed. 5 rows found. 3 columns returned. *** Total elapsed time was 1 second. EmployeeNo FirstName LastName ----------- ------------------------------ --------------------------- 101 Mike James 102 Robert Williams 103 Peter Paul 104 Alex Stuart 105 Robert James
Teradata宏可以接受參數(shù)。 在宏內(nèi),這些參數(shù)用引用; (分號)。
以下是接受參數(shù)的宏的示例。
CREATE MACRO Get_Emp_Salary(EmployeeNo INTEGER) AS ( SELECT EmployeeNo, NetPay FROM Salary WHERE EmployeeNo = :EmployeeNo; );
宏使用EXEC命令執(zhí)行。 您需要EXEC特權(quán)才能執(zhí)行宏。
以下是EXECUTE MACRO語句的語法。
EXEC <macroname>(value);
以下示例執(zhí)行宏名稱Get_Emp; 它接受員工no作為參數(shù),并從該員工的雇員表中提取記錄。
EXEC Get_Emp_Salary(101); *** Query completed. One row found. 2 columns returned. *** Total elapsed time was 1 second. EmployeeNo NetPay ----------- ------------ 101 36000
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: