找到关于 Oracle 的61 篇文章

如何在 Oracle 中从 XML 文档中提取关键 XML 元素?

Kiran P
更新于 2020年12月4日 10:42:05

6K+ 次查看

问题陈述:您需要从 XML 文档中提取一部分/子集的元素值。解决方案:我们可以利用 Oracle 的 EXTRACT 函数,该函数支持 XMLTYPE 数据类型。EXTARCT 函数能够通过将结果作为 XMLTYPE 值返回来保留 XML 元素名称和属性结构。假设我们在 tmp_xml_gen 表中拥有以下 XML,我们希望从中提取客户姓名。示例       134     taylor.cauchon@internalmail     Taylor Cauchon                     921         COMPLETE                 ... 阅读更多

如何提取用于关系使用的 XML 数据?

Kiran P
更新于 2020年12月4日 10:40:47

547 次查看

问题陈述:您需要从 XML 文档中提取各个元素值。解决方案:Oracle 提供 XMLTABLE 函数,可以使用 XQuery 和列映射到 Oracle 数据类型来操作 XML 文档。使用 XMLTABLE,我们可以以关系方式识别和使用 XML 文档中的数据元素。假设以下 XML 文档存储在 tmp_xml_gen 表中,我们希望从中提取元素。我们有客户详细信息以及订单相关信息。示例       134     taylor.cauchon@internalmail     Taylor Cauchon                     921     ... 阅读更多

如何在 Oracle 中将 XML 数据存储在表中?

Kiran P
更新于 2020年12月4日 10:39:36

2K+ 次查看

问题陈述:您需要将原生 XML 数据存储到数据库中的关系表中。解决方案:Oracle 有几种存储 XML 文档的方法。一种存储数据的方法是,如果我们的 XML 不需要更改,或者可以使用 XSLT 提取 XML 的一部分,那就是使用 XMLTYPE 数据转换。我们将使用 XMLTYPE 调用将提供的文本转换为 XMLTYPE 数据类型。在后台,Oracle XMLTYPE 支持 CLOB 数据类型,因为 XML 在内部存储为 CLOB。这意味着我们可以使用相同的方法进行转换,将调用传递给 XMLTYPE 字符串 ... 阅读更多

如何在 Oracle 中将 SQL 数据转换为 XML?

Kiran P
更新于 2020年12月4日 10:37:09

1K+ 次查看

问题陈述:您需要将数据库中以传统形式存储的数据转换为 XML 文档。解决方案:Oracle 有许多不同的函数可用于将数据转换为 XML 格式。Oracle 提供的一些用于将关系数据转换为 XML 的函数是 SYS_XMLGEN、DBMS_XMLGEN 和 XMLELEMENT 函数。我们将使用 SYS_XMLGEN 将行转换为 XML。SYS_XMLGEN 函数根据行/行或类似行的表达式返回一个 XML 块。SYS_XMLGEN 可以将文字值、单个列或用户定义类型作为输入参数。我们将从学生记录的学生数据创建 XML。我们将从 ... 阅读更多

如何编写一个通用的过程来查找并删除 Oracle 中任何表和列中的重复项?

Kiran P
更新于 2020年12月4日 10:35:34

557 次查看

问题陈述:您希望编写一个通用的过程来查找并删除 Oracle 中任何表和列中的重复项。解决方案:我们可以使用 Oracle 的内部 ROWID 值来唯一标识表中的行,并结合使用 OLAP 函数 row_number 和分区子句。实现此目的的示例语法如下所示。delete from table where rowid in  (... query here ...)为了演示其用法,我们将首先创建样本数据。示例 -- 包含网球运动员排名的表 DROP TABLE atp_stats; CREATE TABLE atp_stats ( player_rank NUMBER NOT NULL,   player_name VARCHAR2(100) NOT NULL,   time_range  TIMESTAMP(6)); -- 样本记录 ... 阅读更多

如何在 Oracle 中查找并删除表中的重复项?

Kiran P
更新于 2020年12月4日 10:33:21

833 次查看

问题陈述:您希望查找并删除 Oracle 中表中的重复项。解决方案:我们可以使用 Oracle 的内部 ROWID 值来唯一标识表中的行。实现此目的的示例语法如下所示。delete from table where rowid in  (... query here ...)为了演示其用法,我们将首先创建样本数据。示例 -- 包含网球运动员排名的表 DROP TABLE atp_stats; CREATE TABLE atp_stats ( player_rank NUMBER NOT NULL,   player_name VARCHAR2(100) NOT NULL,   time_range  TIMESTAMP(6)); -- 样本记录 INSERT INTO atp_stats VALUES (1, 'ROGER FEDERER', CURRENT_TIMESTAMP); INSERT INTO atp_stats VALUES (2, 'RAFAEL NADAL', ... 阅读更多

如何在执行之前验证 Oracle 动态 SQL 的语法?

Kiran P
更新于 2020年12月4日 10:31:30

2K+ 次查看

问题陈述:您希望在执行之前验证 SQL 语法。解决方案:DBMS_SQL 默认包允许动态执行 SQL。它由 SYS 拥有,并使用 AUTHID CURRENT_USER 关键字定义,因此它以调用者的权限运行。我们可以利用 DBMS_SQL.PARSE 函数来验证语法。我们首先定义一个函数,将 SQL 语句作为参数并解析 SQL 语句。/*  * ---------------------------------------------------------------------------  *  Function : check_syntax  *    Input  : sql statement  *   Output  : Number  * ---------------------------------------------------------------------------  */    FUNCTION check_syntax     ( p_query IN CLOB ) ... 阅读更多

如何在 Oracle 中为指定的维度的所有组合生成组小计?

Kiran P
更新于 2020年12月4日 10:27:27

189 次查看

问题陈述:您想在 Oracle 中查找指定维度的所有组合的小计。解决方案:CUBE 函数将为指定的维度的所有组合生成小计。“n”如果是 CUBE 中列出的列数,则将有 2n 个小计组合。我们将首先为这个需求创建必要的数据。示例 -- 删除表 DROP TABLE atp_titles; -- 创建表 CREATE TABLE atp_titles (   player             VARCHAR2(100) NOT NULL,   title_type         VARCHAR2(100) NOT NULL,   titles             NUMBER NOT NULL);示例 -- 插入 ... 阅读更多

如何在 Oracle 中生成组小计和总计?

Kiran P
更新于 2020年12月4日 10:24:31

4K+ 次查看

问题陈述:您想在 Oracle 中查找总计、小计和总计。解决方案:Oracle ROLLUP 函数在多个级别执行分组,使用从右到左的方法向上滚动到任何总计的中间级别。为了演示 ROLLUP 函数,我们将创建一个表来保存网球运动员以及该运动员获得的 ATP 巡回赛冠军和大满贯冠军。我们将首先为这个需求创建必要的数据。示例 -- 删除表 DROP TABLE atp_titles; -- 创建表 CREATE TABLE atp_titles (   player             VARCHAR2(100) NOT NULL,   title_type ... 阅读更多

如何在 Oracle 中查找和替换文本?

Kiran P
更新于 2020年12月4日 10:20:55

6K+ 次查看

问题陈述:您想在 Oracle 中查找并替换字符串。解决方案:函数:TRANSLATE语法:TRANSLATE(expr, from_string, to_string)Oracle 中的 TRANSLATE 函数允许您在单个操作中进行许多单字符一对一替换。但是,to_string 和 from_string 值不能为空,如果将空字符串传递给 TRANSLATE 函数,Oracle 数据库会将空字符串解释为 null 并返回 null。/* 将以下字符串中的所有 b 替换为 j */ SELECT 'back and bill ' AS original_string         , TRANSLATE('back and bill', 'b', 'j') AS replaced_string   FROM dual;输出back and bill   jack and ... 阅读更多

广告