必须启用 JavaScript 才能正确显示此内容
  • 标题和版权信息
  • 前言
    • 读者
    • 文档可访问性
    • 相关文档
    • 惯例
  • 2 天 Oracle Database 开发简介
    • 关于本文档
    • 关于 Oracle 数据库
      • 关于方案对象
      • 关于 Oracle 数据库访问
        • 关于 SQL*Plus
        • 关于 SQL Developer
        • 关于结构化查询语言 (SQL)
        • 关于过程语言/SQL (PL/SQL)
        • 关于其他客户机程序、语言和开发工具
          • Oracle Application Express
          • Oracle Java Database Connectivity (JDBC)
          • 超文本预处理器 (PHP)
          • Oracle Call Interface (OCI)
          • Oracle C++ Call Interface (OCCI)
          • 开放式数据库连接 (ODBC)
          • Pro*C/C++ 预编译器
          • Pro*COBOL 预编译器
          • Microsoft .NET Framework
          • Oracle Provider for OLE DB (OraOLEDB)
    • 关于示例方案 HR
  • 连接到 Oracle Database 并进行探索
    • 从 SQL*Plus 连接到 Oracle 数据库
    • 从 SQL Developer 连接到 Oracle 数据库
    • 以 HR 用户身份连接到 Oracle 数据库
      • 解除锁定 HR 帐户
      • 以 HR 用户身份从 SQL*Plus 连接到 Oracle 数据库
      • 以用户 HR 身份从 SQL Developer 中连接 Oracle 数据库
    • 了解如何使用 SQL*Plus Oracle Database
      • 使用 SQL*Plus 查看 HR 方案对象
      • 使用 SQL*Plus 查看 EMPLOYEES 表的属性和数据
    • 使用 SQL Developer 浏览 Oracle 数据库
      • 教程:使用 SQL Developer 查看 HR 方案对象
      • 教程:使用 SQL Developer 查看 EMPLOYEES 表的属性和数据
    • 选择表数据
      • 关于查询
      • 在 SQL Developer 中运行查询
      • 教程:选择表中的所有列
      • 教程:选择表中的特定列
      • 在新标题下显示所选列
      • 选择满足指定条件的数据
      • 对所选数据进行排序
      • 从多个表中选择数据
      • 在查询中使用运算符和函数
        • 在查询中使用算术运算符
        • 在查询中使用数值函数
        • 在查询中使用连接运算符
        • 在查询中使用字符函数
        • 在查询中使用日期时间函数
        • 在查询中使用转换函数
        • 在查询中使用聚集函数
        • 在查询中使用 NULL 相关函数
        • 在查询中使用 CASE 表达式
        • 在查询中使用 DECODE 函数
  • 关于 DML 语句和事务处理
    • 关于数据操纵语言 (DML) 语句
      • 关于 INSERT 语句
      • 关于 UPDATE 语句
      • 关于 DELETE 语句
    • 关于事务处理控制语句
    • 提交事务处理
    • 回退事务处理
    • 在事务处理中设置保存点
  • 创建和管理方案对象
    • 关于数据定义语言 (DDL) 语句
    • 创建和管理表
      • 关于 SQL 数据类型
      • 创建表
        • 教程:使用“创建表”工具创建表
        • 使用 CREATE TABLE 语句创建表
      • 确保表中数据的完整性
        • 关于约束条件
        • 教程:将约束条件添加到现有表
      • 教程:使用“插入行”工具在表中添加行
      • 教程:在数据窗格中更改表中的数据
      • 教程:使用“删除所选行”工具删除表中的行
      • 管理索引
        • 教程:使用“创建索引”工具添加索引
        • 教程:使用“编辑索引”工具更改索引
        • 教程:删除索引
      • 删除表
    • 创建和管理视图
      • 创建视图
        • 教程:使用“创建视图”工具创建视图
        • 使用 CREATE VIEW 语句创建视图
      • 更改视图中的查询
      • 教程:使用重命名工具更改视图名称
      • 删除一个视图
    • 创建和管理序列
      • 教程:创建序列
      • 删除序列
    • 创建和管理同义词
      • 创建同义词
      • 删除同义词
  • 开发存储子程序和程序包
    • 关于存储子程序
    • 关于程序包
    • 关于 PL/SQL 标识符
    • 关于 PL/SQL 数据类型
    • 创建和管理独立子程序
      • 关于子程序结构
      • 教程:创建独立过程
      • 教程:创建独立函数
      • 更改独立子程序
      • 教程:测试独立函数
      • 删除独立子程序
    • 创建和管理程序包
      • 关于程序包结构
      • 教程:创建程序包规范
      • 教程:更改程序包规范
      • 教程:创建程序包体
      • 删除程序包
    • 声明变量和常量并为其赋值
      • 教程:在子程序中声明变量和常量
      • 确保变量、常量和参数具有正确的数据类型
      • 教程:将声明更改为使用 %TYPE 属性
      • 为变量赋值
        • 使用赋值运算符为变量赋值
        • 使用 SELECT INTO 语句为变量赋值
    • 控制程序流
      • 关于控制语句
      • 使用 IF 语句
      • 使用 CASE 语句
      • 使用 FOR LOOP 语句
      • 使用 WHILE LOOP 语句
      • 使用基本 LOOP 和 EXIT WHEN 语句
    • 使用记录和游标
      • 关于记录
      • 教程:声明 RECORD 类型
      • 教程:创建和调用带有记录参数的子程序
      • 关于游标
      • 使用声明的游标从结果集中一次检索一行
      • 教程:使用声明的游标从结果集中一次检索一行
      • 关于游标变量
      • 使用游标变量从结果集中一次检索一行
      • 教程:使用游标变量从结果集中一次检索一行
    • 使用关联数组
      • 关于集合
      • 关于关联数组
      • 声明关联数组
      • 填充关联数组
      • 遍历密集型关联数组
      • 遍历稀疏型关联数组
    • 处理异常错误(运行时错误)
      • 关于异常错误和异常错误处理程序
      • 何时使用异常错误处理程序
      • 处理预定义异常错误
      • 声明和处理用户定义的异常错误
  • 使用触发器
    • 关于触发器
    • 创建触发器
      • 关于 OLD 和 NEW 伪记录
      • 教程:创建用于记录表更改的触发器
      • 教程:在插入行之前为其创建一个用于生成主键的触发器
      • 创建 INSTEAD OF 触发器
      • 教程:创建用于记录 LOGON 和 LOGOFF 事件和触发器
    • 更改触发器
    • 禁用和启用触发器
      • 禁用或启用单个触发器
      • 禁用或启用单个表上的所有触发器
    • 关于触发器编译和相关性
    • 删除触发器
  • 在全球化环境中工作
    • 关于全球化支持功能
      • 关于语言支持
      • 关于地区支持
      • 关于日期和时间格式
      • 关于日历格式
      • 关于数值和货币格式
      • 关于语言排序和字符串搜索
      • 关于长度语义
      • 关于 Unicode 和 SQL 国家字符数据类型
    • 关于初始 NLS 参数值
    • 查看 NLS 参数值
    • 更改 NLS 参数值
      • 针对所有 SQL Developer 连接更改 NLS 参数值
      • 针对当前 SQL 函数调用更改 NLS 参数值
    • 关于单个 NLS 参数
      • 关于区域设置和 NLS_LANG 参数
      • 关于 NLS_LANGUAGE 参数
      • 关于 NLS_TERRITORY 参数
      • 关于 NLS_DATE_FORMAT 参数
      • 关于 NLS_DATE_LANGUAGE 参数
      • 关于 NLS_TIMESTAMP_FORMAT 和 NLS_TIMESTAMP_TZ_FORMAT 参数
      • 关于 NLS_CALENDAR 参数
      • 关于 NLS_NUMERIC_CHARACTERS 参数
      • 关于 NLS_CURRENCY 参数
      • 关于 NLS_ISO_CURRENCY 参数
      • 关于 NLS_DUAL_CURRENCY 参数
      • 关于 NLS_SORT 参数
      • 关于 NLS_COMP 参数
      • 关于 NLS_LENGTH_SEMANTICS 参数
    • 在全球化应用程序中使用 Unicode
      • 在 SQL 和 PL/SQL 中表示 Unicode 字符串文字
      • 避免在字符集转换过程中丢失数据
  • 构建有效的应用程序
    • 构建可扩展的应用
      • 关于可扩展应用程序
      • 使用绑定变量提高可扩展性
      • 使用 PL/SQL 提高可扩展性
        • PL/SQL 如何尽可能减少语法分析
        • 关于 EXECUTE IMMEDIATE 语句
        • 关于 OPEN FOR 语句
        • 关于 DBMS_SQL 程序包
        • 关于批量 SQL
      • 关于并发性和可扩展性
        • 关于序列和并发
        • 关于闩锁和并发
        • 关于非阻塞读写和并发
        • 关于共享 SQL 和并发
      • 限制并发会话数
      • 比较编程技术与 Runstats
        • 关于 Runstats
        • 设置运行状态
        • 使用 Runstats
      • 现实世界中的性能和数据处理技术
        • 关于迭代数据处理
        • 关于基于集合的处理
    • 推荐的编程实践
      • 使用金融工具包
      • 统计信息收集和应用程序跟踪
      • 使用现有功能
      • 使用版本化视图覆盖数据库表
    • 建议的安全实践
  • 开发简单的 Oracle Database 应用程序
    • 关于应用程序
      • 应用程序的用途
      • 应用程序的结构
        • 应用程序的方案对象
        • 应用程序的方案
      • 应用程序中的命名惯例
    • 为应用程序创建方案
    • 为方案授予权限
      • 授予 app_data 模式的权限
      • 授予 app_code 模式的权限
      • 授予 app_admin 模式的权限
      • 向 app_user 和 app_admin_user 方案授予权限
    • 创建方案对象并加载数据
      • 创建表
      • 创建版本化视图
      • 创建触发器
        • 创建触发器以强制执行第一个业务规则
        • 创建触发器以强制执行第二个业务规则
      • 创建序列
      • 正在加载数据
      • 添加外键约束条件
      • 向用户授予对方案对象的权限
    • 创建 employees_pkg 程序包
      • 创建 employees_pkg 的程序包规范
      • 为 employees_pkg 创建程序包主体
      • 教程:显示 employees_pkg 子程序的工作方式
      • 向 app_user 和 app_admin_user 授予执行权限
      • 教程:以 app_user 或 app_admin_user 的身份调用 get_job_history
    • 创建 admin_pkg 软件包
      • 创建 admin_pkg 的软件包规范
      • 为 admin_pkg 创建软件包主体
      • 教程:显示 admin_pkg 子程序的工作方式
      • 向 app_admin_user 授予执行权限
      • 教程:以 app_admin_user 的身份调用 add_department
  • 部署 Oracle 数据库应用程序
    • 关于开发和部署环境
    • 关于安装脚本
      • 关于 DDL 语句和方案对象相关性
      • 关于 INSERT 语句和约束条件
    • 创建安装程序
      • 使用购物车创建安装脚本
      • 使用数据库导出向导创建安装脚本
      • 编辑用于创建序列的安装脚本
      • 编辑用于创建触发器的安装脚本
      • 为示例应用程序创建安装脚本
        • 创建安装脚本 schema.sql
        • 创建安装脚本 objects.sql
        • 创建安装脚本 employees.sql
        • 创建安装脚本 admin.sql
        • 创建主安装脚本 create_app.sql
    • 部署示例应用产品
    • 检查安装的有效性
    • 归档安装脚本