Translate SQL Data to XML in Oracle

Kiran P
Updated on 04-Dec-2020 10:37:09

2K+ Views

Problem Statement:You need to convert data stored in traditional form in your database to XML document.Solution: Oracle have many different functions for converting data to XML format. Some of the functions Oracle provides for converting relational data to XML are the SYS_XMLGEN, DBMS_XMLGEN, and XMLELEMENT functions.We will be using SYS_XMLGEN to convert rows to XML.The SYS_XMLGEN function returns a block of XML based on a row/s or row like expression. SYS_XMLGEN can take a literal value, a single column, or a user defined type as input parameter.We will be creating XML from students data for an student record.We will begin ... Read More

Remove Duplicates from Any Table and Columns in Oracle

Kiran P
Updated on 04-Dec-2020 10:35:34

673 Views

Problem Statement:You want to write a common procedure to find and remove duplicates from any table and columns in Oracle.Solution:We can use Oracle’s internal ROWID value for uniquely identifying rows in a table along with the OLAP function row_number with partition clause. The sample syntax to acheive this would like below.delete from table where rowid in   (... query here ...)To demonstrate the usage, we will begin by creating sample data.Example-- table with tennis player rankings DROP TABLE atp_stats; CREATE TABLE atp_stats ( player_rank NUMBER NOT NULL,   player_name VARCHAR2(100) NOT NULL,   time_range  TIMESTAMP(6)); -- sample records ... Read More

Find and Remove Duplicates from a Table in Oracle

Kiran P
Updated on 04-Dec-2020 10:33:21

1K+ Views

Problem Statement:You want to find and remove duplicates from a table in Oracle.Solution: We can use Oracle’s internal ROWID value for uniquely identifying rows in a table. The sample syntax to acheive this would like below.delete from table where rowid in   (... query here ...)To demonstrate the usage, we will begin by creating sample data.Example-- table with tennis player rankings DROP TABLE atp_stats; CREATE TABLE atp_stats ( player_rank NUMBER NOT NULL,   player_name VARCHAR2(100) NOT NULL,   time_range  TIMESTAMP(6)); -- sample records INSERT INTO atp_stats VALUES (1, 'ROGER FEDERER', CURRENT_TIMESTAMP); INSERT INTO atp_stats VALUES (2, 'RAFAEL NADAL', ... Read More

Validate Syntax of Oracle Dynamic SQL Before Execution

Kiran P
Updated on 04-Dec-2020 10:31:30

2K+ Views

Problem Statement:You want to validate the syntax of a SQL before execution.Solution: The DBMS_SQL default package allows SQL to be dynamically executed. Owned by SYS it has been defined with the AUTHID CURRENT_USER keyword so it runs with the privileges of the invoker. We can leverage DBMS_SQL.PARSE function to validate the syntax.We will first define a function to accept the SQL statement as the parameter and parse the SQL statement./*  * ---------------------------------------------------------------------------  *  Function : check_syntax  *    Input  : sql statement  *   Output  : Number  * ---------------------------------------------------------------------------  */    FUNCTION check_syntax     ( p_query IN CLOB ) ... Read More

Produce Group Subtotals for All Combinations of Dimensions in Oracle

Kiran P
Updated on 04-Dec-2020 10:27:27

259 Views

Problem Statement:You want to find out subtotals for all combinations of the dimensions specified in Oracle.Solution:The CUBE function will generate subtotals for all combinations of the dimensions specified. If “n” is the number of columns listed in the CUBE, there will be 2n subtotal combinations.We will begin by create the necessary data for this requirement.Example-- Drop table DROP TABLE atp_titles; -- Create table CREATE TABLE atp_titles (   player             VARCHAR2(100) NOT NULL,   title_type         VARCHAR2(100) NOT NULL,   titles             NUMBER NOT NULL);Example-- insert ... Read More

Produce Group Subtotals and Grand Total in Oracle

Kiran P
Updated on 04-Dec-2020 10:24:31

4K+ Views

Problem Statement:You want to find out totals, subtotals and a grand total in Oracle.Solution:Oracle ROLLUP function performs grouping at multiple levels, using a right to left method of rolling up through intermediate levels to any grand total. To demonstrate the ROLLUP function we will create a table to hold tennis player along with the ATP tour titles and Grandslam titles acheived by the player.We will begin by create the necessary data for this requirement.Example-- Drop table DROP TABLE atp_titles; -- Create table CREATE TABLE atp_titles (   player             VARCHAR2(100) NOT NULL,   title_type ... Read More

Find and Replace Text in Oracle

Kiran P
Updated on 04-Dec-2020 10:20:55

7K+ Views

Problem Statement: You want to find and replace a string in Oracle.Solution:Function: TRANSLATESyntax: TRANSLATE(expr, from_string, to_string)TRANSLATE funtion in oracle allows you to make many single character, one on one substitutions in a single operation.However, the to_string and from_string values must not be empty, if an empty string is passed to TRANSLATE Function, Oracle Database interprets the empty string as null and returns null./* replace all occurances of b with j in below string */ SELECT 'back and bill ' AS original_string        , TRANSLATE('back and bill', 'b', 'j') AS replaced_string   FROM dual;Outputback and bill   jack and ... Read More

Identify Rows Not Parents in Oracle Hierarchy Table

Kiran P
Updated on 04-Dec-2020 10:17:54

285 Views

Problem Statement: How to identify leaf rows in a Hierarchy table i.e. rows that are not parents of any other rows.Solution: Oracle provides CONNECT_BY_ISLEAF clause to identify rows that are not parents of any other rows. To begin with let us see how does a connect_by_isleaf works.SQL:/*   Function - Example to show if the row is parent of any other rows or not   Tables Used - students Data - Documented below */ SELECT student_id,        level,        CASE WHEN connect_by_isleaf = 0             THEN 'Yes'         ... Read More

Remove a Branch Within a Hierarchy of Data in Oracle

Kiran P
Updated on 04-Dec-2020 10:15:53

599 Views

Problem Statement: You need to traverse the hierarchy data from top to bottom but doesn’t want a particular branch in the output.Solution: We will look at couple of examples for this problem statement.Oracle provides CONNECT BY clause to specify a hierarchical query i.e. how to connect the parent nodes and child nodes and the PRIOR operator to define the join condition/s between the parent nodes, and the LEVEL pseudo-column to indicate how far from the root/parent row the current row is.Additionally, we can use the START WITH clause to indicate where to start the tree navigation. We must use the PRIOR ... Read More

Traverse Hierarchical Data in Oracle and Sort Rows at Same Level

Kiran P
Updated on 04-Dec-2020 10:12:54

751 Views

Problem Statement: You need to traverse the hierarchy data from top to bottom and sort the rows at the same level in a hierarchy.Solution: The usual ORDER BY clause will not sort the rows at the same hierarchy level. We need to use SIBLINGS with in the ORDER BY Clause.Additionally, Oracle provides CONNECT BY clause to specify a hierarchical query i.e. how to connect the parent nodes and child nodes and the PRIOR operator to define the join condition/s between the parent nodes, and the LEVEL pseudo-column to indicate how far from the root/parent row the current row is.Additionally, we can ... Read More

Advertisements