error ORA-01436: CONNECT BY a loop in the user data

Y is it breaks down, when the query with the data of test works well. Added the result of individual queries of the database.
times parent_order and the order can be same.
SELECT *
  FROM (SELECT     *
              FROM r_brj_linkage
        START WITH order_id = 'IQBGSR20'
        CONNECT BY PRIOR parent_downstream_orderid = order_id)
 WHERE alternate_linkage_rule_flag = 'N'

SELECT parent_downstream_orderid, order_id, alternate_linkage_rule_flag
  FROM r_brj_linkage
 WHERE order_id = 'IQBGSR20';
output 
------------
U206650.3     IQBGSR20   Y


SELECT parent_downstream_orderid, order_id, alternate_linkage_rule_flag
  FROM r_brj_linkage
 WHERE order_id = 'U206650.3';

U206650.3      U206650.3  N
I tried with an example, and gives me the correct results
SELECT *
  FROM (WITH t AS
             (SELECT 'XXX' parent_1, 'YYY' child_1, 'Y' flag
                FROM DUAL
              UNION ALL
              SELECT 'XYZ' AS parent_1, 'XXX' AS child_1, 'Y' AS flag
                FROM DUAL
              UNION ALL
              SELECT 'ZZZ' AS parent_1, 'XYZ' AS child_1, 'Y' AS flag
                FROM DUAL
              UNION ALL
              SELECT 'ABC' AS parent_1, 'ZZZ' AS child_1, 'N' AS flag
                FROM DUAL)
        SELECT     *
              FROM t
        START WITH child_1 = 'ZZZ'
        CONNECT BY PRIOR parent_1 = child_1)
 WHERE flag = 'N';
Published by: devarade on January 21, 2010 14:56

Published by: devarade on January 21, 2010 15:06

Ah, see what you mean now.

How about this:

SELECT *
FROM  ( WITH t AS
             ( SELECT 'XXX' parent_1, 'YYY' child_1, 'Y' flag
               FROM DUAL
               UNION ALL
               SELECT 'XYZ', 'XXX', 'Y' FROM DUAL UNION ALL
               SELECT 'ZZZ', 'XYZ', 'Y' FROM DUAL UNION ALL
               SELECT 'ZZZ', 'ZZZ', 'N' FROM DUAL )
        SELECT *
        FROM   t
        START WITH child_1 = 'YYY'
        CONNECT BY NOCYCLE PRIOR NULLIF(parent_1,child_1) = child_1 )
WHERE flag = 'N';

Tags: Database

Similar Questions

  • Hi, do an error-ORA-01436: CONNECT BY a loop in the user data

    Hi, I am getting an error when executing the select query

    SELECT callreleasetime, calleventduration
    OF temp_med_partial_records_0001
    CONNECT BY PRIOR Callreleasetime = callreleasetime
    AND IMSI PRIOR = IMSI
    AND PRIOR connectedcallingnumber = connectedcallingnumber

    Published by: user8731258 on February 8, 2011 02:34

    example:

    drop table test;
    
    create table test(no number, IMSP number,  IMSC number,  data varchar2(10));
    
    insert into test values(1,1,2,'a');
    insert into test values(1,2,3,'a');
    insert into test values(1,2,4,'a');
    
    insert into test values(1,3,5,'b');
    insert into test values(1,4,5,'b');
    
    insert into test values(2,1,2,'c');
    insert into test values(2,2,3,'c');
    
    insert into test values(4,1,2,'d');
    insert into test values(4,2,3,'d');
    
    insert into test values(5,1,2,'e');
    insert into test values(5,2,3,'e');
    insert into test values(5,2,3,'e');
    
    insert into test values(6,1,2,'f');
    
    commit;
    
    SELECT *
    FROM test
    CONNECT BY PRIOR no=no
    AND PRIOR IMSP=IMSC
    AND PRIOR data=data;
    
    NO                     IMSP                   IMSC                   DATA
    ---------------------- ---------------------- ---------------------- ----------
    1                      1                      2                      a
    1                      2                      3                      a
    1                      1                      2                      a
    1                      2                      4                      a
    1                      1                      2                      a
    1                      3                      5                      b
    1                      4                      5                      b
    2                      1                      2                      c
    2                      2                      3                      c
    2                      1                      2                      c
    4                      1                      2                      d
    4                      2                      3                      d
    4                      1                      2                      d
    5                      1                      2                      e
    5                      2                      3                      e
    5                      1                      2                      e
    5                      2                      3                      e
    5                      1                      2                      e
    6                      1                      2                      f   
    

    Your case

    SELECT *
    FROM test
    CONNECT BY PRIOR no=no
    AND PRIOR IMSP=IMSP
    AND PRIOR data=data;
    
    ORA-01436:
    
  • CONNECT IN a loop in the user data

    Could someone help me because I can not find a solution.

    I want to build a tree of 3 tables (parent-> children-> detail)

    Everything works fine with 2 tables, but when I add the third table I get always an error ORA: ORA-01436: CONNECT BY a loop in the user data

    CREATE TABLE nineham (organisatie_id NUMBER

    (, naam VARCHAR2 (50));

    --

    CREATE TABLE seizoenen (seizoen_id NUMBER

    organisatie_id NUMBER

    (, naam VARCHAR2 (50));

    --

    CREATE TABLE competities (competitie_id NUMBER

    seizoen_id NUMBER

    (, naam VARCHAR2 (50));

    --

    INSERT INTO nineham (organisatie_id, name) VALUES (1, 'ORGANISATIE_1');

    INSERT INTO nineham (organisatie_id, name) VALUES (2, 'ORGANISATIE_2');

    --

    INSERT INTO seizoenen (seizoen_id, organisatie_id, naam) VALUES (1, 1, 'SEIZOEN_1');

    INSERT INTO seizoenen (seizoen_id, organisatie_id, naam) VALUES (2, 1, 'SEIZOEN_2');

    INSERT INTO seizoenen (seizoen_id, organisatie_id, naam) VALUES (1, 2, 'SEIZOEN_3');

    INSERT INTO seizoenen (seizoen_id, organisatie_id, naam) VALUES (2, 2, 'SEIZOEN_4');

    --

    INSERT INTO competities (competitie_id, seizoen_id, naam) VALUES (1, 1, 'COMPETITIE_1');

    INSERT INTO competities (competitie_id, seizoen_id, naam) VALUES (2, 1, 'COMPETITIE_2');

    INSERT INTO competities (competitie_id, seizoen_id, naam) VALUES (3, 2, 'COMPETITIE_3');

    INSERT INTO competities (competitie_id, seizoen_id, naam) VALUES (4, 2, "COMPETITIE_4");

    INSERT INTO competities (competitie_id, seizoen_id, naam) VALUES (5, 2, "COMPETITIE_5");

    --

    --

    --

    SELECT LPAD (' ', LEVEL * 2, ' ') | Naam AS display

    LEVEL AS lvl

    DE)

    SELECT NULL AS parent

    child organisatie_id

    naam

    To nineham

    UNION ALL

    SELECT organisatie_id AS parent

    child seizoen_id

    naam

    OF seizoenen

    UNION ALL

    Seizoen_id SELECT parent

    Child AS NULL

    naam

    OF competities

    )

    START WITH parent IS NULL

    CONNECT BY PRIOR child = parent

    ;

    Hello

    When you perform a CONNECT BY query, you must have an identifier unique to each child.  You use numbers that are unique to each table, but are no longer unique when you UNION the paintings together.  When the query finds children 1, the fact that average organisatie_id = 1, or does that mean seizoen_id = 1, or does this mean competetite_id = 1?

    Etbin suggested you change data.  Which can be difficult; It might not even be possible.  In addition, you must make sure that the new IDS are unique.  When you assign advent = 10 to a node, for example, you must be sure that 10 is not an organisatie_id.

    Here is another solution that is guarranted to generate unique IDS, without changing the actual tables:

    SELECT LPAD (' ', LEVEL * 2, ' ') | Naam AS display

    LEVEL AS lvl

    DE)

    SELECT NULL AS parent

    organisatie_id AS child

    , 1 AS the level of

    naam

    To nineham

    UNION ALL

    SELECT organisatie_id AS parent

    seizoen_id AS child

    , 2 AS the level of

    naam

    OF seizoenen

    UNION ALL

    SELECT seizoen_id AS parent

    Child AS NULL

    , 3 AS the level of

    naam

    OF competities

    )

    START WITH parent IS NULL

    AND level = 1

    CONNECT BY PRIOR child = parent

    AND layer = FIRST + 1

    ;

    The composite key formed by your original ID, and the new level number is unique.

    Note that the query above is exactly what you have posted, with the addition of the lines that refer to level.

  • Hierarchical query, connect in a loop in the user data

    Hello

    Is there a method to find the node that has the problem in the application of the factorial.

    As my data is complex and has up to 10 levels, it is not possbile to correct manually. I have idendtified the series 'START WITH', what is causing the problem. But I couldn't find the correct nodes in the seris that creates the loop.

    Does not not in the management of exceptions even.

    Please advice.

    Kind regards
    Benz

    You did not specify a version, but the operators CONNECT BY NOCYCLE and CONNECT_BY_ISCYCLE can be used to detect cycles.

  • ORA-01436: CONNECT loop in the user data when the delimited string splitting by the

    I'm trying to split a string into records. The values are three characters more '-' with a limit of 12 values. The values themselves are a combination of two data, the first being two characters, a.

    The following example translates: ORA-01436: CONNECT BY a loop in the user data

    WITH
        Data(Code, Datum)
    AS
        (
         SELECT 'VGCU3VM', '00V-YYG-BVC-PIU-DV3-EVV-TVM-' FROM Dual UNION ALL
         SELECT 'VGAU3VM', '00V-YYG-BVA-PIU-DV3-EVV-TVM-' FROM Dual UNION ALL
         SELECT 'VGLN3CM', '00V-YYG-BVL-PIN-DV3-EVC-TVM-' FROM Dual UNION ALL
         SELECT 'VGLT3PM', '00V-YYG-BVL-PIT-DV3-EVP-TVM-' FROM Dual UNION ALL
         SELECT 'VGAT3RA', '00V-YYG-BVA-PIT-DV3-EVR-TVA-' FROM Dual
        )
    SELECT
        Datum,
        LEVEL,
        SUBSTR(Datum, ((LEVEL - 1) * 4) + 1, 2),
        SUBSTR(Datum, ((LEVEL - 1) * 4) + 3, 1)
    FROM
        Data
    CONNECT BY
        Code    = PRIOR Code
        AND    LEVEL    <= LENGTH(Datum) / 4;
    
    

    Remove the 'Code = Code PREREQUISITE"clause, to avoid the error, but too many records are returned, because nothing is to limit the records in their own groups.

    The following works:

    WITH
        Data(Code, Datum)
    AS
        (
         SELECT 'VGCU3VM', '00V-YYG-BVC-PIU-DV3-EVV-TVM-' FROM Dual UNION ALL
         SELECT 'VGAU3VM', '00V-YYG-BVA-PIU-DV3-EVV-TVM-' FROM Dual UNION ALL
         SELECT 'VGLN3CM', '00V-YYG-BVL-PIN-DV3-EVC-TVM-' FROM Dual UNION ALL
         SELECT 'VGLT3PM', '00V-YYG-BVL-PIT-DV3-EVP-TVM-' FROM Dual UNION ALL
         SELECT 'VGAT3RA', '00V-YYG-BVA-PIT-DV3-EVR-TVA-' FROM Dual
        )
    SELECT
        Datum,
        SUBSTR(Datum, ((Some.Num - 1) * 4) + 1, 2) A,
        SUBSTR(Datum, ((Some.Num - 1) * 4) + 3, 1) B
    FROM
        Data,
        (SELECT LEVEL Num FROM Dual CONNECT BY LEVEL <= 12) Some
    WHERE
        SUBSTR(Datum, ((Some.Num - 1) * 4) + 1, 2) IS NOT NULL;
    
    

    What causes ORA-01436?

    Hello

    Depending on your version, you can add another condition to your CONNECT BY clause.

    It works in Oracle 11.2.0.3.0:

    SELECT

    Point of reference,

    LEVEL,

    SUBSTR (Datum, ((LEVEL-1) * 4) + 1, 2),

    SUBSTR (Datum, ((LEVEL-1) * 4) + 3, 1)

    Of

    Data

    CONNECT

    Code = Code PRIOR

    AND LEVEL<= length(datum)="">

    AND PRIOR SYS_GUID () IS NOT NULL-* ADDED *.

    ;

    Thanks for the display of the data of the sample; This is really useful!

    In addition, relational databases are designed to have 1 piece of information in each column of each row, not a list delimited by up to 12 points.  It is so basic to the design of database he called the first normal form.  You're going to solve a lot of problems even before they occur if you paste to first normal form and change the table structure to resemble the result set of this query.  (Maybe that's exactly why you're doing this query.)

  • ORA-01436: CONNECT loop in the user data, but CONNECT_BY_ISCYCLE is equal to ZERO all the

    Hello

    When I run query below, it always throws the below error:
    SELECT connect_by_root code AS code_root,
        CODE,
        CODE_DESC,
        UP_CODE 
      FROM DI_CODE_LEVEL
      WHERE TYPE_CODE='SP'
        CONNECT BY PRIOR CODE=UP_CODE;
    
    ORA-01436: CONNECT BY loop in user data
    01436. 00000 -  "CONNECT BY loop in user data"
    But when I use NOCLYCLE and CONNECT_BY_ISCYCLE to see which line is in question.
    It shows nothing, which means CONNECT_BY_ISCYCLE = ZERO for all rows.
    select * from (
        SELECT connect_by_root code AS code_root,
            CODE,
            CODE_DESC,
            UP_CODE ,
            CONNECT_BY_ISCYCLE AS ISCYCLE
          FROM DI_CODE_LEVEL
          WHERE TYPE_CODE='SP'
            CONNECT BY NOCYCLE PRIOR CODE=UP_CODE
        ) 
    where ISCYCLE>0;
    Is there another reason that sql would lift ORA-01436?
    If there is a loop, then will the combination of NOCYCLE, CONNECT_BY_ISCYCLE will show?

    Thank you

    Hello

    Apparently, one or more of the "SP" lines are at the origin of the problem.
    The WHERE clause is applied after the CONNECT BY is finished, saying:

    select * from (
        SELECT connect_by_root code AS code_root,
            CODE,
            CODE_DESC,
            UP_CODE ,
            CONNECT_BY_ISCYCLE AS ISCYCLE
          FROM DI_CODE_LEVEL
          WHERE TYPE_CODE='SP'
            CONNECT BY NOCYCLE PRIOR CODE=UP_CODE
        )
    where ISCYCLE>0;
    

    is equivalent to

    select * from (
        SELECT connect_by_root code AS code_root,
            CODE,
            CODE_DESC,
            UP_CODE ,
            CONNECT_BY_ISCYCLE AS ISCYCLE
          FROM DI_CODE_LEVEL
            CONNECT BY NOCYCLE PRIOR CODE=UP_CODE
        )
    WHERE    TYPE_CODE = 'SP'
    AND     ISCYCLE   > 0;
    

    To see where the loop occurs, you must include the lines where type_code = "SP".

    When you debug "ORA-01436: CONNECT IN a loop in the user data ', view SYS_CONNECT_BY_PATH (uk,...), where the United Kingdom is a unique key. That will tell you much more than just the root information. You might want this:

    SELECT  connect_by_root code                AS code_root,
            CODE,
            CODE_DESC,
            UP_CODE
    ,     SYS_CONNECCT_BY_PATH (code, '/')     AS path          -- For debugging
    ,       CONNECT_BY_ISCYCLE                AS ISCYCLE     -- For debugging
    FROM      DI_CODE_LEVEL
    -- WHERE TYPE_CODE = 'SP'     -- Commented out for debugging
    where      ISCYCLE > 0          -- For debugging
    CONNECT BY NOCYCLE      PRIOR CODE = UP_CODE
    

    I hope that answers your question.
    If not, post a small example data (CREATE TABLE and only relevant columns, INSERT statements), and the results you want from this data.
    Explain how you get these results from these data.
    Always tell what version of Oracle you are using.

  • Error: CONNECTION loop in the user data

    CONNECT IN a loop in the user data:

    Table X (sample data were actually lines 35K)

    --------------

    CODE CASE OLD_ID New_id PERSON AUTH                                                           

    01 ab122 1234 0001 AU123 99393

    07 vv353 7872 0919 FV982 78282

    01 ab122 1982 9929 99393 AU123

    04 hjsss 8839 8302 JK920 32320

    01 ab122 0001 1982 AU123 99393

    05 cg899 6728 32322 IKL020 65252

    07 w353 0919 8282 FV982 78282

    now I need to order these data comparing the values of the line to old_id new_id for each combination of code, person, case

    need output like below

    Table X

    --------------

    CODE CASE OLD_ID New_id PERSON AUTH                                                           

    01 ab122 1234 0001 AU123 99393

    01 ab122 0001 1982 AU123 99393

    01 ab122 1982 9929 99393 AU123

    04 hjsss 8839 8302 JK920 32320

    05 cg899 6728 32322 IKL020 65252

    07 vv353 7872 0919 FV982 78282

    07 w353 0919 8282 FV982 78282

    to get to what I use:

    -Request-

    Select * from table_x

    Start by old_id not in)

    Select new_id

    from table_x

    )

    CONNECT BY old_id new_id PRIOR =

    AND code = code PRIOR

    AND case EARLIER case =

    PER person = person PREREQUISITE

    -Request-

    works very well with the sample data, but the problem is when executed with actual table that has 35K record...

    Cause: The condition specified in a CONNECT BY clause caused a loop in the application, where the next record to be selected is a descendant of itself. When this happens, it may be no end to the query.

    Action: Check the CONNECT BY clause and remove the circular reference.

    Thank you

    AK

    Hello

    CONNECT_BY_ISCYCLE is a pseudo-column that you can use in a query of CONNECTION BY NOCYCLE.  It is separated from the CONNECT BY clause.

    Try this:

    Select code, "BREAKS", person

    , SYS_CONNECT_BY_PATH (old_id, "/") AS path

    from table_x

    where CONNECT_BY_ISCYCLE = 1

    Start by old_id not in)

    Select new_id

    from table_x

    )

    CONNECT BY NOCYCLE Old_id = new_id PRIOR

    AND code = code PRIOR

    AND 'CASE' = 'BOX' PRIOR

    PER person = person PREREQUISITE

    ;

    I hope that answers your question.
    If not, post a small example data (CREATE TABLE and only relevant columns, INSERT statements) and also publish outcomes from these data.
    Explain, using specific examples, how you get these results from these data.
    Always say what version of Oracle you are using (for example, 11.2.0.2.0).

    See the FAQ forum: https://forums.oracle.com/message/9362002#9362002

  • ORA-01436: CONNECT loop in the user data

    Hello

    I have a simple bit of SQL out details on HR supervisor strings in Oracle EBS:
    SELECT     LPAD(' ', (LEVEL - 1) * 10, ' ') || person_id level_label
             , LEVEL
             , description
          FROM applsys.fnd_user u
             , hr.per_all_assignments_f h
         WHERE u.employee_id = h.person_id
    START WITH SYSDATE BETWEEN effective_start_date AND effective_end_date
           AND person_id = :personid
    CONNECT BY PRIOR person_id = supervisor_id
           AND SYSDATE BETWEEN effective_start_date AND effective_end_date
    It will return data normally without problems - e.g. data dummy below - looks very good. The names and made up person_ids.
    LEVEL_LABEL                    LEVEL     DESCRIPTION
    000001                         1     Person Person 1
              000002               2     Harry Marry
                        000003          3     John Smith
                                  000004     4     Jenna Jones
                                  000005     4     Her Name
                                  000006     4     His Name
                                  000007     4     Joseph Coat
                                  000008     4     Les Miserables
                        000009          3     Mister Smith
                        000010          3     Miss Jones
                        000011          3     Andrew And
                                  000012     4     Claire So
                                  000013     4     Hilary Hi
              000014               2     Jenny Jones
                        000015          3     Amanda Mandy
                                  000016     4     James Jim
                                  000017     4     William Wonder
                                  000018     4     Crazy Cat
                                  000019     4     Silly Cat
                                  000020     4     Tall Hill
                                  000021     4     Amazing Grace
                        000022          3     Lovely Mountain
                                  000023     4     Joyous Spring
                                  000024     4     Anonymous Name
                                  000025     4     Brian Binky
    However, if I try for an another person_id, for which a user receives an error in one part of the Oracle EBS, I get this error:

    ORA-01436: CONNECT loop in the user data

    I'm guessing there is a loop of supervisor happening somewhere, but I don't know how to determine where it might happen.

    I was wondering if there is any way I can change the SQL code to be able to work out where the loop can be, as there are about 50 people involved in Ministry to this user and I have been through all their records and can not see a loop to look through the Oracle HR screens.

    I know it's a 'big ask' to ask a vague question about some oracle SQL, so apologies for that.

    Any advice much appreciated.

    Thank you

    Hello

    To see loops, do something like this:

    SELECT     SYS_CONNECT_BY_PATH (person_id, '/')     AS path
    FROM      applsys.fnd_user           u
    ,      hr.per_all_assignments_f      h
    WHERE      u.employee_id           = h.person_id
    AND     CONNECT_BY_ISCYCLE     = 1
    CONNECT BY NOCYCLE     PRIOR person_id = supervisor_id
         AND           SYSDATE      BETWEEN     effective_start_date
                             AND      effective_end_date
    ;
    

    If you would care to post CREATE TABLE and instructions INSERT for some samples, so I could test it.

    Note there is no START WITH clause.

    If, for example, Jones is the architect of Scott, Scott is the main contractor of Adams and Adams is the architect of Jones (much to other lines is not involved in a loop), then displays 3 rows of output, such as

    PATH
    ---------------------
    Jones/Scott/Adams
    Scott/Adams/Jones
    Adams/Jones/Scott
    

    Moreover, all the same CONNECT BY queries on these tables can be a lot faster if you've made the join and date filtering in a separate subquery first:

    WITH     combined_data     AS
    (
         SELECT     person_id, supervisor_id
         FROM      applsys.fnd_user           u
         ,      hr.per_all_assignments_f      h
         WHERE      u.employee_id      = h.person_id
         AND     SYSDATE      BETWEEN     effective_start_date
                        AND      effective_end_date
    )
    SELECT     SYS_CONNECT_BY_PATH (person_id, '/')     AS path
    FROM     combined_data
    WHERE     CONNECT_BY_ISCYCLE     = 1
    CONNECT BY NOCYCLE     PRIOR person_id = supervisor_id
    ;
    
  • ORA-01436 - connect loop in the user data - only in the database 10G...

    Hello

    I'm having a problem with a query. First of all I have to say that I choose this query on the internet and has adapted to my worries... so I understand very well the "connection of level" clause... that's why I need help to find out what is happening here...

    The query is all ok in a 8i database, but if I took exactly the same query on a 10G database I got the error "ORA-01436 - connect with loop in user data.

    This query returns one row for each day between 2 dates passed as parameters. The query takes 4 parameters: a date 'from', date 'for' and 2 other parameters indicating if we want that Saturdays and Sundays (end of week) in the result set.

    This is the query:

    Select days_between.days
    de)
    SELECT & date_from + ROWNUM-1 days
    DE)
    SELECT 1 nothing
    OF THE DOUBLE
    CONNECTION OF LEVEL < = (nvl(&date_to,&date_from) - & date_from + 1)
    )
    where & date_from + ROWNUM-1 < = nvl (date_to, & date_from)
    ) days_between
    where (nvl (& exclude_saturdays, 'Y') = ' or replace (to_char (days_between.days, 'DAY'),' ') not in ('SATURDAY', 'SATURDAY'))
    and (nvl (& exclude_sundays, 'Y') = ' or replace (to_char (days_between.days, 'DAY'),' ') not in ('SUNDAY', 'SUNDAY'))

    For the parameter 'date_from' enter 'to_date('2009-01-01','yyyy-mm-dd')' as a break for the 'date_to' 'to_date('2009-01-07','yyyy-mm-dd')' as a value parameter value. For the other 2 parameters, use 'Y' to exclude this day or "N" to keep this day here in the result set.

    So I said earlier, this query runs very well on a 8i database but not on a 10G a where I got the error "ORA01436 - connect with loop in user data.

    I have search the Internet but I don't know why it runs on a 8i and not on a 10G... Can someone help me please?

    Hello

    SELECT  ROWNUM  AS n
    FROM    dual
    CONNECT BY  LEVEL <= x;
    

    is a quick and easy way to generate a table of meters containing all integers from 1 to x. You are the query, it has been changed, not for a list of consecutive integers, but a list of consecutive dates.

    This technique only works in Oracle 9 (and more). You did a mistake when you said it works in Oracle 8 but not in Oracle 10? It is the opposite, when I try.

    Here is another way to generate a table of counters:

    SELECT  ROWNUM  AS n
    FROM    all_objects
    WHERE   ROWNUM  <= x;
    

    This method works in any version of Oracle, but it is slower than the method CONNECT BY and does not work for the great values on x. (this is probably good for x<= 5000,="" depending="" on="" your="">

    If you can do this:

    select days_between.days
    from     (
         SELECT     &date_from + ROWNUM - 1          as days
         FROM     all_objects
         WHERE     ROWNUM     <= (1 + NVL (&date_to, &date_from)) - &date_from
         ) days_between
    where     (     nvl(&exclude_saturdays,'Y') = 'N'
         or     replace(to_char(days_between.days,'DAY'),' ') not in ('SAMEDI','SATURDAY')
         )
    and     (     nvl(&exclude_sundays,'Y') = 'N'
         or     replace(to_char(days_between.days,'DAY'),' ') not in ('DIMANCHE','SUNDAY')
         )
    ;
    

    in any version of Oracle.

  • Oracle: Connect loop in the user data

    I understand when a loop can occur in Oracle. In principle that it is said if a recording is both parent to another node and at the same time he was a child to him, then it may go into a loop.

    But I can't get why my this particular query is running in a loop.

    SELECT Empno, Ename, Job FROM Emp START WITH Empno = 7839 CONNECT BY PRIOR Job='PRESIDENT'

    Can someone please explain to me how these data can result in a loop. I did a CONNECT_BY_ISCYCLE check and found that the closure of the case is KING (Chairman). But I still don't understand how can be possible, that the KING is the President and I do not see anything in which it becomes child and parent to any record in the table.

    Please explain to me, why is it a mistake and where is the loop?

    Thanks in advance.

    Maybe if I pull on the hierarchy of your query, you will see what he is doing...

    PRESIDENT OF KING 7839<-- start="">

    PRESIDENT OF KING 7839<-- prior="" job='PRESIDENT'>

    PRESIDENT OF KING 7839<-- prior="" job='PRESIDENT'>

    .. etc.

    .. etc.

    ANALYST SCOTT 7788<-- prior="" job='PRESIDENT'>

    7902 FORD ANALYST<-- prior="" job='PRESIDENT'>

    7369 SMITH CLERK<-- prior="" job='PRESIDENT'>

    7934 MILLER CLERK<-- prior="" job='PRESIDENT'>

    7900 JAMES CLERK<-- prior="" job='PRESIDENT'>

    CLERK OF 7876 ADAMS<-- prior="" job='PRESIDENT'>

    7566 JONES MANAGER<-- prior="" job='PRESIDENT'>

    MANAGER CLARK 7782<-- prior="" job='PRESIDENT'>

    BLAKE MANAGER 7698<-- prior="" job='PRESIDENT'>

    7499 ALLEN SALESMAN<-- prior="" job='PRESIDENT'>

    7521 WARD SALESMAN<-- prior="" job='PRESIDENT'>

    7654 MARTIN SALESMAN<-- prior="" job='PRESIDENT'>

    7844 TURNER SELLER<-- prior="" job='PRESIDENT'>

    ANALYST SCOTT 7788<-- prior="" job='PRESIDENT'>

    7902 FORD ANALYST<-- prior="" job='PRESIDENT'>

    7369 SMITH CLERK<-- prior="" job='PRESIDENT'>

    7934 MILLER CLERK<-- prior="" job='PRESIDENT'>

    7900 JAMES CLERK<-- prior="" job='PRESIDENT'>

    CLERK OF 7876 ADAMS<-- prior="" job='PRESIDENT'>

    7566 JONES MANAGER<-- prior="" job='PRESIDENT'>

    MANAGER CLARK 7782<-- prior="" job='PRESIDENT'>

    BLAKE MANAGER 7698<-- prior="" job='PRESIDENT'>

    7499 ALLEN SALESMAN<-- prior="" job='PRESIDENT'>

    7521 WARD SALESMAN<-- prior="" job='PRESIDENT'>

    7654 MARTIN SALESMAN<-- prior="" job='PRESIDENT'>

    7844 TURNER SELLER<-- prior="" job='PRESIDENT'>

    Thus, in the first level of the hierarchy is your record START you WITH.

    When all folders are examined, the test of the PREREQUISITE WORK examines the top level folder, determines that he was the PRESIDENT and therefore each record matches this condition.

    Then, each of these folders are evaluated to determine the child records.  At this second level, only KING's post of PRESIDENT, he is the one who would have no record of the child and this WORK PRECONDITION = PRESIDENT will be valid for all records under the 2 KING level.

    This model keeps occurring under each folder KING indefinitely.

  • ORA-01994: GRANT failed: failed to add the users to the public password file

    Snoussi,

    our applications 11.5.10.2 and db 9.2.0.6 whenever I'm in the process of grant dba privileges to rman user sys, I get the below error

    ORA-01994: GRANT failed: failed to add the users to the public password file

    I created the password file and I've changed remote_login_passwordfile = NONE for remote_login_passwordfile = EXCLUSIVE lock
    in initSID.ora then I bounced DB but its showing again.


    SQL > show the distance parameter

    VALUE OF TYPE NAME
    ------------------------------------ ----------- ------------------------------
    real chain of remote_archive_enable
    remote_dependencies_mode string TIMESTAMP
    remote_listener chain
    Remote_login_passwordfile string NONE
    REMOTE_OS_AUTHENT boolean FALSE
    remote_os_roles boolean FALSE
    SQL >

    Here is my information in initSID.ora file.

    ----------------------------------------------
    #############################################################################
    #
    # END OF THE CBO SETTINGS SECTION
    #
    #############################################################################


    #---FIN OF REQUIRED OPTIMIZER PARAMETERS-

    #
    # Client settings.
    #
    Remote_login_passwordfile = EXCLUSIVE lock
    #EMOTE_LOGIN_PASSWORDFILE = exclusive lock
    IFile=/U05/Oracle/visdb/9.2.0/DBS/VIS_linux2_ifile.ora
    [oracle@linux2 dbs] $

    Published by: HumanDBA on June 9, 2009 04:06

    Danny,

    Do you use a spfile to start the database? If Yes, then you must change this setting in the spfile so (issue "show the spfile parameter' to check).

    Kind regards
    Hussein

  • At the start of the ODC: error 20036: Description of error: ORA-06413: connection not open

    Hi all

    I am new to Oracle Document Capture. I installed ODDC on my windows 7 machine and launching that I gave a few local DB references. Since then, I'm not able to open Capture of Document Oracle and I'm not able to change any installation. I am still getting error below and when you click on OK the window closes. I couldn't find any place where I can change this configuration.

    Failed to connect.

    Error number: 20036

    Error description: [the following error occurred connecting to the database:]

    Error number: 20036

    Error description: the following error occurred connecting to the database:

    Error ID: 16389

    Description of error: ORA-06413: connection not open.

    ]

    I tried to uninstall ODC, deletion of data program for the Capture of Document Oracle and re-installed. Still the same error.

    Can someone help me please. I am completely struck with it.

    Thank you

    UMA.

    Problem solved after the installation of the 32-bit oracle client and the ODAC.

    Thank you

  • ORA-03135: connection lost contact for a single user only

    Hi gurus,

    I am puzzled to this problem, no one else is having problem connecting to the database except a user who always gets "ORA-03135: connection lost contact" when you try to connect to the test and Prod environment.

    Oracle@PATEST > sqlplus user@testDB

    SQL * more: release 10.2.0.3.0 - Production Wed Dec 23 13:21:08 2015

    Copyright (c) 1982, 2006, Oracle.  All rights reserved.

    Enter the password:

    ERROR:

    ORA-03135: connection lost contact

    Get the same error when you try to connect via EDIVIEW (application) or the prompt of commands or cygwin terminal directly.

    tnsping works fine and return connect credentials

    Here's what I did troubleshooting:

    1. make sure that the user is not locked in the database

    2. place the database restricted and provided this user mode access restricted and tried the connection as long as that user, not luck.

    3A bounced the listener

    4A rebounded from the database

    5. some online forums suggest to increase the timeout setting in sqlnet.ora, in our environment, we use the OID and the sqlnet.ora is the central directory. If this cannot be the issue that everyone can connect.

    6. I checked the sqlnet.log file and there seems to be no incoming connection from this user or machine.

    Information system and database

    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64 bit Production

    Mna3dbts SunOS 5.10 Generic_150400-27 sun4u sparc SUNW, SPARC-Enterprise

    Any advice would be appreciated

    Hello world

    Thanks for everyone came, surprisingly, the problem is solved by simply changing the user password in the database. As soon as the password is reset, I was able to connect using the assigned user name.

  • ORA-03134: connections to this version of the server are no longer supported in 11.2 to 9.2.0.8 database

    Hello

    I use the ODP.NET 11.2 (Oracle.DataAccess.dll 4.112.3.0) for .NET 4.5 (in Visual Studio 2012). I can connect to 11g databases but when trying to connect to 9.2.0.8 database, this error is thrown:

    ORA-03134: connections to this version of the server are no longer supported

    I do not understand why, like I could connect using Toad, but not a .NET application.

    Furthermore, I use Windows 7 64 bit.

    Any idea?

    Thanks in advance,

    Dave

    Hi Dave,.

    I see that you have version 12 of the supplier in the GAC (i.e. Version = 4.121.1.0). But only for the x 86 and you mentioned that you had Windows 7 64 bit. Your application is compiled as x 86, x 64 or Any CPU?

    You have confirmed that your application does not load this version? For example, because policy redirects in the GAC (such as Policy.4.112.Oracle.DataAccess, Version = 4.121.1.0).

    You can use a tool such as SysInternals Process Explorer or the Assembly Binding Log Viewer (i.e. the SDK fuslogvw) to confirm if necessary.

    It is true that version 12 would return ORA-3134 when you attempt to connect to a database of 9.2 because this combination is not supported.

    Thank you

    Mark

  • Windows 8 mail, Gmail error unable to connect. Make sure that the information you entered is correct

    I tried to set up a Gmail on windows mail 8 for some time. It worked before but then I had to re - install the app and I can't seem to log in now. The only difference between now and when it worked is that I had turned on google + once I had it working the first time, but now I have that turned off.

    I always get this error: unable to connect. Make sure that the information you entered is correct.
    If I have the chance and he fails to add account, then synchronization takes a long time and emails take 5-10 minutes to arrive on the application it does to get to my account in a web browser and on my phone.
    Many users complain about this, we really need a strong response here.

    Hi Martyr844_Coffe,

    Make sure that your google account manager has granted approval of this log - in...

    From there... https://myaccount.google.com/.

    And change the account setting Gmail on Mail app account like the following picture setting...

    (To find out the specific parameters of the account )

Maybe you are looking for

  • window of lsb - error cause moving - bridge Lenovo service 7

    Hey all,. Anyone have a solution to this and know how to fix it? I have uninstall Lenovo Service bridge and once I restart my laptop I have error popup "contact provider" and summary of an error. I saw through the forum of the lenovo site but no solu

  • How to airtime full size to a projector

    I use a projector for the job and if she had directly plugged into my macbook pro to use.  I just got an Apple TV to wirelessly connect both via airplay.  It works, but the picture is not it's 'full size '.  It is as if it is narrowed down.  When it

  • the computer do not work

    yesterday I dwonload the update and I cut the electricity, today, I opened the pc and tell me the configuration of part 3 3 updates do not turn off the computer, his showdown

  • To uninstall MSE as it works normal

    Original title: uninstalled I would like to uninstalled the Microsft Security Essential he don't not wiork the way normal, a message comes up "tha nof can find the files in the wizard and install it again", I tried this again but he read as I have al

  • the system idle process

    I can't believe how many people is blowing this issue, including MS MVP!  This search site and search the Web, there are tons of people with this same problem and the same exact symptoms: 1 response time slows to a CRAWL, sometimes stopping for up to