找到 61 篇文章 关于 Oracle

如何在 Oracle 中使用主键约束和外键约束来强制数据库完整性?

Kiran P
更新于 2020-12-05 06:20:06

458 次查看

问题:您想在 Oracle 中使用主键约束和外键约束来强制数据库完整性。解决方案在定义了完整性的表上执行的任何 DML 语句(INSERT、UPDATE 或 DELETE)都有助于确保表中的行保持其完整性。让我们看一些显示主键约束执行的示例。customers 表的主键是 customer_id 列,这意味着存储在 customer_id 列中的每个值都必须是唯一的。如果您尝试插入一行,其中主键的值重复,则数据库会返回错误 ORA-00001,如下所示 ... 阅读更多

如何在 Oracle 中临时存储数据以供以后使用?

Kiran P
更新于 2020-12-05 06:18:15

2K+ 次查看

问题:您想临时存储 SQL 结果。解决方案我们可以使用 CREATE GLOBAL TEMPORARY TABLE 语句创建一个表,该表临时存储会话的数据。此外,您可以指定是在会话期间保留临时表数据还是在事务提交后保留。我们还可以使用 ON COMMIT PRESERVE ROWS 子句来指定在用户会话结束时删除数据。示例CREATE GLOBAL TEMPORARY TABLE tmp_players ON COMMIT PRESERVE ROWS AS SELECT * FROM players WHERE coach_id IS NOT NULL;全局临时表存储仅在用户会话期间存在的会话私有数据 ... 阅读更多

如何在 Oracle 中执行不区分大小写的搜索?

Kiran P
更新于 2020-12-05 06:17:10

4K+ 次查看

问题:您想在 Oracle 中执行不区分大小写的搜索。解决方案处理大小写问题的一种方法是使用内置的 UPPER 和 LOWER 函数。这些函数允许您对单个操作的字符串强制执行大小写转换示例DECLARE    full_name1  VARCHAR2(30) := 'roger federer';    full_name2   VARCHAR2(30) := 'ROGER FEDERER'; BEGIN    IF LOWER(full_name1) = LOWER(full_name2) THEN        DBMS_OUTPUT.PUT_LINE( full_name1 || ' and ' || full_name2 || ' are the same.');    END IF; END;在上面的示例中,full_name1 和 full_name2 首先转换为小写,然后相互比较,从而产生输出roger federer ... 阅读更多

如何在 Oracle 中使用 WITH 子句定义函数?

Kiran P
更新于 2020-12-05 06:16:11

5K+ 次查看

问题:您想在 Oracle 中使用 WITH 子句定义函数。解决方案从 Oracle 数据库 12.1 开始,您可以在 SELECT 语句出现的同一 SQL 语句中定义函数和过程。这允许在 PL/SQL 和 SQL 引擎之间进行上下文切换,允许两个步骤都在 SQL 引擎中发生,从而提高性能。函数或过程需要使用 WITH 子句定义。请记住,在 Oracle 平台的早期版本中,只有子查询可以在 WITH 子句中定义。示例WITH FUNCTION func_amount(p_emailid IN VARCHAR2) RETURN NUMBER IS l_amt ... 阅读更多

如何在 PL/SQL 中捕获 Oracle 错误?

Kiran P
更新于 2020-12-05 06:12:50

3K+ 次查看

问题:您想在 PL/SQL 中捕获 Oracle 错误。解决方案借助 OTHERS 异常处理程序,可以捕获所有 Oracle 错误。让我们举个例子。我们将使用 students 表来演示用法。让我们首先查看表结构。示例DESC students;输出Name          Null     Type         ------------- -------- ------------ STUDENT_ID             NUMBER(6)   FIRST_NAME             VARCHAR2(20) LAST_NAME     NOT NULL VARCHAR2(25) EMAIL         NOT NULL VARCHAR2(40) PHONE_NUMBER           VARCHAR2(20) JOIN_DATE   ... 阅读更多

如何在 Oracle 中生成 JSON 数据并执行模式验证?

Kiran P
更新于 2020-12-05 06:10:58

883 次查看

问题:您想在 Oracle 中生成 JSON 数据并执行模式验证。解决方案可以使用 JSON_OBJECT、JSON_ARRAYAGG、JSON_QUERY 等函数使用多个列和表生成复杂的 json 数据。JSON_OBJECT:- 这是一个 SQL/JSON 函数。JSON_OBJECT 将一个或多个属性键值对作为输入。它返回一个 JSON 对象,该对象为每个键值对包含一个对象成员。JSON_ARRAYAGG:- SQL/JSON 函数 JSON_ARRAYAGG 是一个聚合函数。它将 SQL 表达式的列作为输入,将每个表达式转换为 JSON 值,并返回一个包含这些 JSON 值的单个 JSON 数组。JSON_QUERY:- JSON_QUERY 查找一个或多个 ... 阅读更多

如何在 Oracle 中使用 DATETIME 函数?

Kiran P
更新于 2020-12-05 06:08:36

440 次查看

问题:您想使用日期时间函数来提取或处理日期时间。解决方案ADD_MONTHS()ADD_MONTHS(x, y) 返回将 y 个月添加到 x 的结果。如果 y 为负数,则从 x 中减去 y 个月示例-- 添加 12 个月 SELECT ADD_MONTHS('01-JAN-2020', 12) FROM dual;输出-- 01/JAN/21示例-- 减去 12 个月 SELECT ADD_MONTHS('01-JAN-2020', -12) FROM dual;输出-- 01/JAN/21我们可以向 ADD_MONTHS() 函数提供时间和日期。示例SELECT ADD_MONTHS(TO_DATE('01-JAN-2020 01:01:01', 'DD-MON-YYYY HH24:MI:SS'), 2) FROM dual;输出-- 01/MAR/20LAST_DAY()LAST_DAY(x) 返回 x 的月份部分的最后一天的日期。示例SELECT LAST_DAY('01-JAN-2020') FROM dual;输出-- 31/JAN/20MONTHS_BETWEEN()MONTHS_BETWEEN(x, y) 返回 x 和 y 之间的月数。如果 x 发生在 y 之前 ... 阅读更多

如何在 Oracle 中插入和检索日期?

Kiran P
更新于 2020-12-05 06:03:24

21K+ 次查看

问题:您想将日期插入表中并检索它们。解决方案Oracle 默认使用格式 DD-MON-YYYY 来表示日期,其中DD 表示两位数的日期。MON 表示月份的前三个字母,例如 FEB。YYYY 是四位数的年份,例如 1968让我们看一个向 customers 表添加行的示例,该表包含一个名为 dob 的 DATE 列。以下 INSERT 向 customers 表添加一行,将 dob 列设置为 05-FEB-1968:示例INSERT INTO customers ( customer_id, first_name, last_name, dob, phone) VALUES (7, 'James', 'Bond', '31-DEC-2000', '007-007-0007');您还可以使用 DATE 关键字 ... 阅读更多

如何在 Oracle 中纵向旋转结果?

Kiran P
更新于 2020-12-05 06:02:10

4K+ 次查看

问题:您想在 Oracle 中纵向旋转结果。解决方案UNPIVOT 子句是 Oracle 数据库 11g 的新功能,它使您能够将查询输出中的列翻转为行,并同时允许您对数据运行聚合函数。考虑一个名为 customer 的表,其中存储了以下数据。示例SELECT * FROM customers;输出1   tammy.bryant@internalmail   Tammy Bryant 2   roy.white@internalmail      Roy White 3   gary.jenkins@internalmail   Gary Jenkins 4   victor.morris@internalmail  Victor Morris 5   beverly.hughes@internalmail Beverly Hughes在 customer 表中,我们可以看到全名包含名字和姓氏 ... 阅读更多

如何在 Oracle 中横向旋转结果?

Kiran P
更新于 2020-12-05 06:00:42

14K+ 次查看

问题:您想在 Oracle 中横向旋转结果。解决方案PIVOT 子句是 Oracle 数据库 11g 的新功能,它使您能够将查询输出中的行翻转为列,并同时允许您对数据运行聚合函数。PIVOT 特别适用于查看大量数据中的总体趋势。我们将使用销售数据来演示用法。示例SELECT * FROM sales;输出12008   12  1998-02-28  6   37  552 1898.88 12008   18  1998-02-28  6   37  463 1592.72 12008   20  1998-02-28  6   37  2430    8359.2 12008   25 ... 阅读更多

广告