logo资料库

星环-transwarp-inceptor-V5.1使用手册.pdf

第1页 / 共688页
第2页 / 共688页
第3页 / 共688页
第4页 / 共688页
第5页 / 共688页
第6页 / 共688页
第7页 / 共688页
第8页 / 共688页
资料共688页,剩余部分请下载后查看
Transwarp Data Hub Version 5.1 Inceptor使用手册
目录
1. Inceptor介绍
2. Inceptor基础
2.1. Inceptor中的对象
2.1.1. 数据库
2.1.2. 表
2.1.2.1. 表的分类
2.1.2.1.1. 按Inceptor的所有权分类
2.1.2.1.2. 按表的存储格式分类
2.1.2.1.3. 按表是否分区分类
2.1.2.1.4. 按表是否分桶分类
2.1.3. 视图
2.1.4. 函数
2.2. Inceptor中的数据类型
2.2.1. 简单数据类别
2.2.2. 复杂数据类别
2.2.2.1. ARRAY 示例
2.2.2.2. MAP 示例
2.2.2.3. STRUCT 示例
2.2.3. 数据类型对应表
2.2.3.1. Inceptor与Oracle的数据类型对应表
2.2.3.2. Inceptor与DB2的数据类型对应表
2.2.3.3. Inceptor与JDBC的数据类型对应表
2.3. Inceptor交互方法
2.3.1. 连接Inceptor
2.3.2. 交互语言
2.4. 命令行交互
2.4.1. 进入命令行
2.4.2. Beeline命令行
2.4.2.1. beeline指令选项
2.4.2.2. beeline命令行中的非SQL指令
2.4.3. Inceptor命令行快速入门
2.5. Inceptor Library
2.6. {incpetor} Local VS Cluster Mode
2.7. 如何访问本地文件
3. Inceptor SQL手册
3.1. Inceptor SQL手册一览
3.1.1. Inceptor SQL中的语句类型
3.1.2. 手册的格式规范
3.1.3. Inceptor SQL手册中使用的表
3.2. SQL语句的编程规范
3.2.1. 注释
3.2.2. 大小写规则
3.2.3. 缩进与换行
3.2.4. 子查询嵌套
3.2.5. 表别名
3.2.6. 运算符前后间隔要求
3.2.7. 临时表
3.2.8. GROUP BY / ORDER BY
3.2.9. 字段类型
3.3. 数据定义语言(DDL)
3.3.1. CREATE/DROP/ALTER DATABASE
3.3.1.1. CREATE DATABASE
3.3.1.2. DROP DATABASE
3.3.1.3. ALTER DATABASE
3.3.1.4. USE DATABASE
3.3.2. CREATE/DROP/ALTER/TRUNCATE TABLE
3.3.2.1. CREATE TABLE
3.3.2.1.1. 直接建表
3.3.2.1.2. CREATE TABLE LIKE
3.3.2.1.3. CREATE TABLE AS SELECT (CTAS)
3.3.2.2. DROP TABLE
3.3.2.3. ALTER TABLE
3.3.2.3.1. 重命名:ALTER TABLE RENAME TO
3.3.2.3.2. 修改或添加TBLPROPERTIES
3.3.2.3.3. 修改或添加SERDEPROPERTIES
3.3.2.3.4. 修改外表目录
3.3.2.4. TRUNCATE TABLE
3.3.3. CHANGE/ADD/REPLACE COLUMNS
3.3.3.1. CHANGE COLUMNS
3.3.3.2. ADD|REPLACE COLUMNS
3.3.4. CREATE/DROP VIEW
3.3.4.1. CREATE VIEW
3.3.4.2. DROP VIEW
3.3.5. CREATE/DROP FUNCTION
3.3.5.1. CREATE/DROP TEMPORARY FUNCTION
3.3.5.2. CREATE/DROP PERMANENT FUNCTION
3.3.6. SHOW
3.3.6.1. SHOW DATABASES
3.3.6.2. SHOW TABLES
3.3.6.3. SHOW TBLPROPERTIES
3.3.6.4. SHOW CREATE TABLE
3.3.6.5. SHOW PARTITIONS
3.3.6.6. SHOW COLUMNS
3.3.6.7. SHOW FUNCTIONS
3.3.7. DESCRIBE
3.3.7.1. DESCRIBE DATABASE
3.3.7.2. DESCRIBE TABLE
3.3.7.3. DESCRIBE COLUMN
3.3.7.4. DESCRIBE PARTITION
3.3.7.5. DESCRIBE FUNCTION
3.4. 数据操作语言(DML)
3.4.1. 导入数据:LOAD
3.4.2. 向表插入数据
3.4.2.1. 单次插入
3.4.2.2. 多次插入
3.4.3. 向文件系统中插入数据
3.4.3.1. 写入本地文件系统
3.4.3.2. 写入HDFS
3.4.3.3. Multi-Insert
3.4.4. 查询语句
3.4.4.1. 过滤:WHERE和HAVING
3.4.4.1.1. WHERE子句
3.4.4.1.2. HAVING子句
3.4.4.2. ORDER BY, SORT BY, DISTRIBUTE BY和CLUSTER BY
3.4.4.2.1. ORDER BY
3.4.4.2.2. SORT BY
3.4.4.2.3. DISTRIBUTE BY与SORT BY合用
3.4.4.2.4. CLUSTER BY
3.4.4.3. GROUP BY
3.4.4.3.1. 单列GROUP BY
3.4.4.3.2. GROUP BY (number)
3.4.4.3.3. 多列GROUP BY
3.4.4.3.4. 用表达式GROUP BY
3.4.4.3.5. 在GROUP BY子句中过滤:HAVING 子句
3.4.4.4. GROUP BY 扩展:ROLLUP/CUBE/GROUPING SETS
3.4.4.4.1. ROLLUP
3.4.4.4.2. CUBE
3.4.4.4.3. GROUPING SETS
3.4.4.5. 多表查询:JOIN
3.4.4.5.1. 笛卡尔连接:Cartesian Join
3.4.4.5.2. 内连接:INNER JOIN
3.4.4.5.3. 外连接:OUTER JOIN
3.4.4.5.4. 隐式连接:Implicit JOIN
3.4.4.5.5. 自然连接:NATURAL JOIN
3.4.4.5.6. 多表连接
3.4.4.5.7. 重复连接
3.4.4.5.8. 表的自连接
3.4.4.5.9. 左半连接和左半反连接
3.4.4.5.10. 不等价连接
3.4.4.5.11. MAP JOIN
3.4.4.6. 子查询
3.4.4.6.1. 非关联子查询:Non-Correlated Subqueries
3.4.4.6.2. 关联子查询(Correlated Subquery)
3.4.4.6.3. 子查询的多层嵌套
3.4.4.7. WITH…​AS
3.4.4.8. 化名
3.4.4.8.1. 表化名(Table Alias)
3.4.4.8.2. 列化名(Column Alias)
3.4.4.9. 集合运算:UNION/INTERSECT/EXCEPT
3.4.4.9.1. UNION 和 UNION ALL
3.4.4.9.2. INTERSECT 和 INTERSECT ALL
3.4.4.9.3. EXCEPT 和 EXCEPT ALL
3.4.4.10. 分页
3.4.4.10.1. 本节使用表
3.4.4.10.2. 语法
3.4.4.11. SQL层次化查询
3.4.4.11.1. 简单介绍
3.4.4.11.2. 本节使用的表
3.4.4.11.3. 用例
3.4.4.12. Sequence语法
3.4.4.12.1. Sequence的创建、修改、删除、查询
3.4.4.12.2. 对Sequence的访问
3.4.4.12.3. Sequence的使用实例
3.5. 事务控制语言(TCL)
3.5.1. 提交和回滚:COMMIT和ROLLBACK
3.5.2. 嵌套事务
3.5.3. 自治事务
3.6. 数据控制语言(DCL)
3.6.1. 角色管理语法
3.6.2. Inceptor对象权限管理语法
3.7. Database Links
3.7.1. 使用前的准备
3.7.2. Database Link语法一览
3.7.3. 查看:SHOW DATABASE LINKS
3.7.4. 描述:DESCRIBE DATABASE LINK
3.7.5. 创建:CREATE DATABASE LINK
3.7.5.1. 连接到Oracle数据库
3.7.5.2. 连接到Mysql数据库
3.7.5.3. 连接到DB2数据库
3.7.5.4. 连接到PostgreSQL数据库
3.7.6. 删除:DROP DATABASE LINK
3.7.7. 使用Database Link
3.8. 数据稽查
3.8.1. 本节使用数据
3.8.2. 基本介绍
3.8.3. 相关语法
3.8.4. Error Table的信息
3.8.5. Error Table的权限控制
3.9. TEXT表
3.9.1. 建TEXT表
3.9.2. 分隔符
3.9.2.1. 单字符分隔符
3.9.2.2. 多字符分隔符
3.10. CSV表
3.10.1. 建CSV外表
3.11. ORC表
3.11.1. 将要使用的表
3.11.2. 建ORC事务表
3.11.3. ORC事务表的CRUD
3.11.3.1. INSERT
3.11.3.2. UPDATE
3.11.3.3. DELETE
3.11.3.4. MERGE INTO
3.11.3.5. CRUD以子查询为目标
3.12. Holodesk表
3.12.1. 简介
3.12.2. Holodesk建表语法
3.13. 基于定宽文本文件建外表
3.13.1. 简介
3.13.2. 建表语法
3.13.3. 建表示例
3.14. 分区表
3.14.1. 单值分区表
3.14.1.1. 建表
3.14.1.2. 导入数据
3.14.1.2.1. 单次插入
3.14.1.2.2. 多次插入
3.14.1.2.3. 动态分区插入
3.14.1.3. 其他单值分区表DDL和DML
3.14.1.3.1. 清空分区中的数据
3.14.1.3.2. 删除分区
3.14.1.3.3. 添加分区
3.14.1.3.4. 重命名分区
3.14.2. 范围分区表
3.14.2.1. 建表
3.14.2.2. 导入数据
3.14.2.3. ALTER 范围分区表
3.14.2.3.1. 添加范围分区
3.14.2.3.2. 删除范围分区
3.15. 分桶表
3.15.1. 建表
3.15.2. 向分桶表内导数据 
3.16. Inceptor暂不支持的语法汇总
3.16.1. 不支持right semi join
3.16.2. 不支持right anti semi join
3.16.3. 不支持JOIN条件中带有顶层的OR条件
3.16.4. 顶层无等值条件时,不支持JOIN条件中使用BETWEEN/IN
3.16.5. 不支持 CREATE VIEW AS SELECT …​ UNION SELECT…​
3.16.6. 关联子查询中不支持or条件
3.16.7. 顶层无等值条件时,关联子查询中不支持非等值比较
3.16.8. 不支持创建主键 外键约束
3.16.9. JOIN
3.16.9.1. semi join 和 anti semi join
3.16.9.2. 仅支持left semi join,不支持 left anti semi join
3.16.9.2.1. 支持left semi join
3.16.9.2.2. 不支持 left anti semi join
3.16.9.3. 不支持 right semi join
3.16.9.4. 不支持 right anti semi join
3.16.10. 不支持JOIN条件中带有顶层的OR条件
3.16.11. JOIN …​ ON
3.16.11.1. 支持 JOIN …​ ON …​ AND
3.16.11.2. 顶层无等值条件时,不支持 JOIN …​ ON …​ OR
3.16.11.3. 顶层无等值条件时,不支持JOIN条件中使用BETWEEN/IN
3.16.11.3.1. 顶层无等值条件时,不支持JOIN条件中使用BETWEEN
3.16.12. 关联子查询
3.16.12.1. 关联子查询中的关联条件不支持OR
3.16.12.2. 顶层无等值条件时,关联子查询中的关联条件不支持非等值比较
3.16.13. CREATE VIEW
3.16.13.1. 不支持CREATE VIEW AS SELECT …​ UNION SELECT …​
3.16.13.2. 支持 SELECT …​ UNION SELECT…​
3.16.14. 不支持主键、外键
3.16.15. 创建主键的方式
3.16.16. 创建主键 外键约束
3.16.17. Inceptor暂不支持主键和外键
3.16.17.1. 不支持主键
3.16.18. 不支持主键和外键
4. Inceptor PL/SQL手册(Oracle 方言)
4.1. Inceptor PL/SQL一览
4.2. Inceptor PL/SQL手册中的表
4.3. 基础知识
4.3.1. 声明
4.3.1.1. 变量
4.3.1.2. 常量
4.3.1.3. DEFAULT
4.3.2. 命名规则
4.3.2.1. 重复命名
4.3.2.2. 大小写敏感性
4.3.2.3. 命名解析
4.3.2.4. 嵌套命名
4.3.3. 赋值
4.3.3.1. 赋予变量逻辑值
4.3.3.2. 赋予变量查询结果
4.4. 数据类型
4.4.1. 标量类型
4.4.1.1. STRINGS
4.4.1.2. INT
4.4.2. %TYPE属性
4.4.3. %ROWTYPE属性
4.4.4. 复合类型
4.5. 创建PL/SQL语句块 [[一览-创建PL/SQL语句块]]
4.5.1. PL/SQL语句块组成部分
4.5.2. 最简单的匿名块
4.5.3. 稍复杂的匿名块
4.5.4. 完整的匿名块
4.5.5. 匿名块里的嵌套
4.6. 流程控制语句
4.6.1. IF
4.6.1.1. IF-THEN
4.6.1.2. IF-THEN-ELSE
4.6.1.3. IF-THEN-ELSIF
4.6.2. LOOP
4.6.3. WHILE
4.6.4. FOR
4.6.5. FORALL
4.6.5.1. 例一 使用FORALL往表中插入数据
4.6.5.2. 例二 使用FORALL查询表中数据
4.6.6. EXIT WHEN
4.6.7. CONTINUE(WHEN)
4.6.8. GOTO
4.6.8.1. GOTO语句的限制
4.6.9. CASE
4.7. PL/SQL存储过程
4.7.1. 不带参数的过程
4.7.2. 带参数的过程
4.7.2.1. IN 类型
4.7.2.2. 默认模式
4.7.2.2.1. 示例一
4.7.2.2.2. 示例二
4.7.2.3. OUT类型
4.7.2.3.1. 示例一
4.7.2.3.2. 示例二
4.7.2.4. INOUT类型
4.7.2.4.1. 例一 IN与INOUT的对比
4.7.2.4.2. 例二 OUT与INOUT的对比
4.7.2.4.3. 案例三
4.7.2.5. 实参与形参的关联
4.7.2.5.1. 位置表示法
4.7.2.5.2. 命名表示法
4.7.3. 过程重载
4.7.4. 系统预定义过程
4.8. PL/SQL函数
4.8.1. 创建函数
4.8.2. 调用函数
4.8.2.1. 单独调用函数
4.8.2.2. 在过程中调用函数
4.8.2.3. SQL语句中调用函数
4.8.2.4. 函数的嵌套调用
4.8.3. 函数重载
4.8.4. 系统预定义函数
4.9. Records
4.9.1. Records语法
4.9.2. Records创建及使用
4.9.2.1. 方法一:自定义每一个分量的名字和类型
4.9.2.2. 方法二:基于表,定义每一个分量的名字和类型
4.9.2.3. 方法三:利用%ROWTYPE属性快速声明一个记录型变量
4.10. Collections
4.10.1. VARRAY
4.10.1.1. VARRAY语法
4.10.1.2. VARRAY声明与赋值
4.10.1.3. VARRAY类型的使用范围
4.10.2. NESTED TABLE
4.10.2.1. NESTED TABLE语法
4.10.2.2. 表类型变量的声明与赋值
4.10.3. Associative arrays
4.10.3.1. Associative arrays语法
4.10.3.2. Associative arrays变量的声明和赋值
4.10.4. Collections 方法
4.10.4.1. COUNT()
4.10.4.1.1. VARRAY
4.10.4.1.2. NESTED TABLE
4.10.4.1.3. Associative arrays
4.10.4.2. FIRST()和LAST()
4.10.4.2.1. VARRAY
4.10.4.2.2. Associative arrays
4.10.4.3. PRIOR(n)和NEXT(n)
4.10.4.4. EXTEND(k)
4.10.4.4.1. VARRAY
4.10.4.4.2. NESTED TABLE
4.10.4.5. TRIM(k)
4.10.4.5.1. VARRAY
4.10.4.5.2. NESTED TABLE
4.10.4.5.3. Associative arrays
4.10.4.6. DELETE([k])
4.10.4.6.1. VARRAY
4.10.4.6.2. NESTED TABLE
4.10.4.6.3. Associative arrays
4.10.4.7. EXISTS()
4.10.4.7.1. Varray
4.10.4.7.2. Associative Arrays
4.10.4.8. LIMIT()
4.11. 游标(Cursors)
4.11.1. 显式游标
4.11.1.1. 不带参数的显式游标使用示例
4.11.1.2. 带参数的显式游标使用示例
4.11.2. 隐式游标
4.11.2.1. 隐式游标使用示例
4.11.3. 游标变量
4.11.3.1. 游标变量使用示例
4.11.3.1.1. 强类型游标变量
4.11.3.1.2. 弱类型游标变量
4.11.3.1.3. 游标变量作为参数传递
4.12. 与SQL的交互
4.12.1. PL/SQL过程与SQL的交互
4.12.1.1. INSERT
4.12.1.2. DELETE
4.12.1.3. UPDATE
4.12.1.4. MERGE
4.12.1.4.1. 仅满足条件的情况下,更新
4.12.1.4.2. 满足条件更新,不满足条件插入
4.12.2. PL/SQL函数与SQL的交互
4.12.3. 隐式游标
4.12.4. BULK COLLECT
4.12.4.1. 在fetch into中使用bulk collect
4.12.4.2. 在select into中使用bulk collect
4.12.5. 动态SQL
4.12.5.1. EXECUTE IMMEDIATE
4.12.5.1.1. 处理DDL语句
4.12.5.1.2. 处理DCL语句
4.12.5.1.3. 处理单行查询
4.12.5.1.4. 处理不含占位符的DML语句
4.12.5.1.5. 处理占位符的DML语句
4.12.5.2. 使用OPEN-FOR,FETCH和CLOSE语句
4.12.5.2.1. 语法
4.12.5.2.2. 示例
4.13. Packages
4.13.1. Packages的创建
4.13.1.1. 语法
4.13.1.1.1. 创建包头
4.13.1.1.2. 创建包体
4.13.1.1.3. Packages的调用
4.13.1.2. 实例
4.13.1.2.1. 创建包头
4.13.1.2.2. 创建包体
4.13.1.2.3. 包的调用
4.13.2. Packages的使用案例
4.13.2.1. 仅创建Packages包头
4.13.2.2. 创建Packages包头和包体
4.13.3. 系统预定义包
4.14. 预定义函数/过程/包 [[一览-预定义函数/过程/包]]
4.14.1. 语法
4.14.2. 案例
4.14.2.1. set_env与get_env
4.14.2.2. sqlcode与sqlerrm
4.14.2.3. get_columns
4.14.2.4. raise_application_error
4.14.2.5. PUT_LINE
4.14.2.6. dbms_output
4.14.2.7. owa_util
4.15. 异常
4.15.1. 支持的系统预定义异常
4.15.1.1. NO_DATA_FOUND
4.15.1.2. TOO_MANY_ROWS
4.15.1.3. CURSOR_ALREADY_OPEN
4.15.1.4. ROWTYPE_MISMATCH
4.15.1.5. SUBSCRIPT_BEYOND_COUNT
4.15.1.6. SUBSCRIPT_OUTSIDE_LIMIT
4.15.1.7. COLLECTION_IS_NULL
4.15.1.8. INVALID_CURSOR
4.15.2. 暂不支持的系统预定义异常
4.15.2.1. INVALID_NUMBER
4.15.2.2. VALUE_ERROR
4.15.2.3. ZERO_DIVIDE
4.15.2.4. DUP_VAL_ON_INDEX
4.15.2.5. CASE_NOT_FOUND
4.15.2.6. ACCESS_INTO_NULL
4.15.2.7. SELF_IS_NULL
4.15.2.8. SYS_INVALID_ROWID
4.15.2.9. NOT_LOGGED_ON
4.15.2.10. LOGIN_DENIED
4.15.2.11. 其它不支持的异常
4.15.3. 用户自定义异常
4.15.4. 嵌套异常
4.15.4.1. 异常处理
4.15.4.2. 异常分别出现在inner block和outer block里
4.15.4.2.1. 内部和外部的异常处理块,分别处理inner block和outer block里的异常
4.15.4.2.2. 内部块中的异常处理块处理outer block里的异常,外部块中的异常处理块处理inner block里的异常
4.15.4.3. 异常发生在inner block中
4.15.4.3.1. 内部块中的异常处理块处理inner block里的异常
4.15.4.3.2. 外部块中的异常处理块处理inner block里的异常
4.15.4.3.3. 没有异常处理块处理inner block里的异常
4.15.4.4. 异常发生在outer block中
4.15.4.4.1. 外部块中的异常处理块处理outer block里的异常
4.15.4.4.2. 内部块中的异常处理块处理outer block里的异常
4.16. 注意事项
4.16.1. 函数/存储过程的版本兼容
4.16.2. Inceptor对PL/SQL中分号的支持
4.16.3. PL/SQL中结果的打印
4.16.4. 标识符
4.16.4.1. SELECT/SELECT INTO
4.16.4.1.1. 案例一:SELECT/SELECT INTO语句后紧跟函数调用
4.16.4.1.2. 案例二:SELECT/SELECT INTO语句后紧跟赋值语句
4.16.4.2. FOR LOOP …​ END LOOP
4.16.4.2.1. 案例一:END LOOP后紧跟函数调用
4.16.4.2.2. 案例二:END LOOP后紧跟赋值语句
4.16.5. 标准SQL调用PL/SQL函数必须满足的条件
4.16.5.1. 必须是函数,不能是过程
4.16.5.1.1. 不支持SQL语句中调用PL/SQL过程
4.16.5.2. PL/SQL函数返回值必须是基本类型
4.16.5.2.1. PL/SQL函数返回值必须是基本类型
4.16.5.2.2. 不支持PL/SQL函数返回值是非基本类型
4.16.5.3. PL/SQL函数中不能有标准SQL语句
4.16.6. 不支持RETURN INTO 语句
4.16.7. 查看预定义函数/过程/包
4.16.7.1. 相关命令合集
4.16.7.2. 案例合集
4.16.8. PL/SQL中的PUT_LINE打印
4.16.9. Hive异常的处理
4.16.10. Debug
5. Inceptor SQL PL手册(DB2 方言)
5.1. Inceptor SQL PL一览
5.1.1. 输出
5.1.2. 声明
5.1.3. 赋值
5.1.4. 过程
5.1.5. 函数
5.1.6. 游标
5.1.7. 异常
5.1.8. 动态SQL
5.2. Inceptor SQL PL手册中的表
5.3. 基础知识
5.3.1. 快速入门
5.3.2. 声明
5.3.2.1. 基本变量的声明
5.3.2.1.1. STRING
5.3.2.1.2. INT
5.3.2.1.3. Boolean
5.3.2.1.4. DATE
5.3.2.1.5. TIMESTAMP
5.3.2.1.6. STATEMENT
5.3.2.2. 常量的声明
5.3.2.3. 重复命名
5.3.2.4. 大小写敏感性
5.3.2.5. 嵌套命名
5.3.3. 赋值
5.3.3.1. SET
5.3.3.2. VALUES INTO
5.3.3.3. SELECT …​ INTO
5.4. 数据类型
5.4.1. 内置类型
5.4.1.1. STRING
5.4.1.2. INT
5.4.1.3. Boolean
5.4.1.4. DATE
5.4.1.5. TIMESTAMP
5.4.1.6. STATEMENT
5.4.2. 复合类型
5.4.3. 锚定类型
5.4.4. 特殊类型
5.5. 创建SQL PL语句块
5.5.1. 创建示例
5.6. 流程控制语句
5.6.1. IF
5.6.1.1. IF-THEN
5.6.1.2. IF-THEN-ELSE
5.6.1.3. IF-THEN-ELSIF
5.6.2. FOR
5.6.3. LOOP
5.6.3.1. the simple loop
5.6.4. WHILE
5.6.5. REPEAT
5.6.6. GOTO
5.6.7. LEAVE
5.6.8. ITERATE
5.6.9. CASE
5.7. 存储过程
5.7.1. 语法
5.7.2. 参数的选择
5.7.2.1. 不带参数
5.7.2.1.1. 例1:不带参数
5.7.2.2. IN 参数
5.7.2.2.1. 例2:IN参数
5.7.2.3. OUT 参数
5.7.2.3.1. 例3:OUT参数
5.7.2.3.2. 例4:OUT参数
5.7.2.3.3. 例5: IN,OUT参数
5.7.2.4. INOUT 参数
5.7.2.4.1. 例6:INOUT参数与OUT参数
5.7.2.4.2. 例7:INOUT参数与IN参数
5.7.2.4.3. 例8:INOUT参数综合运用
5.7.2.5. 不指定参数类型
5.7.2.5.1. 例9:不指定参数类型
5.7.3. 属性
5.7.4. 过程重载
5.8. SQLPL函数
5.8.1. 创建函数
5.8.2. 参数选择
5.8.2.1. IN
5.8.2.2. OUT
5.8.2.3. INOUT
5.8.3. 函数属性
5.8.4. 调用函数
5.8.4.1. 单独调用函数
5.8.4.2. 在存储过程内调用函数
5.8.4.3. SQL语句中调用函数
5.8.4.4. SQLPL函数中对其他函数的调用
5.8.5. 标准SQL调用SQLPL函数必须满足的条件
5.8.5.1. 必须是函数,不能是过程
5.8.5.2. SQLPL函数返回值必须是基本类型
5.8.5.2.1. SQLPL函数返回值必须是基本类型
5.8.5.3. SQLPL函数中不能有标准SQL语句
5.8.6. 函数重载
5.9. VARRAY
5.9.1. 定义数组类型及变量
5.9.2. 数组变量的赋值
5.9.2.1. SET
5.9.2.2. VALUES …​ INTO
5.9.3. 数组变量的方法调用
5.9.3.1. ARRAY_FIRST
5.9.3.2. ARRAY_LAST
5.9.3.3. ARRAY_NEXT
5.9.3.4. ARRAY_PRIOR
5.9.3.5. ARRAY_DELETE
5.9.3.6. CARDINALITY
5.10. 行数据类型
5.10.1. 语法
5.10.2. 声明与赋值
5.10.2.1. 例一
5.10.2.2. 例二
5.10.2.3. 例三
5.10.2.4. 例四
5.10.2.5. 例五
5.10.3. 基于表的行数据类型的声明
5.11. 游标
5.11.1. 组成部分
5.11.2. 基本用法
5.11.3. ALLOCATE CURSOR
5.11.3.1. 语法
5.11.3.2. 用例说明
5.12. 与SQL的交互
5.12.1. 将以SELECT返回值赋值给变量
5.12.2. SELECT INTO
5.12.3. 存储过程与SQL的交互
5.12.4. 函数与SQL的交互
5.12.5. 游标
5.12.6. 动态SQL
5.12.6.1. EXECUTE IMMEDIATE
5.12.6.1.1. 处理DDL语句
5.12.6.1.2. 处理DCL语句
5.12.6.1.3. 处理单行查询
5.12.6.1.4. 处理不含占位符的DML语句
5.12.6.1.5. 处理含有占位符的DML语句
5.12.6.2. PREPARE …​ EXECUTE
5.12.6.2.1. SELECT
5.12.6.2.2. INSERT
5.12.6.2.3. UPDATE
5.12.6.2.4. DELETE
5.12.7. GET DIAGNOSTICS
5.12.7.1. ROW_COUNT
5.12.7.2. EXCEPTION 1
5.13. 系统预定义函数/过程
5.13.1. 查看预定义函数/过程
5.13.1.1. 相关命令合集
5.13.1.2. 案例合集
5.13.2. 预定义函数/过程/包的介绍
5.13.3. 预定义函数/过程的使用
5.13.3.1. set_env与get_env
5.13.3.2. sqlcode与sqlerrm
5.13.3.3. sqlerrm(int)
5.13.3.4. PUT_LINE
5.13.3.5. raise_application_error
5.14. 异常
5.14.1. SQLCODE与SQLSTATE
5.14.2. SIGNAL
5.14.3. 异常分类
5.14.3.1. 预定义异常
5.14.3.2. 自定义异常
5.14.3.2.1. 语法
5.14.3.2.2. 实例
5.14.3.3. 异常处理
5.14.3.4. 实例
5.14.3.4.1. 自定义异常的处理
5.14.3.4.2. 预定义异常的处理
5.14.4. RESIGNAL
5.14.4.1. 语法
5.14.4.2. 用例
5.14.5. DEBUG
5.15. 注意事项
5.15.1. 函数/存储过程的版本兼容
5.15.2. 方言的选择
5.15.3. 分号的支持
5.15.4. PL/SQL中结果的打印
6. Inceptor函数和运算符手册
6.1. Inceptor函数和运算符手册中的表
6.2. 关系运算符
6.3. 算术运算符
6.4. 逻辑运算符
6.5. 数学函数
6.6. 类型转换函数
6.7. 日期函数
6.8. 条件函数
6.9. 字符串函数
6.10. XML函数
6.11. 复杂类型函数
6.12. 表生成函数
6.12.1. LATERRAL VIEW
6.13. 聚合函数
6.14. 窗口函数
6.14.1. OVER子句
6.14.2. 窗口函数详解
6.15. Context函数
6.15.1. current_user
6.15.2. has_role
6.15.3. current_database
6.15.4. current_time
6.15.5. current_date
6.15.6. current_timestamp
6.16. 脱敏相关函数
6.17. 其他函数和运算符
7. Inceptor多租户手册
7.1. Inceptor权限和角色管理
7.1.1. Inceptor对用户身份的判断
7.1.2. Inceptor管理员身份的获取
7.1.3. Inceptor角色管理
7.1.3.1. CREATE ROLE:创建角色
7.1.3.2. DROP ROLE:删除角色
7.1.3.3. SHOW CURRENT ROLES:查看用户当前所有的角色
7.1.3.4. SET ROLE:设置角色
7.1.3.5. SHOW ROLES:查看所有Inceptor中的角色
7.1.3.6. GRANT ROLE:授予角色
7.1.3.7. REVOKE ROLE:收回角色
7.1.3.8. SHOW ROLE GRANT:查看用户/角色拥有的角色
7.1.3.9. SHOW PRINCIPALS:查看拥有某个角色的用户和角色
7.1.4. Inceptor权限管理
7.1.4.1. GRANT:权限的授予
7.1.4.1.1. 授予全局权限
7.1.4.1.2. 授予数据库级别权限
7.1.4.1.3. 授予表和视图级别的权限
7.1.4.2. REVOKE:权限的收回
7.1.4.2.1. 收回全局权限
7.1.4.2.2. 收回数据库级别的权限
7.1.4.2.3. 收回表和视图级别的权限
7.1.4.3. SHOW:权限的查看
7.1.5. Inceptor操作所需权限总结
7.2. Inceptor中的行级和列级权限
7.2.1. 列级和行级权限设置操作一览
7.2.2. 行级和列级权限(PERMISSION)对比表级权限 (PRIVILEGE)
7.2.3. 行级权限的设置
7.2.3.1. 用法1:将权限直接设置给用户
7.2.3.2. 用法2:使用一张辅助表设置行级权限
7.2.4. 行级权限的取消
7.2.5. 列级权限的设置
7.2.5.1. 背景
7.2.5.2. 授权
7.2.5.3. 不同用户查看表
7.2.6. 列级权限的取消
7.2.7. 行级和列级权限的查看
7.3. Inceptor中设置HDFS文件的ACL
7.3.1. 设置用户/组对某张表的FACL
7.3.2. 取消用户/组对某张表的FACL
7.3.3. 取消某张表上的全部FACL
7.3.4. 查看用户/组对某张表的FACL
7.3.5. 查看某张表上的所有FACL
7.4. 空间配额管理操作
7.4.1. 语法总结
7.4.1.1. 设置配额
7.4.1.1.1. 查看配额
7.4.1.1.2. 取消配额
7.4.2. 示例操作
7.4.2.1. 数据库数据空间配额管理
7.4.2.2. 用户空间配额管理
7.4.2.3. 临时空间配额管理
7.4.2.3.1. 用户临时空间配额管理
7.4.2.3.2. 所有临时空间配额管理
8. Inceptor JDBC手册
8.1. Inceptor JDBC手册一览
8.1.1. 获取Inceptor JDBC驱动
8.2. 应用程序中的JDBC交互
9. Inceptor ODBC手册
9.1. 简介
9.2. 关于Inceptor ODBC
9.3. 安装Inceptor ODBC
9.3.1. 在Windows下安装
9.3.2. 在Linux下安装
9.3.2.1. 安装Linux ODBC Driver Manager
9.3.2.2. 安装ODBC驱动
9.4. 配置Inceptor ODBC
9.4.1. ODBC数据源名称概览
9.4.2. Windows下ODBC DSN的配置
9.4.3. Linux下ODBC DSN的配置
9.4.4. 获取ODBC相关日志文件
9.4.4.1. 开启ODBC Driver Manager日志
9.4.4.2. 开启ODBC日志
9.4.5. Kerberos安装配置
9.4.5.1. Windows下的配置过程
9.4.5.2. Linux下的配置过程
9.5. Inceptor ODBC实例
9.5.1. ODBC操作基本步骤
9.5.2. C示例代码
9.5.3. C#示例代码
9.5.4. Python示例代码
9.5.5. Perl示例代码
9.5.6. Ruby示例代码
9.5.7. PHP示例代码
9.6. 备注和说明
9.6.1. ODBC API列表
9.6.2. ODBC数据类型
9.6.3. ODBC错误码
10. Inceptor外部工具连接手册
10.1. Inceptor外部工具连接手册一览
10.2. 使用JDBC的外部工具连接
10.2.1. 连接前的准备
10.2.2. DbVisualiser连接Inceptor
10.2.2.1. 添加驱动
10.2.2.2. 创建连接
10.2.3. 通过DbVisualiser创建并查看存储过程
10.2.4. Squirrel SQL连接Inceptor
10.2.4.1. 添加驱动
10.2.4.2. 添加alias
10.2.4.2.1. 无需认证的InceptorServer 2的alias
10.2.4.2.2. LDAP认证的InceptorServer 2的alias
10.2.4.2.3. Kerboros认证的InceptorServer 2的alias
10.3. 使用ODBC的外部工具连接
10.3.1. Tableau连接Inceptor
11. Inceptor运维手册
11.1. Inceptor的配置
11.1.1. 安装时配置LDAP认证
11.1.2. 安装时配置Kerberos认证模式
11.1.3. 认证模式切换
11.2. 多Inceptor的安装配置
11.3. Inceptor 资源调度器
11.3.1. Inceptor Scheduler的三种调度模式
11.3.2. Inceptor Scheduler的配置
11.3.2.1. 启动Guardian插件
11.3.2.2. Inceptor Scheduler配置方式
11.3.2.2.1. 队列权限的配置
11.3.2.2.2. 计算配额额的设置
附录 A: Inceptor字段规范
附录 B: Inceptor中的关键字
B.1. 基本概念
B.2. 非保留关键词的受限范围
B.3. 关键词列表
B.3.1. 保留关键词
B.3.2. 非保留关键词
客户服务
Transwarp Data Hub Version 5.1 Inceptor使用手册 星环信息科技(上海)有限公司 版本号 T00151x-03-010, 2017-12-07
目录 1. Inceptor介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2 2. Inceptor基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5 2.1. Inceptor中的对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5 2.1.1. 数据库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5 2.1.2. 表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5 2.1.2.1. 表的分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5 2.1.2.1.1. 按Inceptor的所有权分类 . . . . . . . . . . . . . . . . . . . . . . . . .  6 2.1.2.1.2. 按表的存储格式分类 . . . . . . . . . . . . . . . . . . . . . . . . . . .  6 2.1.2.1.3. 按表是否分区分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  7 2.1.2.1.4. 按表是否分桶分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  7 2.1.3. 视图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8 2.1.4. 函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  10 2.2. Inceptor中的数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  10 2.2.1. 简单数据类别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  10 2.2.2. 复杂数据类别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  17 2.2.2.1. ARRAY 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  17 2.2.2.2. MAP 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  18 2.2.2.3. STRUCT 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  19 2.2.3. 数据类型对应表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  20 2.2.3.1. Inceptor与Oracle的数据类型对应表 . . . . . . . . . . . . . . . . . . . . . .  20 2.2.3.2. Inceptor与DB2的数据类型对应表 . . . . . . . . . . . . . . . . . . . . . . .  21 2.2.3.3. Inceptor与JDBC的数据类型对应表 . . . . . . . . . . . . . . . . . . . . . . .  22 2.3. Inceptor交互方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23 2.3.1. 连接Inceptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23 2.3.2. 交互语言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23 2.4. 命令行交互 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  24 2.4.1. 进入命令行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  24 2.4.2. Beeline命令行. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  26 2.4.2.1. beeline指令选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  26 2.4.2.2. beeline命令行中的非SQL指令 . . . . . . . . . . . . . . . . . . . . . . . . .  27 2.4.3. Inceptor命令行快速入门 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  27 2.5. Inceptor Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  29 2.6. {incpetor} Local VS Cluster Mode . . . . . . . . . . . . . . . . . . . . . . . . . .  29 2.7. 如何访问本地文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  30 3. Inceptor SQL手册 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  31 3.1. Inceptor SQL手册一览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  31 3.1.1. Inceptor SQL中的语句类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  31 3.1.2. 手册的格式规范 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  32 3.1.3. Inceptor SQL手册中使用的表 . . . . . . . . . . . . . . . . . . . . . . . . . . .  33 3.2. SQL语句的编程规范 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  34 3.2.1. 注释 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  34 3.2.2. 大小写规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  34
3.2.3. 缩进与换行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  34 3.2.4. 子查询嵌套 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  35 3.2.5. 表别名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  35 3.2.6. 运算符前后间隔要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  35 3.2.7. 临时表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  36 3.2.8. GROUP BY / ORDER BY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  36 3.2.9. 字段类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  36 3.3. 数据定义语言(DDL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37 3.3.1. CREATE/DROP/ALTER DATABASE . . . . . . . . . . . . . . . . . . . . . . . . . . .  37 3.3.1.1. CREATE DATABASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37 3.3.1.2. DROP DATABASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37 3.3.1.3. ALTER DATABASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  38 3.3.1.4. USE DATABASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  38 3.3.2. CREATE/DROP/ALTER/TRUNCATE TABLE . . . . . . . . . . . . . . . . . . . . . . . .  38 3.3.2.1. CREATE TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  38 3.3.2.1.1. 直接建表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  38 3.3.2.1.2. CREATE TABLE LIKE . . . . . . . . . . . . . . . . . . . . . . . . . . .  40 3.3.2.1.3. CREATE TABLE AS SELECT (CTAS) . . . . . . . . . . . . . . . . . . . . .  41 3.3.2.2. DROP TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  41 3.3.2.3. ALTER TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  41 3.3.2.3.1. 重命名:ALTER TABLE RENAME TO . . . . . . . . . . . . . . . . . . . . .  41 3.3.2.3.2. 修改或添加TBLPROPERTIES . . . . . . . . . . . . . . . . . . . . . . . .  42 3.3.2.3.3. 修改或添加SERDEPROPERTIES . . . . . . . . . . . . . . . . . . . . . . .  42 3.3.2.3.4. 修改外表目录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  42 3.3.2.4. TRUNCATE TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  42 3.3.3. CHANGE/ADD/REPLACE COLUMNS . . . . . . . . . . . . . . . . . . . . . . . . . . .  42 3.3.3.1. CHANGE COLUMNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  42 3.3.3.2. ADD|REPLACE COLUMNS . . . . . . . . . . . . . . . . . . . . . . . . . . . .  43 3.3.4. CREATE/DROP VIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  44 3.3.4.1. CREATE VIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  44 3.3.4.2. DROP VIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  44 3.3.5. CREATE/DROP FUNCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  44 3.3.5.1. CREATE/DROP TEMPORARY FUNCTION . . . . . . . . . . . . . . . . . . . . . . .  44 3.3.5.2. CREATE/DROP PERMANENT FUNCTION . . . . . . . . . . . . . . . . . . . . . . .  46 3.3.6. SHOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  46 3.3.6.1. SHOW DATABASES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  46 3.3.6.2. SHOW TABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  46 3.3.6.3. SHOW TBLPROPERTIES . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  47 3.3.6.4. SHOW CREATE TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  47 3.3.6.5. SHOW PARTITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  47 3.3.6.6. SHOW COLUMNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  47 3.3.6.7. SHOW FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  47 3.3.7. DESCRIBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  48 3.3.7.1. DESCRIBE DATABASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  48 3.3.7.2. DESCRIBE TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  48
3.3.7.3. DESCRIBE COLUMN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  48 3.3.7.4. DESCRIBE PARTITION . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  48 3.3.7.5. DESCRIBE FUNCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  48 3.4. 数据操作语言(DML) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  49 3.4.1. 导入数据:LOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  49 3.4.2. 向表插入数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  50 3.4.2.1. 单次插入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  50 3.4.2.2. 多次插入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  50 3.4.3. 向文件系统中插入数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  51 3.4.3.1. 写入本地文件系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  51 3.4.3.2. 写入HDFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  52 3.4.3.3. Multi-Insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  54 3.4.4. 查询语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  54 3.4.4.1. 过滤:WHERE和HAVING . . . . . . . . . . . . . . . . . . . . . . . . . . . .  56 3.4.4.1.1. WHERE子句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  56 3.4.4.1.2. HAVING子句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  59 3.4.4.2. ORDER BY, SORT BY, DISTRIBUTE BY和CLUSTER BY . . . . . . . . . . . . . . . .  59 3.4.4.2.1. ORDER BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  59 3.4.4.2.2. SORT BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  60 3.4.4.2.3. DISTRIBUTE BY与SORT BY合用 . . . . . . . . . . . . . . . . . . . . . . .  60 3.4.4.2.4. CLUSTER BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  61 3.4.4.3. GROUP BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  61 3.4.4.3.1. 单列GROUP BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  61 3.4.4.3.2. GROUP BY (number) . . . . . . . . . . . . . . . . . . . . . . . . . . .  62 3.4.4.3.3. 多列GROUP BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  65 3.4.4.3.4. 用表达式GROUP BY . . . . . . . . . . . . . . . . . . . . . . . . . . . .  65 3.4.4.3.5. 在GROUP BY子句中过滤:HAVING 子句 . . . . . . . . . . . . . . . . . . .  66 3.4.4.4. GROUP BY 扩展:ROLLUP/CUBE/GROUPING SETS . . . . . . . . . . . . . . . . . .  67 3.4.4.4.1. ROLLUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  67 3.4.4.4.2. CUBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  68 3.4.4.4.3. GROUPING SETS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  70 3.4.4.5. 多表查询:JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  71 3.4.4.5.1. 笛卡尔连接:Cartesian Join . . . . . . . . . . . . . . . . . . . . . . .  71 3.4.4.5.2. 内连接:INNER JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . .  73 3.4.4.5.3. 外连接:OUTER JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . .  75 3.4.4.5.4. 隐式连接:Implicit JOIN . . . . . . . . . . . . . . . . . . . . . . . .  76 3.4.4.5.5. 自然连接:NATURAL JOIN . . . . . . . . . . . . . . . . . . . . . . . . .  77 3.4.4.5.6. 多表连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  78 3.4.4.5.7. 重复连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  79 3.4.4.5.8. 表的自连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  79 3.4.4.5.9. 左半连接和左半反连接 . . . . . . . . . . . . . . . . . . . . . . . . . .  80 3.4.4.5.10. 不等价连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  82 3.4.4.5.11. MAP JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  84 3.4.4.6. 子查询 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  85 3.4.4.6.1. 非关联子查询:Non-Correlated Subqueries . . . . . . . . . . . . . . . .  85
3.4.4.6.2. 关联子查询(Correlated Subquery) . . . . . . . . . . . . . . . . . . . .  87 3.4.4.6.3. 子查询的多层嵌套 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  90 3.4.4.7. WITH…AS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  91 3.4.4.8. 化名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  93 3.4.4.8.1. 表化名(Table Alias) . . . . . . . . . . . . . . . . . . . . . . . . . .  93 3.4.4.8.2. 列化名(Column Alias) . . . . . . . . . . . . . . . . . . . . . . . . . .  95 3.4.4.9. 集合运算:UNION/INTERSECT/EXCEPT . . . . . . . . . . . . . . . . . . . . . .  96 3.4.4.9.1. UNION 和 UNION ALL . . . . . . . . . . . . . . . . . . . . . . . . . . .  97 3.4.4.9.2. INTERSECT 和 INTERSECT ALL . . . . . . . . . . . . . . . . . . . . . . .  99 3.4.4.9.3. EXCEPT 和 EXCEPT ALL . . . . . . . . . . . . . . . . . . . . . . . . .  101 3.4.4.10. 分页 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  102 3.4.4.10.1. 本节使用表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  102 3.4.4.10.2. 语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  102 3.4.4.11. SQL层次化查询 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  105 3.4.4.11.1. 简单介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  105 3.4.4.11.2. 本节使用的表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  106 3.4.4.11.3. 用例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  106 3.4.4.12. Sequence语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  108 3.4.4.12.1. Sequence的创建、修改、删除、查询 . . . . . . . . . . . . . . . . . . .  108 3.4.4.12.2. 对Sequence的访问 . . . . . . . . . . . . . . . . . . . . . . . . . . .  110 3.4.4.12.3. Sequence的使用实例 . . . . . . . . . . . . . . . . . . . . . . . . . .  112 3.5. 事务控制语言(TCL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  113 3.5.1. 提交和回滚:COMMIT和ROLLBACK. . . . . . . . . . . . . . . . . . . . . . . . . .  113 3.5.2. 嵌套事务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  114 3.5.3. 自治事务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  115 3.6. 数据控制语言(DCL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  116 3.6.1. 角色管理语法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  116 3.6.2. Inceptor对象权限管理语法. . . . . . . . . . . . . . . . . . . . . . . . . . . .  117 3.7. Database Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  118 3.7.1. 使用前的准备. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  118 3.7.2. Database Link语法一览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  118 3.7.3. 查看:SHOW DATABASE LINKS . . . . . . . . . . . . . . . . . . . . . . . . . . .  119 3.7.4. 描述:DESCRIBE DATABASE LINK. . . . . . . . . . . . . . . . . . . . . . . . . .  119 3.7.5. 创建:CREATE DATABASE LINK. . . . . . . . . . . . . . . . . . . . . . . . . . .  119 3.7.5.1. 连接到Oracle数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  120 3.7.5.2. 连接到Mysql数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  121 3.7.5.3. 连接到DB2数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  121 3.7.5.4. 连接到PostgreSQL数据库 . . . . . . . . . . . . . . . . . . . . . . . . . .  121 3.7.6. 删除:DROP DATABASE LINK. . . . . . . . . . . . . . . . . . . . . . . . . . . .  122 3.7.7. 使用Database Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  122 3.8. 数据稽查 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  123 3.8.1. 本节使用数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  123 3.8.2. 基本介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  123 3.8.3. 相关语法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  124 3.8.4. Error Table的信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  131
3.8.5. Error Table的权限控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  133 3.9. TEXT表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  133 3.9.1. 建TEXT表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  133 3.9.2. 分隔符. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  134 3.9.2.1. 单字符分隔符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  134 3.9.2.2. 多字符分隔符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  137 3.10. CSV表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  138 3.10.1. 建CSV外表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  138 3.11. ORC表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  142 3.11.1. 将要使用的表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  142 3.11.2. 建ORC事务表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  143 3.11.3. ORC事务表的CRUD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  144 3.11.3.1. INSERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  144 3.11.3.2. UPDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  146 3.11.3.3. DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  147 3.11.3.4. MERGE INTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  148 3.11.3.5. CRUD以子查询为目标 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  149 3.12. Holodesk表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  150 3.12.1. 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  150 3.12.2. Holodesk建表语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  151 3.13. 基于定宽文本文件建外表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  154 3.13.1. 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  154 3.13.2. 建表语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  155 3.13.3. 建表示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  155 3.14. 分区表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  157 3.14.1. 单值分区表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  158 3.14.1.1. 建表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  158 3.14.1.2. 导入数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  159 3.14.1.2.1. 单次插入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  160 3.14.1.2.2. 多次插入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  161 3.14.1.2.3. 动态分区插入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  161 3.14.1.3. 其他单值分区表DDL和DML . . . . . . . . . . . . . . . . . . . . . . . . . .  162 3.14.1.3.1. 清空分区中的数据 . . . . . . . . . . . . . . . . . . . . . . . . . . .  162 3.14.1.3.2. 删除分区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  162 3.14.1.3.3. 添加分区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  162 3.14.1.3.4. 重命名分区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  163 3.14.2. 范围分区表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  163 3.14.2.1. 建表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  163 3.14.2.2. 导入数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  164 3.14.2.3. ALTER 范围分区表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  165 3.14.2.3.1. 添加范围分区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  165 3.14.2.3.2. 删除范围分区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  166 3.15. 分桶表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  167 3.15.1. 建表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  168 3.15.2. 向分桶表内导数据  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  168
3.16. Inceptor暂不支持的语法汇总 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  172 3.16.1. 不支持right semi join. . . . . . . . . . . . . . . . . . . . . . . . . . . . .  172 3.16.2. 不支持right anti semi join . . . . . . . . . . . . . . . . . . . . . . . . . .  172 3.16.3. 不支持JOIN条件中带有顶层的OR条件 . . . . . . . . . . . . . . . . . . . . . . .  172 3.16.4. 顶层无等值条件时,不支持JOIN条件中使用BETWEEN/IN . . . . . . . . . . . . . . .  172 3.16.5. 不支持 CREATE VIEW AS SELECT … UNION SELECT…. . . . . . . . . . . . . . . .  173 3.16.6. 关联子查询中不支持or条件 . . . . . . . . . . . . . . . . . . . . . . . . . . .  173 3.16.7. 顶层无等值条件时,关联子查询中不支持非等值比较 . . . . . . . . . . . . . . . .  173 3.16.8. 不支持创建主键 外键约束. . . . . . . . . . . . . . . . . . . . . . . . . . . .  173 3.16.9. JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  173 3.16.9.1. semi join 和 anti semi join . . . . . . . . . . . . . . . . . . . . . . .  173 3.16.9.2. 仅支持left semi join,不支持 left anti semi join . . . . . . . . . . . . .  175 3.16.9.2.1. 支持left semi join . . . . . . . . . . . . . . . . . . . . . . . . . .  175 3.16.9.2.2. 不支持 left anti semi join . . . . . . . . . . . . . . . . . . . . . .  175 3.16.9.3. 不支持 right semi join . . . . . . . . . . . . . . . . . . . . . . . . . .  176 3.16.9.4. 不支持 right anti semi join . . . . . . . . . . . . . . . . . . . . . . .  177 3.16.10. 不支持JOIN条件中带有顶层的OR条件. . . . . . . . . . . . . . . . . . . . . . .  178 3.16.11. JOIN … ON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  179 3.16.11.1. 支持 JOIN … ON … AND . . . . . . . . . . . . . . . . . . . . . . . . .  180 3.16.11.2. 顶层无等值条件时,不支持 JOIN … ON … OR . . . . . . . . . . . . . . . .  180 3.16.11.3. 顶层无等值条件时,不支持JOIN条件中使用BETWEEN/IN . . . . . . . . . . . .  180 3.16.11.3.1. 顶层无等值条件时,不支持JOIN条件中使用BETWEEN . . . . . . . . . . . .  181 3.16.12. 关联子查询. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  181 3.16.12.1. 关联子查询中的关联条件不支持OR . . . . . . . . . . . . . . . . . . . . .  182 3.16.12.2. 顶层无等值条件时,关联子查询中的关联条件不支持非等值比较 . . . . . . . .  182 3.16.13. CREATE VIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  183 3.16.13.1. 不支持CREATE VIEW AS SELECT … UNION SELECT … . . . . . . . . . . . . .  183 3.16.13.2. 支持 SELECT … UNION SELECT… . . . . . . . . . . . . . . . . . . . . . .  184 3.16.14. 不支持主键、外键. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  184 3.16.15. 创建主键的方式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  185 3.16.16. 创建主键 外键约束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  185 3.16.17. Inceptor暂不支持主键和外键. . . . . . . . . . . . . . . . . . . . . . . . . .  185 3.16.17.1. 不支持主键 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  185 3.16.18. 不支持主键和外键. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  186 4. Inceptor PL/SQL手册(Oracle 方言) . . . . . . . . . . . . . . . . . . . . . . . . . . .  187 4.1. Inceptor PL/SQL一览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  187 4.2. Inceptor PL/SQL手册中的表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  189 4.3. 基础知识 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  190 4.3.1. 声明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  190 4.3.1.1. 变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  190 4.3.1.2. 常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  191 4.3.1.3. DEFAULT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  192 4.3.2. 命名规则. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  193 4.3.2.1. 重复命名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  193 4.3.2.2. 大小写敏感性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  194
4.3.2.3. 命名解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  194 4.3.2.4. 嵌套命名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  195 4.3.3. 赋值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  196 4.3.3.1. 赋予变量逻辑值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  197 4.3.3.2. 赋予变量查询结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  197 4.4. 数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  198 4.4.1. 标量类型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  198 4.4.1.1. STRINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  198 4.4.1.2. INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  199 4.4.2. %TYPE属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  200 4.4.3. %ROWTYPE属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  201 4.4.4. 复合类型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  202 4.5. 创建PL/SQL语句块 [[一览-创建PL/SQL语句块]] . . . . . . . . . . . . . . . . . . . . .  202 4.5.1. PL/SQL语句块组成部分. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  202 4.5.2. 最简单的匿名块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  203 4.5.3. 稍复杂的匿名块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  203 4.5.4. 完整的匿名块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  203 4.5.5. 匿名块里的嵌套. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  204 4.6. 流程控制语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  205 4.6.1. IF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  206 4.6.1.1. IF-THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  206 4.6.1.2. IF-THEN-ELSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  206 4.6.1.3. IF-THEN-ELSIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  207 4.6.2. LOOP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  209 4.6.3. WHILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  210 4.6.4. FOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  211 4.6.5. FORALL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  214 4.6.5.1. 例一 使用FORALL往表中插入数据 . . . . . . . . . . . . . . . . . . . . . . .  214 4.6.5.2. 例二 使用FORALL查询表中数据 . . . . . . . . . . . . . . . . . . . . . . . .  214 4.6.6. EXIT WHEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  215 4.6.7. CONTINUE(WHEN). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  216 4.6.8. GOTO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  217 4.6.8.1. GOTO语句的限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  219 4.6.9. CASE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  219 4.7. PL/SQL存储过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  220 4.7.1. 不带参数的过程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  221 4.7.2. 带参数的过程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  221 4.7.2.1. IN 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  222 4.7.2.2. 默认模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  222 4.7.2.2.1. 示例一 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  222 4.7.2.2.2. 示例二 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  223 4.7.2.3. OUT类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  224 4.7.2.3.1. 示例一 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  224 4.7.2.3.2. 示例二 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  225 4.7.2.4. INOUT类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  226
分享到:
收藏