Terdata 基础 第三课(参数宏)

2023-11-12

1.宏不是ANSI标准支持的,但大部分RDBMS都支持宏。在Teradata中,在ANSI和BTET缺省模式下都可以创建和执行宏,只不过在ANSI模式下会给出警告信息

  1.1.参数宏:宏中可以包含可替代值的变量

  CREATE MACRO dept_list(dept INTEGER)
  AS
   ( SELECT last_name
   FROM employee
   WHERE department_number = :detpt );

  1.2.多参数宏

 CREATE MACRO new_dept
(dept INTEGER
,budget DEC(10,2) DEFAULT 0
,name CHAR(30)
,mgr INTEGER)
AS
( INSERT INTO department
(department_number
,department_name
,budget_amount
,manager_employee_number)
VALUES( :dept
,:name
,:budget
,:mgr);
. 141 .
SELECT department_number (TITLE 'number')
,department_name (TITLE 'name')
,budget_amouunt (TITLE 'budget')
,manager_employee_number (TITLE 'manager')
FROM department
WHERE department_number = :dept;
);

    1.3.宏实现参照完整性

 CREATE MACRO new_employee
( number INTEGER
,MGR INTEGER
,dept INTEGER
,job INTEGER
,lastname CHAR (20)
,firstname VARCHAR (30)
. 143 .
,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
. 144 .
, :lastname
, :firstname
, :hired
, :birth
, :salary );
);
 
利用这个宏来录入新雇员时,必须满足如下条件:
! 受雇时应年满21岁
! 应有一个合法的部门编号
! 应有一个合法的工作代码 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Terdata 基础 第三课(参数宏) 的相关文章

  • Terdata 基础 第三课(参数宏)

    1 宏不是ANSI标准支持的 但大部分RDBMS都支持宏 在Teradata中 在ANSI和BTET缺省模式下都可以创建和执行宏 只不过在ANSI模式下会给出警告信息 1 1 参数宏 宏中可以包含可替代值的变量 CREATE MACRO d
  • 数字电路设计之verilog的define和parameter

    1 语法定义 parameter xx yy define xx yy 注 句尾无分号 2 作用范围 parameter 作用于声明的那个文件 define 从编译器读到这条指令开始到编译结束都有效 或者遇到 undef命令使之失效 后来我
  • 预估db2、oracle、teradata数据库sql执行代价和时间方法

    DB2 只能得到cost 1 执行存贮过程建表 CALL SYSPROC SYSINSTALLOBJECTS EXPLAIN C CAST NULL AS VARCHAR 128 数据库用户名 2 执行 EXPLAIN PLAN SET Q
  • Teradata:如何在存储过程中引发错误

    有没有办法在 Teradata 存储过程内部引发错误 例如 我想检查表是否为空 如果表为空 我希望导致存储过程出错 并显示错误消息 表为空 这将使我能够将错误传递给调用应用程序 TD13 实施标准 SQL 的 SIGNAL RESIGNAL
  • 创建表,但如果表已存在则删除它

    我正在处理一个请求 我必须创建一个表来插入一些数据 所以 显然我首先要有一个删除表 在创建 st 之前但是当我第一次运行它时 在创建表之前 它会弹出一个错误 指出表未创建 然后创建表并从这里开始 因此 每次任何人第一次运行我的代码时 都会在
  • 连接组件

    我有一组数据 是通过将相似的子项目匹配在一起创建的 然后按 类别 对这些相似的项目进行分组 现在 结果类别必须以在每个 group id 内将相关类别分组在一起的方式进行匹配 在下面的示例中 一个匹配是 A gt B gt C gt D g
  • Teradata 与 Oracle DUAL 的等效项是什么

    在 Oracle 中 我们可以编写此代码以使用SELECT陈述 SELECT 1 AS x FROM dual Teradata 的同等产品是什么 一般不需要这样的表 在大多数情况下 Teradata 数据库中实际上不需要任何表 以下是有效
  • 通过 SQL 根据日期合并(串联)行

    我有下表 Animal Vaccine Date Vaccine Dog 1 1 2016 x Dog 2 1 2016 y Dog 2 1 2016 z Cat 2 1 2016 y Cat 2 1 2016 z 我希望能够将同一动物和同
  • SQL 更新行数

    我有一个带有列标识 1590 个值 的表 serviceClusters 然后我有另一个表 serviceClustersNew 其中包含 ID 文本和注释列 在此表中 我有一些文本和注释值 ID 始终为 1 下面是该表的示例 1 虚拟1
  • 以十进制形式返回日期差异

    我试图以更高精度以小数形式返回两个日期之间的年数 例如 如果相差 1 年 1 个月 15 天 我想 返回值 1 15 或类似的值 最终 在这个 例如 我想显示差异是 1 年 1 个月又 15 天 差值以小数形式显示 我能够返回小数值 但我不
  • Oracle 中的限定子句

    我正在从事 Teradata 到 Oracle 的迁移项目 我如何修改在 Teradata 中使用 QUALIFY 的以下查询 查询1 SELECT S ID as Id S MP CD as Code S GM CD as GmCode
  • 保留值直到 Teradata 中的值发生变化

    Teradata中有一个交易历史表 其中余额仅在有交易时才会更改 数据如下 Cust id Balance Txn dt 123 1000 27MAY2018 123 350 31MAY2018 例如 对于 5 月 27 日的客户 123
  • 如何在 Teradata 14 中对子字符串进行分组?

    我有下表天睿14 我不允许自己编写过程和函数 但我可以使用strtok strtok split to table etc id property 1 1234X Yel 2225Y Red 1234X Gre 2 3 1222Y Pin
  • 在 Python 中使用 teradatasql 模块连接到 Teradata

    我正在尝试使用 Python 中的 teradatasql 模块连接到 Teradata 该代码在本地主机上运行良好 但是一旦作为服务器代码的一部分部署在服务器上 就会抛出错误 代码 import teradatasql try host
  • TeraData SQL 中“TOP”和“SAMPLE”之间的区别

    TeraData SQL 中的 TOP 和 SAMPLE 有什么区别 它们是一样的吗 From 顶部与样本 http datawarehouse ittoolbox com groups technical functional terad
  • Teradata Volatile Table 语句未创建任何行

    我想在 Teradata 中创建表 因此我使用这个语法 CREATE VOLATILE TABLE a AS Select FROM WITH DATA PRIMARY INDEX ACCOUNT ID 内部 SELECT 语句生成 4 行
  • 查询从 Teradata 时间戳返回特定日期(6)

    我如何从 teradata timestamp 6 字段中搜索特定日期 例如 2013 10 22 sel from table A where date 2013 10 22 我尝试了上面的查询 该查询抛出错误 请帮忙 你可以这样尝试 s
  • 删除每行列中重复的 GPS 坐标

    我有一列包含 GPS 坐标 每行都有一组地理多边形坐标 大多数线路都有重复的 GPS 坐标 一列中的经度和纬度完全重合 Example 多多边形 23 453411011874813 41 74245395132344 23 4539726
  • 按时间戳聚合

    搜索引擎优化 gt 搜索引擎优化 gt 付费 1 付费 gt 付费 gt 联盟 gt 付费 1 SEO gt 会员 1我有一个查询 结果包含客户 ID 号 营销渠道 时间戳和购买日期的数据 所以 结果可能看起来像这样 id marketin
  • Teradata:如何使用查询获取服务器名称

    如何在 Teradata 中使用查询获取服务器名称 也就是说 如果我在 开发 服务器上编写查询 它应该返回开发服务器名称 例如 在 Sybase 中 我们将使用 select servername TD 中没有像 servername 这样

随机推荐

  • win10离线安装ros-melodic-desktop_full

    在线安装最容易出现安装包下载不了导致的安装失败问题 本篇文章续上篇在线安装 安装在线包 下载ros melodic desktop full 下载地址 ros melodic离线包下载地址 开始菜单中 右键 x64 Native Tools
  • Codeforces Round 875 (Div. 1) A. Copil Copac Draws Trees

    题意 Copil Copac 给定了一个由 n 1 条边组成的列表 该列表描述了一棵由 n 个顶点组成的树 他决定用下面的算法来绘制它 步骤 0 绘制第一个顶点 顶点1 转到步骤1 步骤 1 对于输入中的每一条边 依次 如果该边连接一个已经
  • 【完全开源】小安派-Cam-U 摄像头核心板

    一 概述 小安派 Cam U AiPi Cam U 是安信可开源团队专门为Ai M61 32S设计的一款开发板 支持WiFi6 BLE5 3 所搭载的Ai M61 32S 模组具有丰富的外设接口 具体包括 DVP MJPEG Dispaly
  • [4G&5G专题-120]:培训-跟小朋友聊通信

    用小孩子的语言与小朋友聊通信
  • 【算法 -- LeetCode】(025) K 个一组翻转链表

    1 题目 给你链表的头节点 head 每 k 个节点一组进行翻转 请你返回修改后的链表 k 是一个正整数 它的值小于或等于链表的长度 如果节点总数不是 k 的整数倍 那么请将最后剩余的节点保持原有顺序 你不能只是单纯的改变节点内部的值 而是
  • 什么是钩子函数

    钩子函数 钩子函数 钩子函数是在一个事件触发的时候 在系统级捕获到了他 然后做一些操作 一段用以处理系统消息的程序 钩子 就是在某个阶段给你一个做某些处理的机会 钩子函数 1 是个函数 在系统消息触发时被系统调用 2 不是用户自己触发的 钩
  • Highcharts中更新series的5种方法

    用Highcharts画图时 经常需要更新所画的图表 最常见的就是改变数据以更新图表 在Highcarts中 数据对应的参数是series 这儿就以图1的柱状图为例 列举如何更新series的5种方法 以供参考 源代码可从这儿访问 图1 1
  • 嵌入式Linux驱动开发(LCD屏幕专题)(四)

    单Buffer的缺点与改进方法 1 单Buffer的缺点 如果APP速度很慢 可以看到它在LCD上缓慢绘制图案 即使APP速度很高 LCD控制器不断从Framebuffer中读取数据来显示 而APP不断把数据写入Framebuffer 假设
  • [从零开始学DeepFaceLab-9]: 使用-命令行八大操作步骤-第6步:模型的选择与训练 - 模型选择

    目录 总体流程 步骤6 模型的选择与训练 模型选择 6 1 模型的差别 6 2 SAEHD模型的超参数
  • spring-integration-redis中分布式锁RedisLockRegistry的使用

    pom依赖
  • Java技术从零到CTO路线图

    在技术方面无论我们怎么学习 总感觉需要提升自已不知道自己处于什么水平了 但如果有清晰的指示图供参考还是非常不错的 这样我们清楚的知道我们大概处于那个阶段和水平 Java程序员 高级特性 反射 泛型 注释符 自动装箱和拆箱 枚举类 可变 参数
  • 毕业设计-基于机器油菜虫害图像识别方法研究 -YOLO

    目录 前言 课题背景和意义 实现技术思路 相关基础理论与技术 1 人工神经网络 2 卷积神经网络 3 基于卷积神经网络的目标检测识别模型 4 YOLO 系列算法 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实
  • 韩式多用动态图(甜蜜女孩)

  • 离线在Jenkins安装CoBOT安装插件

    最近在某金融客户做POC 把CoBOT安装在Jenkins上面 当前Jenkins版本没有任何插件 安装后由于是云桌面没有连接互联网或已经设置访问策略 无法进行在线安装插件 所以只能下载插件后再安装 在网络上搜索Jenkins插件 下载到两
  • 【SpringCloud】application.yml和 bootstrap.yml 区别

    1 首先yml和properties文件都是属于配置文件 功能一样 主要是区别于application和bootstrap的加载顺序 Bootstrap yml bootstrap properties 在application yml a
  • caffe问题Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Python

    caffe中输入层使用python时 出现问题 Check failed registry count type 1 0 vs 1 Unknown layer type Python 解决方法 在caffe目录下Makefile confi
  • va_start和va_end使用详解

    本文主要介绍va start和va end的使用及原理 介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理 1 在C中 当我们无法列出传递函数的所有实参的类型和数目时 可以用省略号指定参数表 void foo void foo par
  • 手机抓包fiddler配置及使用教程

    本文基于Fiddler4讲解基本使用 fiddler抓包原理 注意 Fiddler 是以代理web服务器的形式工作的 它使用代理地址 127 0 0 1 端口 8888 当Fiddler退出的时候它会自动注销 这样就不会影响别的 程序 不过
  • libsvm库简介及使用

    libsvm是基于支持向量机 support vector machine SVM 实现的开源库 由台湾大学林智仁 Chih Jen Lin 教授等开发 它主要用于分类 支持二分类和多分类 和回归 它的License是BSD 3 Claus
  • Terdata 基础 第三课(参数宏)

    1 宏不是ANSI标准支持的 但大部分RDBMS都支持宏 在Teradata中 在ANSI和BTET缺省模式下都可以创建和执行宏 只不过在ANSI模式下会给出警告信息 1 1 参数宏 宏中可以包含可替代值的变量 CREATE MACRO d