• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

利用DB2 V10.1中的全局变量实现全球化

mysql 搞代码 4年前 (2022-01-09) 13次浏览 已收录 0个评论

本文的第 1 部分 展示了 DB2 V10.1 的安全性特性如何满足将来自多个国家(行政区)的数据整合到单独一组表中的组织的关键业务需求本文来源gaodai$ma#com搞$$代**码)网8: 1. 使本地用户仅能访问其所在国家(行政区)的数据 2. 使地区用户仅能访问其所在地区的数据 3. 针对地区用户,实现地方敏感

本文的第 1 部分 展示了 DB2 V10.1 的安全性特性如何满足将来自多个国家(行政区)的数据整合到单独一组表中的组织的关键业务需求:

1. 使本地用户仅能访问其所在国家(行政区)的数据
2. 使地区用户仅能访问其所在地区的数据
3. 针对地区用户,实现“地方敏感型”,自动将不同国家(行政区)的币种值转为通用币种(例如,为了汇总分别使用新加坡货币和中国香港货币的两种商品的价格,需要进行币种转换)
4. 根据用户是本地用户还是地区用户来屏蔽列数据

本文以第1 部分作为基础,展示了如何利用全局变量和角色来降低代码复杂性、提高有用性,同时动态计算对地方敏感的日期/时间段。

提高指定日期/时间值时的有用性

全局变量可用于使 SQL 更易理解。您不必再在 SQL 语句中指定复杂的公式,而是可以为该公式创建一个全局变量,直接指定该变量。全局变量提供了共享的通用例程,可在任何 SQL 中使用它们,这些例程消除了重复编写相同代码的需要。除此之外,利用全局变量时,只需在指定公式的位置创建变量一次,因此可减少 SQL 中的错误。

全局变量支持使用描述性名称,这有助于用户或读者确定应执行哪些计算。例如,指定一周的第一天时,可以在查询中包含这样的计算:

SELECT … FROM REAL_ESTATE_SALES
WHERE PROPERTY_TYPE = ‘CONDO’
AND EFFECTIVE_DATE =
CURRENT_DATE – (DAYOFWEEK_ISO (CURRENT_DATE)-1) DAYS)

我们也可以创建一个全局变量来改善可读性。这允许任何查看 SQL 语句的用户确定查询执行的日期计算:

CREATE VARIABLE FIRST_DAY_OF_WEEK DATE
DEFAULT
(CURRENT_DATE – (DAYOFWEEK_ISO (CURRENT_DATE)-1) DAYS)

现在,可将查询写为:

SELECT … FROM REAL_ESTATE_SALES
WHERE PROPERTY_TYPE = ‘CONDO’
AND EFFECTIVE DATE = FIRST_DAY_OF_WEEK

全局变量允许我们指定一个“常量”,全局变量的名称表示业务查询执行的操作。下面给出了几个常用的日期/时间段:
1. 今天
2. 昨天
3. 明天
4. 一个月的第一天
5. 一个月的最后一天
6. 一个星期的第一天
7. 当前季度的第一天
利用全局变量,可以通过用户友好、易于阅读的格式表示这些时间段。下面给出了上述时间段的定义。
今天:

CREATE VARIABLE TODAY DATE DEFAULT CURRENT DATE

昨天:

CREATE VARIABLE YESTERDAY DATE DEFAULT CURRENT DATE – 1 DAY

明天:

CREATE VARIABLE TOMORROW DATE DEFAULT CURRENT DATE + 1 DAY

一个月的第一天:

CREATE VARIABLE FIRST_DAY_OF_CURRENT_MONTH DATE
DEFAULT
(CURRENT_DATE – (DAY (CURRENT_DATE)-1) DAYS)

一个月的最后一天:

CREATE VARIABLE LAST_DAY_OF_CURRENT_MONTH DATE
DEFAULT
(LAST_DAY (CURRENT DATE))

一个星期的第一天:

CREATE VARIABLE FIRST_DAY_OF_WEEK DATE
DEFAULT
(CURRENT_DATE – (DAYOFWEEK_ISO (CURRENT_DATE)-1) DAYS)

当前季度的第一天(请注意,定义中也使用了全局变量 FIRST_DAY_OF_THE_CURRENT_MONTH):

CREATE VARIABLE FIRST_DAY_OF_QUARTER DATE
DEFAULT
(ROUND (FIRST_DAY_OF_CURRENT_MONTH,’Q’))


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:利用DB2 V10.1中的全局变量实现全球化

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址