1.简单参数宏

所谓参数宏,是指在宏中包含可以替代值得变量。下面是一个简单的参数宏定义:

CREATE MACRO dept_list(dept INTEGER)

AS

(SELECT last_name

FROM employee

  WHERE department_number=:dept);

运行dept_list的语句为:

EXEC dept_list(301);

其结果是返回部门编号为301的所有雇员的姓。


2.多参数宏

多参数宏包含多个参数,每个参数可以定义各自的类型和属性。

CREATE MACRO new_employee

                 (number INTEGER

                  ,MGR INTEGER

                  ,dept  INTEGER

                  ,job INTEGER

                  ,lastname CHAR(20)

                  ,firstname VARCHAR(30)

                  ,hired DATE

                  ,birth DATE
                  ,salary DECIMAL(10,2))

AS

(ROLLBACK WORK 'Invalid Hire'

WHERE (:hired-:birth)/365<21;

ROLLBACK WORK 'Invalid Department'

WHERE :dept NOT IN

  (SELECT department_number

   FROM department

   WHERE department_number=:dept);

ROLLBACK WORK 'Invalid Job Code'

WHERE :job NOT IN

   (SELECT job_code

    FROM job

   WHERE job_code =:job);

INSERT INTO employee

(employee_number

,manager_employee_number

,department_number

,job_code

,last_name

,first_name

,hire_date

,birthdate

,salary_amount)

VALUES

(:number

,:mgr

,:dept

,:job

,:lastname

,:firstname

,:hired

,:birth

,:salary);

);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值