Teradata 查詢指令 (8)

基本介紹

教學目標

初步了解 Macro 和 Stored Procedure 的差別和相關語法。

重點概念

比較表

Macro Stored Procedure
佔用資料庫空間
多筆結果回傳 是 (必須搭配 Cursors 語法)
多筆參數傳遞
控制敘述 (邏輯、迴圈和錯誤處理)
適用情境 SQL語法進行多筆資料回傳 需要透過判斷或迴圈進行資料動態更新

Macro

建立

1
2
3
4
5
CREATE MACRO COUNT_EMPOYEE (jobtitle CHAR(30)) AS (
SELECT COUNT(DINSTINCT EMP_NO) AS EMP_CNT
FROM EMPLOYEE
WHERE JOB_TITLE LIKE '%:jobtitle%';

);

執行

1
EXEC COUNT_EMPOYEE('ENGINEER');

Stored Procedure

建立

1
2
3
4
5
6
7
CREATE PROCEDURE EMP (IN jobtitle CHAR(30),OUT emp_cnt INTEGER)
BEGIN
SELECT COUNT(DINSTINCT EMP_NO)
INTO :emp_cnt

FROM EMPLOYEE
WHERE JOB_TITLE LIKE '%:jobtitle%';
END

執行

1
CALL COUNT_EMPOYEE('ENGINEER',EMP_CNT);

相關資源