Find min of 3 columns date, perform a subtraction and update of table

Hi, here are some examples of data, some of the columns in Main_Table
with Table_1
as
(
      select to_date('25-JUL-2010 23:30','DD-MON-YYYY HH24:MI') incident_date, to_date('01-JUL-2001 20:10','DD-MON-YYYY HH24:MI') D04, to_date('01-JUL-1987 20:10','DD-MON-YYYY HH24:MI') D05 ,to_date('01-JUL-2009 20:10','DD-MON-YYYY HH24:MI') D06 from dual
      union all
      select to_date('21-JAN-2008 12:30','DD-MON-YYYY HH24:MI') incident_date, to_date(''), to_date('') D05 ,to_date('01-MAY-2004 20:10','DD-MON-YYYY HH24:MI') D06 from dual  
      union all
      select to_date('11-FEB-2009 17:30','DD-MON-YYYY HH24:MI') incident_date, to_date('01-DEC-2001 20:10','DD-MON-YYYY HH24:MI') D04, to_date('01-JUL-1993 20:10','DD-MON-YYYY HH24:MI') D05 ,to_date('') D06 from dual
      union all
      select to_date('07-JUL-2011 11:30','DD-MON-YYYY HH24:MI') incident_date, to_date('01-JUL-2001 20:10','DD-MON-YYYY HH24:MI') D04, to_date('') D05 ,to_date('') D06 from dual
 
)
select * from Table_1
What I need is to find the min of D07 D05, D06, and then calculate the difference between this and Incident_date

Once this is done, I need to perform an update on Main_Table where a column called time was created using an alter table statement.

The code below is bad, but I hope you get the idea. I don't know where I would need to apply to the NVL so that the minutes are
UPDATE Main_Table
SET Duration = ( select (incident_date - min(D05, D06, D07))  from Main_Table)
Thanks in advance!

Banner:
Oracle Database 11 g Release 11.2.0.2.0 - 64 bit Production
PL/SQL Release 11.2.0.2.0 - Production
"CORE 11.2.0.2.0 Production."
AMT for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

Try this

update main_table a
   set duration = (
                    select duration
                      from (
                              select incident_date, incident_date-min(decode(l, 1, d04, 2, d05, 3, d06)) duration
                                from main_table
                                cross join (select level l from dual connect by level <= 3)
                              group by incident_date
                           ) b
                     where a.incident_date = b.incident_date
                  )

Tags: Database

Similar Questions

  • Associate column data

    I have two tables in the same database (Oracle 10 g) say temp1 and Temp2 with the same column names. Its as follows
    Temp1
    Access_ID name Destination OrderNumber
    A101 AN O101 D101
    A101 B D101 O102
    B101 AN O103 D101
    B102 C D102 O104

    Temp2
    Access_ID name Destination OrderNumber
    A101 AN O101 D101
    A101 C D101 O102
    B101 AN O103 D102
    B102 C D102 O104

    Now, I want to create a new table that gives the answer as such
    Temp3
    Access_ID name Destination OrderNumber
    A101 N Y Y
    B101 O N O
    B102 Y Y Y

    Basically what it does is for each distinct (access code) he compares the corresponding columns in the two tables & if there is a delay, then it should display as n else it should display as there.

    Hello

    Welcome to the forum!

    Whenever you have a question, please post CREATE TABLE and INSERT statements for you SAMPLES. Since this is your first post, I'll do it for you:

    CREATE TABLE     temp1
    (       access_id     VARCHAR2 (10)
    ,     name          VARCHAR2 (5)
    ,     destination     VARCHAR2 (10)
    ,     order_number     VARCHAR2 (10)
    );
    
    INSERT INTO temp1 (access_id, name, destination, order_number) VALUES ('A101', 'A', 'D101', 'O101');
    INSERT INTO temp1 (access_id, name, destination, order_number) VALUES ('A101', 'B', 'D101', 'O102');
    INSERT INTO temp1 (access_id, name, destination, order_number) VALUES ('B101', 'A', 'D101', 'O103');
    INSERT INTO temp1 (access_id, name, destination, order_number) VALUES ('B102', 'C', 'D102', 'O104');
    
    CREATE TABLE     temp2
    (       access_id     VARCHAR2 (10)
    ,     name          VARCHAR2 (5)
    ,     destination     VARCHAR2 (10)
    ,     order_number     VARCHAR2 (10)
    );
    
    INSERT INTO temp2 (access_id, name, destination, order_number) VALUES ('A101', 'A', 'D101', 'O101');
    INSERT INTO temp2 (access_id, name, destination, order_number) VALUES ('A101', 'C', 'D101', 'O102');
    INSERT INTO temp2 (access_id, name, destination, order_number) VALUES ('B101', 'A', 'D102', 'O103');
    INSERT INTO temp2 (access_id, name, destination, order_number) VALUES ('B102', 'C', 'D102', 'O104');
    COMMIT;
    

    In this way, people can recreate the problem and test their ideas.

    You must always mention what version of Oracle you are using. You said you were using 10g. There is no 10f or 10, so add the g is not helping anyone. What helps me often is if you have 10.1 or 10.2. Sometimes even the finer nuances question, it is therefore better if you give the exact version (for example 10.2.0.3.0).
    The following query will work in Oracle 9.1 (or most recent), but from Oracle 11.1 you can select... UNPIVOT and SELECT... PIVOT, which is better.

    One thing you can do is unpivot data in the lines that contain only the access_id and another (name, destination or order_number), column and a column to identify the item that has been. In the following query, I called this column n.
    Then you can do a FULL OUTER JOIN, to bring the same items, but include unparalleled features, so they can be seen...
    Finally, rotate the dat in a form with one line per access_id.

    WITH     cntr     AS
    (
         SELECT     LEVEL     AS n
         FROM     dual
         CONNECT BY     LEVEL     <= 3
    )
    ,     unpivoted_temp1     AS
    (
         SELECT     t1.access_id
         ,     c1.n
         ,     CASE  c1.n
                  WHEN  1  THEN  name
                  WHEN  2  THEN  destination
                  WHEN  3  THEN  order_number
              END          AS txt
         FROM          temp1     t1
         CROSS JOIN     cntr     c1
    )
    ,     unpivoted_temp2     AS
    (
         SELECT     t2.access_id
         ,     c2.n
         ,     CASE  c2.n
                  WHEN  1  THEN  name
                  WHEN  2  THEN  destination
                  WHEN  3  THEN  order_number
              END          AS txt
         FROM          temp2     t2
         CROSS JOIN     cntr     c2
    )
    SELECT       NVL (u1.access_id, u2.access_id)     AS access_id
    ,       MIN ( CASE
                        WHEN  NVL (u1.n, u2.n) != 1    THEN  NULL
                  WHEN  u1.n                  = u2.n  THEN  'Y'
                                                ELSE  'N'
              END
               )                         AS name
    ,       MIN ( CASE
                        WHEN  NVL (u1.n, u2.n) != 2    THEN  NULL
                  WHEN  u1.n                  = u2.n  THEN  'Y'
                                                ELSE  'N'
              END
               )                         AS destination
    ,       MIN ( CASE
                        WHEN  NVL (u1.n, u2.n) != 3    THEN  NULL
                  WHEN  u1.n                  = u2.n  THEN  'Y'
                                                ELSE  'N'
              END
               )                         AS order_number
    FROM           unpivoted_temp1  u1
    FULL OUTER JOIN      unpivoted_temp2  u2  ON  u1.access_id     = u2.access_id
                                       AND u1.n          = u2.n
                              AND u1.txt     = u2.txt
    GROUP BY  NVL (u1.access_id, u2.access_id)
    ORDER BY  access_id
    ;
    

    Notice how I use MIN on a column that contains 'n', 'Y' and NULL for "n" as a result, if the column contains a ' n of and 'Y' as if it does not contain ' n of. If you use other channels (for example, "JA" and "NEJ") for output, you may need to use MAX instead of MIN.

    Output:

    ACCESS_ID  N D O
    ---------- - - -
    A101       N Y Y
    B101       Y N Y
    B102       Y Y Y
    
  • Select the data in a table and update in another table

    Dear experts,

    create the table TB_ENCRYPT

    (

    Identification number,

    Varchar2 (200) KEY

    );

    INSERT INTO TB_ENCRYPT VALUES(1,'HJUVHDUIFBSDGVU');

    SELECT * FROM TB_ENCRYPT;

    1 HJUVHDUIFBSDGVU

    create TABLE users)

    username, NUMBER of

    password VARCHAR2 (200)

    );

    Insert users

    values (1, 123 # "")

    Insert users

    values (2, 456 #')

    Select * from users;

    1 123 #.

    # 2 456

    I want to select the data KEY for table TB_ENCRYPT column and update in the column of tables for the respective key user password

    TB_ENCRYPT table contains only a single key value. Comparing this key, I want to update the old value of the key to the new value.

    For encryption and decryption I followed the java class method.no is worried about that.

    create or replace

    PACKAGE PCK_ENC AUTHID CURRENT_USER AS

    FUNCTION DECRYPT (VARCHAR arg0, arg1 VARCHAR) AS VARCHAR BACK LANGUAGE JAVA NAME 'Encrclass.decrypt (java.lang.String, java.lang.String) return java.lang.String ';

    FUNCTION ENCRYPT (VARCHAR arg0, arg1 VARCHAR) AS VARCHAR BACK LANGUAGE JAVA NAME 'Encrclass.encrypt (java.lang.String, java.lang.String) return java.lang.String ';

    END;

    SELECT PCK_ENC. ENCRYPT('1234','HJUVHDUIFBSDGVU') FROM DUAL;

    HERE,

    1234 - is the password of the users table column data

    HJUVHDUIFBSDGVU - represents the key of table TB_ENCRYPT column data.

    Comparing this key, I want to update the old value of the key to the new value.

    I tried with this method

    declare

    cursor c1 is

    Select the key

    of TB_ENCRYPT

    where id = 1

    update the id;

    Start

    for c1_rec looping c1

    update users

    password is PCK_ENC. Encrypt (Password, Key)

    the location being c1;

    commit;

    end loop;

    end;

    /

    Help, please

    You can use the MERGE statement.

    merge into users
    using tb_encrypt
       on (id = userid)
      when matched then
          update set password = PCK_ENC.ENCRYPT(password,key);
    

    And why you encrypt your password. This isn't a good idea. Just password hash.

  • How to read data from an excel and HTML file

    Hello

    I write a 2D-array of string in Excel/HTML file using the generation of reports.

    Can someone tell me how to get back in return, the written data, same files again and display in table format.

    Thank you & best regards

    Visuman

    You can use activex to read data from the excel fileback to the table format... through this vi... may b this will help you...

  • How to find the value max and min for each column in a table 2d?

    How to find the value max and min for each column in a table 2d?

    For example, in the table max/min for the first three columns would be 45/23, 14/10, 80/67.

    Thank you

    Chuck,

    With color on your bars, you should have enough experience to understand this.

    You're a loop in the table already.  Now you just need a function like table Max and min. loop.  And you may need to transpose the table 2D.

  • How can I find a large amount of data from a stored procedure?

    How can I find a large amount of data to a stored procedure in an effective way?

    For example do not use a cursor to go through all the lines and then assign values to variables.

    Thanks in advance!

    >
    How can I find a large amount of data to a stored procedure in an effective way?

    For example do not use a cursor to go through all the lines and then assign values to variables.
    >
    Leave the query to create the object back to you.

    Declare a cursor in a package specification than the result set gives you desired. And to declare a TYPE in the package specification which returns a table composed of % rowtype to this cursor.

    Then use this type as the function's return type. Here is the code example that shows how easy it is.

    create or replace
        package pkg4
          as
            CURSOR emp_cur is (SELECT empno, ename, job, mgr, deptno FROM emp);
            type pkg_emp_table_type is table of emp_cur%rowtype;
            function get_emp(
                             p_deptno number
                            )
              return pkg_emp_table_type
              pipelined;
      end;
      / 
    
     create or replace
        package body pkg4
          as
            function get_emp(
                             p_deptno number
                            )
              return pkg_emp_table_type
              pipelined
              is
                v_emp_rec emp_cur%rowtype;
              begin
                  open emp_cur;
                  loop
                    fetch emp_cur into v_emp_rec;
                    exit when emp_cur%notfound;
                    pipe row(v_emp_rec);
                  end loop;
              end;
      end;
      / 
    
    select * from table(pkg4.get_emp(20));
    
         EMPNO ENAME      JOB              MGR     DEPTNO
    ---------- ---------- --------- ---------- ----------
          7369 DALLAS     CLERK2          7902         20
          7566 DALLAS     MANAGER         7839         20
          7788 DALLAS     ANALYST         7566         20
          7876 DALLAS     CLERK           7788         20
          7902 DALLAS     ANALYST         7566         20
    

    If you return a line an actual table (all columns of the table) so you don't need to create a cursor with the query a copy you can just declare the type like this % rowtype tables table.

     create or replace
        package pkg3
          as
            type emp_table_type
              is
                table of emp%rowtype;
            function get_emp(
                             p_deptno number
                            )
              return emp_table_type
              pipelined;
      end;
      / 
    
     create or replace
        package body pkg3
          as
            function get_emp(
                             p_deptno number
                            )
              return emp_table_type
              pipelined
              is
              begin
                  for v_rec in (select * from emp where deptno = p_deptno) loop
                    pipe row(v_rec);
                  end loop;
              end;
      end;
      / 
    
  • Identify the weekend and the days of the week a date and update the empty column

    Hi, I look at previous posts that are similar to my question, but nothing helps.

    I have a column called incident_date that is in this format and comes from the Nov_Final table
    01-JUL-2009 20.10
    04-NOV-2009 17.00
    16-DEC-2009 16.00
    In Nov_Final, I created a column called weekend

    What I want to do is to perform an update, something like this:
    Update Nov_Final
    
    SET Weekend=(case when Incident_date ='WEEKEND' THEN 'Y' ELSE 'N' END)
    Banner:
    Oracle Database 11 g Release 11.2.0.2.0 - 64 bit Production
    PL/SQL Release 11.2.0.2.0 - Production
    "CORE 11.2.0.2.0 Production."
    AMT for Linux: Version 11.2.0.2.0 - Production
    NLSRTL Version 11.2.0.2.0 - Production
    Weekend would be Saturday or Sunday. 
    In short I need to find out if the incident_date falls on a weekend and if it does update the weekend column as 'Y' else 'N' if it's not.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

    You can use TO_CHAR function with a format mask as "fmDAY" to your needs:

    with t_data
    as
    (
    select sysdate + level as col1 from dual connect by level <= 7
    )
    SELECT
        col1,
        TO_CHAR(col1,'fmDAY') col_day,
        CASE
            WHEN TO_CHAR(col1,'fmDAY') IN ('SATURDAY','SUNDAY')
            THEN 'Y'
            ELSE 'N'
        END AS weekend_ind
    FROM
        t_data;
    
    COL1                      COL_DAY                     WEEKEND_IND
    ------------------------- --------------------------- -----------
    08-NOV-11 07:54:12        TUESDAY                     N
    09-NOV-11 07:54:12        WEDNESDAY                   N
    10-NOV-11 07:54:12        THURSDAY                    N
    11-NOV-11 07:54:12        FRIDAY                      N
    12-NOV-11 07:54:12        SATURDAY                    Y
    13-NOV-11 07:54:12        SUNDAY                      Y
    14-NOV-11 07:54:12        MONDAY                      N           
    
    7 rows selected
    
  • Display color on a rectangular column data

    Hi all

    I am currently using a RGB sensor to detect painting on plexiglass. The RGB sensor is mounted on a robotic arm and detection performs a vertical movement using the robotic arm. Each movement covers an area rectangular 110mmx70mm. The value of the red paint has been calibrated and is given as a percentage. For example, no red paint is equivalent to 0%, Pink is completely red and 50 percent equals 100%. The value depends on the concentration of red paint on the plexiglas. Each statement by the RGB sensor covers a 10mmx10mm rectangle.

    What I want to achieve in LabVIEW is to mimic the paint on a vertical section detected the plexiglass in a rectangular box that is similar to the LabVIEW interface. I am able to send serial data using a Bluetooth for LabVIEW module, but I don't know how to go about using these data for my required goal. Can someone guide me please in exercising if you please? Any reference to examples of LabVIEW also grows.

    Any help will be greatly appreciated. Thank you.

    Would be easier to keep a 2D array initialized the right size in the shift registers and update the values that they come in. Here's a quick example.

  • Why can not find the option "Transfer of data and memory" in the channel property node?

    Hi all

    I'll try to find some properties such as "data transfer and memory" in my node property 'DAQmx' Channel, as below ".

    But in my Labview 8.5, I can't. I reinstalled the NOR-DAQmx driver, but it didn't work. What I get is

    I missed something? Thank you.

    Kind regards

    Bo

    Hi Bo,

    Take at look at this knowledge base article.

    3ESBHEL2 Ko AE: lack of properties in the DAQmx nodes property

    Let me know if this solves your problem.

    Concerning

    John P

    Technical sales engineer

    National Instruments

  • How to find the primary key columns in the tables in MS Access using SQL queries

    How to find the primary key columns in the tables in MS Access using SQL queries

    Hello

    This is the forum for Windows Vista programs related issues.

    For better assistance, please try instead the Forums in SQL Server .

    Thank you! Vincenzo Di Russo - Microsoft MVP Windows Internet Explorer, Windows Desktop Experience & security - since 2003. ~ ~ ~ My MVP profile: https://mvp.support.microsoft.com/profile/Vincenzo

  • Compare and display several column data according to requirement

    Hello

    I have a requirement where I want to compare the data in two tables and display only the columns if there is a gap using the sql query.

    Tell userid, e-mail and phone number of the same employee is stored in two tables. Now, I want to compare data from e-mail and phone number of the two tables and display the e-mail and phone number as if they are different data.

    Employee table:

    user_id E-mail phone
    emp01[email protected]00200
    emp02[email protected]

    00300

    emp03[email protected]00400

    Table user_details:


    ID user_email user_phone
    emp01[email protected]00201
    emp02(null)00300
    emp03[email protected]00401


    Please note that both tables have completely different column names and the data may contain a null as well. What I want to achieve is to compare the same employee data in both tables and display columns that have a different value of user_details table; as:


    user_id user_email phone
    emp01[email protected]00201
    emp02(null)
    emp03[email protected]00401


    As the table column names are different, I can't use a join and less to know the difference. I tried this with the help of CASES after the WHERE clause for comparison of columns multiple but GOLD or AND the two would defy the condition to display all columns with different data for the same line.


    How to do this without creating a separate view or a table that I don't have write access? Pointers would be useful.


    -Thank you.


    No need for something like

    You just run

    Select k.user_id, k.id,.

    e.email, u.user_email,

    e.Phone, u.user_phone

    of user_key_table k

    left outer join

    e employee

    On k.user_id = e.user_id

    left outer join

    user_details u

    on k.user_id = u.id


    the rest is here just to simulate your tables (I don't want to create tables in my APEX Tablespace as there are far too many people already)

    Concerning

    Etbin

  • I'm trying to digitally sign a document, and I can't find my password. How to perform a reset on my PC

    I'm trying to digitally sign a document, and I can't find my password. How to perform a reset on my PC?

    You have not, you will need to create a digital ID or remember the password.

  • Column data type not supported

    Hello

    I have Oracle 12 c installed in my system. I created an SP that returns a Table when I try to run it in SQL Developer, it gives me the correct results, but when I call it my DOTNET application it gives me the error-'datatype of the column unsupported. I'm trying to fill a dataset using a data adapter. To check I commented all the code in the procedure and returned the table using the code below.

    Declare
    rc sys_refcursor;
    Begin
           OPEN rc FOR SELECT 'Sayam' AS "Error" FROM dual;
           SYS.DBMS_SQL.RETURN_RESULT (rc, TRUE) ;
    END;
    

    But the problem was still same. This is the track of the same thing.

    Oracle.ManagedDataAccess.Client.OracleException took

    HResult =-1450

    Message = data type of column not supported

    Source = Oracle Data Provider for .NET, pilot managed

    ErrorCode =-1450

    DataSource =""

    Number =-1450

    Procedure =""

    StackTrace:

    at Oracle.ManagedDataAccess.Client.OracleParameter.PreBind (OracleConnectionImpl connImpl, ColumnDescribeInfo cachedParamMetadata, Boolean, bMetadataModified, Int32 arrayBindCount, ColumnDescribeInfo, paramMetaData, object & paramValue, Boolean isEFSelectStatement)

    at OracleInternal.ServiceObjects.OracleCommandImpl.InitializeParamInfo (ICollection paramColl, OracleConnectionImpl connectionImpl, ColumnDescribeInfo cachedParamMetadata [], Boolean & bMetadataModified, isEFSelectStatement Boolean, MarshalBindParameterValueHelper & marshalBindValuesHelper)

    to OracleInternal.ServiceObjects.OracleCommandImpl.ProcessParameters (OracleParameterCollection paramColl, OracleConnectionImpl connectionImpl, ColumnDescribeInfo cachedParamMetadata [], Boolean, bBindMetadataModified, isEFSelectStatement Boolean, MarshalBindParameterValueHelper & marshalBindValuesHelper, Boolean & bAllInputBinds)

    at OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteReader (String commandText, OracleParameterCollection, CommandType commandType, OracleConnectionImpl connectionImpl, OracleDataReaderImpl paramColl & rdrImpl, longFetchSize of Int32, Int64 clientInitialLOBFS, OracleDependencyImpl orclDependencyImpl, scnForExecution of Int64 [], Int64 [] scnFromExecution, OracleParameterCollection, internalInitialLOBFS, OracleException & exceptionForArrayBindDML, Boolean isDescribeOnly, Boolean isFromEF, Boolean bBindParamPresent, Int64 & bindByPositionParamColl)

    at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteReader (Boolean requery, fillRequest Boolean, CommandBehavior behavior)

    to Oracle.ManagedDataAccess.Client.OracleDataAdapter.Fill (DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, command IDbCommand, CommandBehavior behavior)

    at System.Data.Common.DbDataAdapter.Fill (DataSet dataSet)

    at DataAccessLayer.DataAccessService.OracleGetData_Load (String SPName, XElement QueryParam, Exception & e, Boolean bFlag) in d:\Sayam\April\Multiplay\DataAccessLayer\DataAccessLayer\DAS.cs:line 187

    Please let me know if I need to change anywhere.

    Thank you

    Siradji

    Hello

    I did a search for two days and found the link below to set up the DLL

    http://www.Oracle.com/technetwork/database/Windows/downloads/index-090165.html

    It worked well when installing using CMD

    Thank you.

  • Confusion of length of column data type

    Hi all

    To learn about my column data type and length, I have run the following query. However, when I confirm it with the table_name desc command, I see that the lengths of data do not correspond. You have an idea?

    > > select column_name | » '|| DATA_TYPE | » ('|| ( data_length|') ' col_info all_tab_columns where table_name = 'CUSTTABLE' and column_name = 'ACCOUNTNUM;

    > > ACCOUNTNUM NVARCHAR2 (24)

    > > desc CUSTTABLE.

    > > ACCOUNTNUM 1 N NVARCHAR2 (12)

    Concerning

    Charlie

    NightWing wrote:

    By the way I couln t understand what were you thinking when you explain to no.

    I missed you NVARCHAR2 column and thought it was VARCHAR2. When you declare the semantics of VARCHAR2 column length is specified explicitly or implicitly. Explicitly suffixing length with BYTE or CHAR and implicitly when you specify the length of the right itself. Then length is based on the value NLS_LENGTH_SEMANTICS session. So let's assume you generate table create statement (and it seems that you is, based on column_name |) » '|| DATA_TYPE | » ('|| ( data_length|') ' ). Then it does not matter if use use data_length or char_col_decl_length. It will be regadless semantics implied length of what you use. Therefore, when you run create table instructions column length will be interpreted as bytes if current NLS_LENGTH_SEMANTICS byte value. But same length is interpreted as the characters if current NLS_LENGTH_SEMANTICS a char value. As you can see, in order to generate create table statement we use explicit semantic length column, otherwise create table statement can produce lengths of different column in the source table.

    SY.

  • How to retrieve xml soap column data into a clob table

    Hello

    I'm trying to retrieve the value of the clob column XML tag.

    Name of the table = xyz and column = abc (clob data type)

    data stored in the column to abc is as below

    "" < soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:head ="http://www.abc.com/gcgi/shared/system/header" xmlns:v6 = "http://www.abc.com/gcgi/services/v6_0_0_0" xmlns ="http://www.abc.com/gcgi/shared/system/systemtypes" > ""

    "< soapenv:Header xmlns:wsa = 'http://www.w3.org/2005/08/addressing' > '.

    "< RqHeader soapenv:mustUnderstand ="0"xmlns ="http://www.abc.com/gcgi/shared/system/header">."

    < DateAndTimeStamp > 2011-12-20T 16: 02:36.677 + 08:00 < / DateAndTimeStamp >

    < UUID > 1000002932 < / UUID >

    6_0_0_0 < version > < / Version >

    < ClientDetails >

    < Org > CBA < / Org >

    < OrgUnit > CBA < / OrgUnit >

    < channelId% > HBK < / ChannelID >

    < TerminalID > 0000 < / TerminalID >

    < SrcCountryCode > SG < / SrcCountryCode >

    < DestCountryCode > SG < / DestCountryCode >

    < UserGroup > HBK < / UserGroup >

    < / ClientDetails >

    < / RqHeader >

    < wsa: action >/SvcImpl/Bank /.

    SOAPEndpoint/AlertsService.serviceagent/OpEndpointHTTP/AlertDeleteInq < / wsa: action > < / soapenv:Header >

    < soapenv:Body >

    < v6:AlertDeleteInqRq >

    < v6:Base >

    < v6:VID > 20071209013112 < / v6:VID >

    <!-in option: - >

    < v6:Ref > CTAA00000002644 < / v6:Ref >

    < / v6:Base >

    < / v6:AlertDeleteInqRq >

    < / soapenv:Body >

    < / soapenv:Envelope >

    And I want to retrieve the values of tag

    < channelId% > and < v6:VID >

    can help someone, I tried with extractvalue but not able to get the values

    e210e26a-5109-4E16-9e40-d6c719094b0d wrote:

    Select x.* esb_output_temp t

    , xmltable (xmlnamespaces ('http://schemas.xmlsoap.org/soap/envelope' as "soapenv"))

    'http://www.abc.com/gcgi/shared/system/header', 'head ',.

    ( http://www.abc.com/gcgi/services/bank/alerts/v6_0_0_0' as 'v6')

    ,'/ soapenv:Envelope' to xmlparse (document t.med_req_payload)

    columns ChannelID varchar2 (10)

    path ' soapenv: / header/head: RqHeader / head: ClientDetails / head: ChannelID'

    , Path of varchar2 (30) VID ' soapenv:Body / v6:AlertDeleteInqRq / v6:Base / v6:VID'

    ) x ;

    Get the error:

    ORA-19112: error raised during the evaluation:

    XVM-01003: [XPST0003] syntax error in ' soapenv:'

    1 declare namespace soapenv is http://schemas.xmlsoap.org/soap/envelope;. Statement

    .

    ^

    If you do not run the exact query I posted. Why?

    You have changed the uri of namespace associated with the prefix of 'http://schemas.xmlsoap.org/soap/envelope/' to 'http://schemas.xmlsoap.org/soap/envelope' soapenv, see the difference?

    and there is a syntax error in the expression of path ChannelID: soapenv: / header

    See my example again once, you need not to tamper with it, at least not until you understand what you are doing.

Maybe you are looking for

  • How to show the function prototype

    Hello If I type a function in the editor of CVI, a popup appears with the function prototype, as I type ("support". This is very useful, but it only works if I type the complete function. If I jump on another line, then back to the function, it doesn

  • Start trigger M Series C++

    Hi, I seem to have discovered a bug in my C++ when I tried to delete some maps: I usually synchronize each task to a task and THE task is linked to the NISYNC_VAL_PXITRIG0 using DAQmxCfgDigEdgeStartTrig Now it worked well as my main task was a S seri

  • CDDVD TSST CORP TS-L633M ATA DEVICE DRIVER DOES NOT

    OK so I went on the website of windows (http://support.microsoft.com/gp/cd_dvd_drive_problems) and downloaded and ran the program that makes it surprisingly found the problem and tried to fix it but in doing so, I got a message from PILOT of FACILITI

  • Is it possible to 'control' the webcam (integrated in the laptop)?

    Have a teenage daughter @ approx. House & worried she could do on the internet. I was wondering if I can control the use of the webcam somehow. Any help will be greatly appreciated.Thank you

  • DSC hx9v can not see the video in my note samsung tablet, why and what to do?

    I have a short on my DSC-HX9V I can see easily enough through reading.  However, I can't seem to find a way to get thevideo on my computer and in a form which can be accessed: (1) in Explorer windows in my netbook(2) in my samsung Tablet 10.1 rating.