Problem selecting from VIEW

Hi All,
I have to select from a maintenance view which is well defined (in ABAP DDIC).
The problem is :
<b>
System is throwing a error saying the view is NOT defined in ABAP DDIC.
</b>
What can be the possible reason for this.
Can we <b>NOT</b> select from maintainance views ?
Please advice.
Regards,
Anirban

HI,
  There is no harm in making use of view ...
Can you please let us know the view which you are making use of ??
Regards,
Santosh

Similar Messages

  • Problems managing select * from views

    Here a nice sample..
    I have a registered schema and a database with 8000 records.
    Create view first_search_view as
    select extractvalue(XML_CONTENT,'/word/@class') class,
    extractValue(xml_content, '/word/*/lemma/text()') lemma,
    extractValue(xml_content, '/word/*/adverb/form/w/text()') adverb_form,
    extractValue(xml_content, '/word/*/derivation/prebasuf/w/text()') derprebasuf,
    extractValue(xml_content, '/word/*/sense/comword/prebasuf/w/text()') comprebasuf,
    extract(xml_content, '/word/*/sense/collocation/pattern/w/text()').getstringval() colpattern,
    extract(xml_content, '/word/*/idiomExpr/pattern/w/text()') idiompattern,
    extract(xml_content, '/word/*/sense/model/realisation/modpattern/w/text()').getstringval() modpattern,
    extract(xml_content, '/word/*/sense/*/definition/w/text()').getstringval() definition,
    extract(xml_content, '/word/*/sense/description/characteristic/quality/w/text()').getstringval() descquality
    from xml_words
    all ok and infact
    SQL> desc first_search_view;
    Name Null? Type
    CLASS VARCHAR2(4000 CHAR)
    LEMMA VARCHAR2(4000)
    ADVERB_FORM VARCHAR2(4000)
    DERPREBASUF VARCHAR2(4000)
    COMPREBASUF VARCHAR2(4000)
    COLPATTERN VARCHAR2(4000)
    IDIOMPATTERN SYS.XMLTYPE
    MODPATTERN VARCHAR2(4000)
    DEFINITION VARCHAR2(4000)
    DESCQUALITY VARCHAR2(4000)
    But then, when I try to run just:
    Create table first_search as
    select *
    from first_search_view
    The answer is
    ERROR at line 3:
    ORA-19010: Cannot insert XML fragments
    I remove the XMLtype field... I think that it is probably the problem.
    Create table first_search as
    select lemma, adverb_form, DERPREBASUF, COMPREBASUF, COLPATTERN, MODPATTERN, DEFINITION, DESCQUALITY
    from first_search_view
    from first_search_view
    ERROR at line 3:
    ORA-19025: EXTRACTVALUE returns value of only one node
    but if I run the select....
    select lemma, adverb_form, DERPREBASUF, COMPREBASUF, COLPATTERN, MODPATTERN, DEFINITION, DESCQUALITY
    from first_search_view
    It is executed!!!
    There is something wrong.... Really I cannot understand the reason of this.
    Anyone could calrify what could be wrong?
    Stefano

    Stefano, since you did not post the latest xml instance, i have taken the one posted in your previous thread .
    So becuase of which i have to change the XPATH for "idiompattern" column to get some data.
    I too had the same problem as you have posted. But when i added a GetStringVal() method to the expression, it converts it to varchar data type and you are able to create the table. Also you can do GetClobVal if the string has chance to exceed 4000 characters. Later you can convert this to XMLTYPE when ever required.
    declare
      l_xml_data CLOB :=
      '<word class="adjective" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://words.xsd">
      <adjective id="de.a.warm.1">
      <lemma>warm</lemma>
      <morphology>
      <rawData>warm - wärmer - wärmst-</rawData>
      </morphology>
      <sense>
      <adjectiveSubsense>
      <definition>
      <rawData>Warm bedeutet, dass etwas eine relativ hohe Temperatur hat, aber nicht heiß ist.</rawData>
      </definition>
      <translation>
      <rawData>caldo</rawData>
      </translation>
      <example>
      <rawData>Angenehm warme Sommertemperaturen zwischen 24 und 26 Grad werden in der kommenden Woche erwartet. Es ist nicht übermäßig heiß, aber trotzdem warmes Badewetter.</rawData>
      </example>
      </adjectiveSubsense>
      <adjectiveSubsense>
      <definition>
      <rawData>Warm verwendet man für Essen, das gekocht und noch warm (1) ist.</rawData>
      </definition>
      <translation>
      <rawData>caldo</rawData>
      </translation>
      <example>
      <rawData>Das Essen steht auf dem Tisch! Würdest du bitte zu Tisch kommen, solange das Essen noch warm ist!~Ich komm ja gleich, ich muss nur noch schnell das Kapitel fertig lesen!</rawData>
      </example>
      </adjectiveSubsense>
      <insertElement target="field">de.a.warm.1.f1</insertElement>
      <collocation>
      <pattern>
      <rawData>jemdm. ist warm</rawData>
      </pattern>
      <translation>
      <rawData>qualcuno ha caldo</rawData>
      </translation>
      <example>
      <rawData>#Mir #ist #warm. Ich werde meinen Pullover ausziehen!</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>etw. ist angenehm warm</rawData>
      </pattern>
      <translation>
      <rawData>qualcosa è bello caldo</rawData>
      </translation>
      <example>
      <rawData>Der Tee ist nicht mehr zu heiß. #Er #ist #angenehm #warm und gerade richtig zum Trinken.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>es ist warm</rawData>
      </pattern>
      <translation>
      <rawData>fa caldo</rawData>
      </translation>
      <example>
      <rawData>Kaum scheint nach dem Sommergewitter wieder die Sonne, #ist #es sofort wieder #warm.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>ein warmes Bad nehmen</rawData>
      </pattern>
      <translation>
      <rawData>farsi un bagno caldo</rawData>
      </translation>
      <example>
      <rawData>Ich bin völlig durchnässt und erfroren nach Hause gekommen. Dann #habe ich #ein #warmes #Bad #genommen, um mich wieder aufzuwärmen.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>warm essen</rawData>
      </pattern>
      <translation>
      <rawData>fare un pasto caldo</rawData>
      </translation>
      <example>
      <rawData>In diesem Restaurant ist die Küche bis 23 Uhr geöffnet und man kann #warm #essen.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>etw. warm stellen</rawData>
      </pattern>
      <translation>
      <rawData>mettere in caldo qualcosa</rawData>
      </translation>
      <example>
      <rawData>Herr Tieser hat sich zum Abendessen verspätet und seine Familie hat mit dem Essen nicht auf ihn gewartet. Sie #haben ihm #das #Risotto jedoch #warm #gestellt.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>warmes Wasser</rawData>
      </pattern>
      <translation>
      <rawData>acqua calda</rawData>
      </translation>
      <example>
      <rawData>Die Hausverwaltung weist die Parteien darauf hin, dass wegen Reparaturarbeiten morgen zwischen 9 und 12 Uhr #das #warme #Wasser abgestellt wird.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>warme Tage, warme Luft, ein warmes Klima, ein warmer Winter, ein warmer Sommer ...</rawData>
      </pattern>
      <translation>
      <rawData>giornate calde, aria calda, un clima caldo, un inverno caldo, un''esate calda ...</rawData>
      </translation>
      <example>
      <rawData>Ich habe seit drei Tagen Kopfschmerzen. Vermutlich liegt das am Föhn und #dieser #warmen #Luft, die ich nicht vertrage.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>eine warme Mahlzeit, enie warme Speise, ein warmes Essen ...</rawData>
      </pattern>
      <translation>
      <rawData>un pasto caldo, un piatto caldo, un pasto caldo ...</rawData>
      </translation>
      <example>
      <rawData>Nachdem ich in den letzten Tagen immer nur Salat gegessen habe, freue ich mich heute wieder darauf, #eine #warme #Speise zu genießen.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>warme und kalte Küche</rawData>
      </pattern>
      <translation>
      <rawData>piatti caldi e freddi</rawData>
      </translation>
      <example>
      <rawData>Die Cafeteria der Uni bietet durchgehend #warme #Küche an.</rawData>
      </example>
      </collocation>
      </sense>
      <sense>
      <adjectiveSubsense>
      <definition>
      <rawData>Warm bedeutet, dass etwas so ist, dass es vor Kälte schützt.</rawData>
      </definition>
      <translation>
      <rawData>caldo</rawData>
      </translation>
      <example>
      <rawData>Die Schuhverkäuferin preist die neue Ware an: Die gefütterten Winterschuhe sind sehr warm. Sie werden nie wieder kalte Zehen bekommen!</rawData>
      </example>
      </adjectiveSubsense>
      <insertElement target="field">de.a.warm.1.f2</insertElement>
      <collocation>
      <pattern>
      <rawData>etw. hält warm</rawData>
      </pattern>
      <translation>
      <rawData>qualcosa tiene caldo</rawData>
      </translation>
      <example>
      <rawData>Die selbst gestrickten Socken sind zwar kratzig, aber #sie #halten ausgesprochen #warm!</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>sich warm anziehen</rawData>
      </pattern>
      <translation>
      <rawData>mettersi indumenti caldi~coprirsi bene</rawData>
      </translation>
      <example>
      <rawData>#Zieh #dich #warm an, wenn du bei dem Sturm hinausgehst, sonst verkühlst du dich noch!</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>sich warm zudecken</rawData>
      </pattern>
      <translation>
      <rawData>coprirsi bene</rawData>
      </translation>
      <example>
      <rawData>Nach der Gutenachtgeschichte macht Vati das Licht aus, #deckt #mich #warm #zu und wünscht mir süße Träume.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>warm angezogen sein</rawData>
      </pattern>
      <translation>
      <rawData>indossare vestiti caldi, essere coperto bene</rawData>
      </translation>
      <example>
      <rawData>Bei diesen arktischen Temperaturen ist es wichtig, dass man #warm #angezogen #ist, wenn man das Haus verlässt.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>warm eingepackt sein</rawData>
      </pattern>
      <translation>
      <rawData>essere imbacuccato, essere coperto bene</rawData>
      </translation>
      <example>
      <rawData>Die Kinder spielen auf dem Kinderspielplatz. Sie #sind wegen des kalten Wetters sehr #warm #eingepackt und haben Mütze, Schal und Handschuhe an.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>warme Kleidung</rawData>
      </pattern>
      <translation>
      <rawData>indumenti caldi</rawData>
      </translation>
      <example>
      <rawData>Ab Jänner ist die #warme Winterkleidung bereits im Ausverkauf und die Frühlingsmode erscheint in den Schaufenstern.</rawData>
      </example>
      </collocation>
      </sense>
      <sense>
      <adjectiveSubsense>
      <definition>
      <rawData>Warm bedeutet freundlich und dass es von Herzen kommt.</rawData>
      </definition>
      <translation>
      <rawData>caldo~caloroso</rawData>
      </translation>
      <example>
      <rawData>Frau Hanse ist eine warme Frau. Sie interessiert sich immer ehrlich für das Wohlbefinden ihrer Nachbarn und ihr Mitgefühl kommt von Herzen.</rawData>
      </example>
      </adjectiveSubsense>
      <insertElement target="field">de.a.warm.1.f3</insertElement>
      <collocation>
      <pattern>
      <rawData>ein warmes Herz</rawData>
      </pattern>
      <translation>
      <rawData>un cuore caldo</rawData>
      </translation>
      <example>
      <rawData>Auf Anne kann man immer zählen. Sie hat #ein #warmes #Herz, hört einem immer zu und ist bei jedem Spass dabei. Sie ist eine gute Freundin.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>warme Worte</rawData>
      </pattern>
      <translation>
      <rawData>parole calorose</rawData>
      </translation>
      <example>
      <rawData>#Die #warmen, verständnisvollen #Worte taten meiner Seele gut und munterten mich wieder auf.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>ein warmer Händedruck</rawData>
      </pattern>
      <translation>
      <rawData>una calorosa stretta di mano</rawData>
      </translation>
      <example>
      <rawData>#Mit #einem #warmen #Händedruck verabschiedeten sich die beiden Freunde herzlich voneinander.</rawData>
      </example>
      </collocation>
      </sense>
      <sense>
      <adjectiveSubsense>
      <definition>
      <rawData>Warm verwendet man für Farben und Licht, die kräftig sind und warm (1a) wirken und die eine angenehme Antmosphäre verbreiten.</rawData>
      </definition>
      <translation>
      <rawData>caldo</rawData>
      </translation>
      <example>
      <rawData>Die Farbpalette wird in kalte und warme Farben eingeteilt. Rot und orange sind zum Beispiel warme Farben.</rawData>
      </example>
      </adjectiveSubsense>
      <insertElement target="field">de.a.warm.1.f4</insertElement>
      <collocation>
      <pattern>
      <rawData>etw. spendet warmes Licht</rawData>
      </pattern>
      <translation>
      <rawData>qalcosa emette una luce calda</rawData>
      </translation>
      <example>
      <rawData>#Die #flackernde #Kerze #spendet #warmes #Licht und taucht den Raum in eine behagliche Atmosphäre.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>warme Farben</rawData>
      </pattern>
      <translation>
      <rawData>colori caldi</rawData>
      </translation>
      <example>
      <rawData>Der Innenarchitekt empfiehlt dem jungen Ehepaar, #warme #Farben für das Kinderzimmer zu wählen, da sie ein Bedürfnis nach Harmonie wecken.</rawData>
      </example>
      </collocation>
      <collocation>
      <pattern>
      <rawData>ein warmes Braun, ein warmes Rot ...</rawData>
      </pattern>
      <translation>
      <rawData>un marrone caldo, un rosso caldo ...</rawData>
      </translation>
      <example>
      <rawData>Der Sonnenuntergang war sehr romantisch. #Das #warme #Rot der Sonne hat sich im Meer gespiegelt. Schließlich ist sie wie ein großer Ball am Horizont verschwunden.</rawData>
      </example>
      </collocation>
      </sense>
      <sense>
      <adjectiveSubsense>
      <definition>
      <rawData>Warm bedeutet, dass die Kosten für die Heizung bei der Miete schon dabei ist.</rawData>
      </definition>
      <translation>
      <rawData>riscaldamento incluso</rawData>
      </translation>
      <example>
      <rawData>Roland erkundigt sich beim Vermieter über die Mietkosten. Dieser erklärt ihm, dass die Wohnung 800 Euro im Monat warm kostet.</rawData>
      </example>
      </adjectiveSubsense>
      <insertElement target="field">de.a.warm.1.f5</insertElement>
      <collocation>
      <pattern>
      <rawData>das Zimmer, die Wohnung ... kostet x Euro warm</rawData>
      </pattern>
      <translation>
      <rawData>la camera, l''appartamento ... costa x euro riscaldamento incluso</rawData>
      </translation>
      <example>
      <rawData>Ich habe ein neues Zimmer gemietet. Die Kosten für die Heizung sind schon inklusive. Es kostet also 300 Euro warm.</rawData>
      </example>
      </collocation>
      </sense>
      <derivation>
      <prebasuf>
      <rawData>auf_wärm_en</rawData>
      </prebasuf>
      <translation>
      <rawData>(ri)scaldare</rawData>
      </translation>
      </derivation>
      <derivation>
      <prebasuf>
      <rawData>die Er_wärm_ung</rawData>
      </prebasuf>
      <translation>
      <rawData>il riscaldamento</rawData>
      </translation>
      </derivation>
      <derivation>
      <prebasuf>
      <rawData>er_wärm_en</rawData>
      </prebasuf>
      <translation>
      <rawData>(ri)scaldare, appassionare</rawData>
      </translation>
      </derivation>
      <derivation>
      <prebasuf>
      <rawData>vor_wärm_en</rawData>
      </prebasuf>
      <translation>
      <rawData>preriscaldare</rawData>
      </translation>
      </derivation>
      <derivation>
      <prebasuf>
      <rawData>die Wärme</rawData>
      </prebasuf>
      <translation>
      <rawData>il caldo, il calore</rawData>
      </translation>
      </derivation>
      <derivation>
      <prebasuf>
      <rawData>wärmen</rawData>
      </prebasuf>
      <translation>
      <rawData>(ri)scaldare</rawData>
      </translation>
      </derivation>
      <idiomExpr>
      <pattern>
      <rawData>sich warm machen</rawData>
      </pattern>
      <explanationDE>
      <rawData>vor dem Sport oder vor einem Wettbewerb Gymnastik machen, um die Muskeln aufzulockern</rawData>
      </explanationDE>
      <explanationIT>
      <rawData>fare ginnastica per scigliere i muscoli prima di una gara sportiva</rawData>
      </explanationIT>
      <translation>
      <rawData>riscaldarsi, fare riscaldamento</rawData>
      </translation>
      <example>
      <rawData>In einer halben Stunde beginnt der Wettkampf. Davor muss ich #mich noch #warm #machen.</rawData>
      </example>
      </idiomExpr>
      <idiomExpr>
      <pattern>
      <rawData>sich warm reden</rawData>
      </pattern>
      <explanationDE>
      <rawData>beim Reden seine Befangenheit, Zurückhaltung verlieren</rawData>
      </explanationDE>
      <explanationIT>
      <rawData>vincere la timidezza e la riservatezza e iniziare a parlare con scorrevolezza</rawData>
      </explanationIT>
      <translation>
      <rawData>sciogliersi, sciogliere la lingua</rawData>
      </translation>
      <example>
      <rawData>Mein Vortrag war sehr gut. Nach nur fünf Minuten #hatte ich #mich #warm #geredet und dann habe ich über eine halbe Stunde fließend geredet.</rawData>
      </example>
      </idiomExpr>
      <idiomExpr>
      <pattern>
      <rawData>mit jemdm./etw. (nicht) warm werden</rawData>
      </pattern>
      <comment>
      <rawData>umgangssprachlich</rawData>
      </comment>
      <explanationDE>
      <rawData>mit jemdm./etw. (nicht) vertraut werden und (nicht) sympathisch finden</rawData>
      </explanationDE>
      <explanationIT>
      <rawData>(non) acquisire familiarità con qualcuno/qualcosa</rawData>
      </explanationIT>
      <translation>
      <rawData>(non) entrare in confidenza con qualcuno/(non) prendere confidenza con qualcosa</rawData>
      </translation>
      <example>
      <rawData>Zu Claudia habe ich noch immer kein herzliches Verhältnis gefunden. Ich #werde einfach #nicht #warm #mit #ihr.</rawData>
      </example>
      </idiomExpr>
      </adjective>
      </word>';
    begin
      insert into xml_table values(1, xmltype(l_xml_data));
    end;
    Create or replace view first_search_view as
    select extractvalue(xml_data,'/word/@class') class,
      extractValue(xml_data, '/word/*/lemma/text()') lemma,
      extractValue(xml_data, '/word/*/adverb/form/w/text()') adverb_form,
      extractValue(xml_data, '/word/*/derivation/prebasuf/w/text()') derprebasuf,
      extractValue(xml_data, '/word/*/sense/comword/prebasuf/w/text()') comprebasuf,
      extract(xml_data, '/word/*/sense/collocation/pattern/w/text()').getstringval() colpattern,
    extract(xml_data, '/word/*/idiomExpr/pattern').GetClobVal() idiompattern,
      extract(xml_data, '/word/*/sense/model/realisation/modpattern/w/text()').getstringval() modpattern,
      extract(xml_data, '/word/*/sense/*/definition/w/text()').getstringval() definition,
      extract(xml_data, '/word/*/sense/description/characteristic/quality/w/text()').getstringval() descquality
    from xml_table
    create table test_xml_table
    as
    select * from first_Search_view
    SQL> desc first_search_View
    Name                                                  Null?    Type
    CLASS                                                          VARCHAR2(4000)
    LEMMA                                                          VARCHAR2(4000)
    ADVERB_FORM                                                    VARCHAR2(4000)
    DERPREBASUF                                                    VARCHAR2(4000)
    COMPREBASUF                                                    VARCHAR2(4000)
    COLPATTERN                                                     VARCHAR2(4000)
    IDIOMPATTERN                                                   CLOB
    MODPATTERN                                                     VARCHAR2(4000)
    DEFINITION                                                     VARCHAR2(4000)
    DESCQUALITY                                                    VARCHAR2(4000)
    SQL> desc test_xml_table
    Name                                                  Null?    Type
    CLASS                                                          VARCHAR2(4000)
    LEMMA                                                          VARCHAR2(4000)
    ADVERB_FORM                                                    VARCHAR2(4000)
    DERPREBASUF                                                    VARCHAR2(4000)
    COMPREBASUF                                                    VARCHAR2(4000)
    COLPATTERN                                                     VARCHAR2(4000)
    IDIOMPATTERN                                                   CLOB
    MODPATTERN                                                     VARCHAR2(4000)
    DEFINITION                                                     VARCHAR2(4000)
    DESCQUALITY                                                    VARCHAR2(4000)
    SQL> set linesize 200
    SQL> column class format a20
    SQL> column idiompattern format a70
    SQL>
    SQL> select class,  idiompattern from test_xml_table
      2  /
    CLASS                IDIOMPATTERN
    adjective            <pattern>
                           <rawData>sich warm machen</rawData>
                         </pattern>
                         <pattern>
                           <rawData>sich warm reden</rawData>
                         </pattern>
                         <pattern>
                           <rawData>mit jemdm./etw. (nicht) warm werden</rawData>
                         </pattern>
    SQL>

  • Error while selecting from view that references external table

    Can someone explain why the error near the bottom of the code below is occuring? If USER1 grants SELECT on the external table to USER2, then USER2 can select from the view without any problems; however, I want to avoid giving USER2 access to all of the columns in the external table. (I only want to give USER2 access to two of the four columns.)
    SQL> CONNECT sys AS SYSDBA
    Connected as SYS@ as sysdba
    SQL> CREATE USER user1 IDENTIFIED BY user1
    User created.
    SQL> CREATE USER user2 IDENTIFIED BY user2
    User created.
    SQL> GRANT CONNECT, CREATE TABLE, CREATE VIEW TO user1
    Grant complete.
    SQL> GRANT CONNECT TO user2
    Grant complete.
    SQL> GRANT READ, WRITE ON DIRECTORY EXT_DATA_DIR TO user1, user2
    Grant complete.
    SQL> CONNECT user1/user1
    Connected as USER1@
    SQL> CREATE TABLE emp_xt
      emp_id     NUMBER,
      first_name VARCHAR2(30),
      last_name  VARCHAR2(30),
      phone      VARCHAR2(15)
    ORGANIZATION EXTERNAL
      TYPE ORACLE_LOADER
      DEFAULT DIRECTORY EXT_DATA_DIR
      ACCESS PARAMETERS
        RECORDS DELIMITED BY NEWLINE
        FIELDS TERMINATED BY ','
        OPTIONALLY ENCLOSED BY '"'           
      LOCATION ('emp.txt')
    REJECT LIMIT 0
    Table created.
    SQL> SELECT COUNT(1) FROM emp_xt
      COUNT(1)
             4
    1 row selected.
    SQL> CREATE OR REPLACE VIEW emp_xt_view AS SELECT first_name, last_name FROM emp_xt;
    View created.
    SQL> SELECT COUNT(1) FROM emp_xt_view
      COUNT(1)
             4
    1 row selected.
    SQL> GRANT SELECT ON emp_xt_view TO user2
    Grant complete.
    SQL> CONNECT user2/user2
    Connected as USER2@
    SQL> SELECT COUNT(1) from user1.emp_xt_view
    SELECT COUNT(1) from user1.emp_xt_view
    Error at line 0
    ORA-29913: error in executing ODCIEXTTABLEOPEN callout
    ORA-29400: data cartridge error
    ORA-04043: object "USER1"."EMP_XT" does not exist
    SQL> CONNECT user1/user1
    Connected as USER1@
    SQL> GRANT SELECT ON user1.emp_xt TO user2
    Grant complete.
    SQL> CONNECT user2/user2
    Connected as USER2@
    SQL> SELECT COUNT(1) from user1.emp_xt_view
      COUNT(1)
             4
    1 row selected.
    {code}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    user503699 wrote:
    user1983440 wrote:
    Can someone explain why the error near the bottom of the code below is occuring? If USER1 grants SELECT on the external table to USER2, then USER2 can select from the view without any problems; however, I want to avoid giving USER2 access to all of the columns in the external table. (I only want to give USER2 access to two of the four columns.)As you have demonstrated, I guess the view approach only works for database tables. External tables are actually files on the file system. Even through OS, it is not possible to grant READ/WRITE access to only part of the file. The access is for entire file. An "External Table" is just a "wrapper" provided by oracle (using data cartridge) to allow user to be able to access the file as a "table". So it can definitely not do something that underlying OS can not do.
    p.s. In fact, oracle does not even allow to edit data in external tables using SQL.Why not just make a second external table (only including the 2 columns you need) and grant select directly on that to the user. I know you say "views only" but there's an exception to every rule ... just because it's called a table doesn't make it so. You could argue an external table is nothing more than a fancy view.
    Worst case, make a view on top of the second external table.
    CREATE TABLE emp_xt_less_information
      first_name VARCHAR2(30),
      last_name  VARCHAR2(30)
    ORGANIZATION EXTERNAL
      TYPE ORACLE_LOADER
      DEFAULT DIRECTORY EXT_DATA_DIR
      ACCESS PARAMETERS
        RECORDS DELIMITED BY NEWLINE
        FIELDS TERMINATED BY ','
        OPTIONALLY ENCLOSED BY '"'   
             emp_id      number,
             first_name  char,
             last_name   char,
             phone       char
      LOCATION ('emp.txt')
    REJECT LIMIT 0
    {code}
    Should do it, but my syntax may be off a touch ....                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Selecting from Views and ORA-0600

    Hi All,
    I am using Oracle 9i and was looking for some guidance on the issue I am seeing.
    I have this huge query in which some dataelements are obtained using sys_connect_by_path while the others are got directly. I have set this huge query set up as a view (GetDataView).
    I am now trying to query from the view. (I am using a stored procedure to get dataelements from the view and output as a xml).
    When I do a 'select * from GetDataView' , the results come back fine. Also, when I query the dataelements which are obtained directly (without sys_connect_by_path), they come back fine as well. However, when I try and get the dataelements which are obtained using
    sys_connect_by_path, I get the error :
    "An error was encountered while performing the requested operation:
    ORA-00600: internal error code, arguments:qkacon:qkaconGetPathOps:1],[,],[,],[,],[
    00600.0000 - "internal error code, arguments: %s,%s,%s,%s,%s,%s,%s,%s".
    I know that this is a known issue with Oracle 9i when using sys_connect_by_path but this huge query executes perfectly when I run it independently.
    It is only when I try to query the view for individual dataelements(which use sys_connect_by_path) that I get this error.
    Can you pls point out what the problem could be here? Also, can you pls suggest any workarounds that I could try.
    Thanks in advance,
    AD
    Query which uses SYS_CONNECT_BY_PATH for certain elements - This is set up as a View
    SELECT --nrtd dataelements (Non Relational Test Data)
    nrtd.ID, nrtd.DevelopmentSite, nrtd.ProjectStatus, nrtd.ProjectType, nrtd.Creator, nrtd.Business_Unit,
    nrtd.Division, nrtd.Strategy,
    --Special Case : First Generic from NewModels if FF, TD, PD, FFC, BD. PromisWaferIdentifier from WaferInformation if New Wafer or New Die
    nmwigen.SAPGenericID,
    nrtd.AssemblySite,
    rwid.FabSite,
    nrtd.packagetype, nrtd.directreleasestrat,
    nrtd.testsite, nrtd.packsite, nrtd.umbrellaproject_id, nrtd.keycustomers, nrtd.ProjectedReleasedate,
    nrtd.perfwwmfgnpcoordinator, nrtd.perfwwmfgoffshoretesteng, nrtd.packagedesignator, nrtd.leadballcount, nrtd.bodysize,
    nrtd.finishcode, nrtd.pkgnumber, nrtd.pkgstatus, nrtd.pborpbfree, nrtd.paddlex, nrtd.PaddleY,
    nrtd.BackGrind, nrtd.LeadFrameType, nrtd.PiecePart, nrtd.assypackoption,
    nrtd.testprocess, nrtd.contactorresreq, nrtd.highrfrequired, nrtd.PeakCurrent, nrtd.AssignedFocusFactory,
    nrtd.MfgReleaseReqStatus , nrtd.NumActuators , nrtd.NumBoards, nrtd.numcontactors,
    nrtd.IsQualPlanRequired, nrtd.QualNumber, nrtd.FailedQualProjectdisposition,
    nrtd.IdentifiedActionFromQualReview,
    --rtgd dataelements (Relational TestGrades Data)
    rtgd.ProductGrade, rtgd.SpeedSuffix, rtgd.PartClass,
    rtgd.MultiGrade, rtgd.EstTotalTestTimeGood, rtgd.EstTotalTestTimeBad,
    rtgd. ActTotalTestTimeGood, rtgd.ActTotalTestTimeBad, rtgd.EstOverAllYield,
    rtgd.EstYieldToGrade, rtgd.ActOverAllYield, rtgd.ActYieldToGrade,
    -- rnmd dataelements (Relational NewModels Data)
    rnmd.ActualFGMaterialNum, rnmd.PackOption, rnmd.IsReleasedMaterial,
    --rtpd dataelements (Relational TestPasses Data)
    rtpd.Contactor, rtpd.Handler, rtpd.TesterConfig, rtpd.NumTestSites,
    rtpd.TestTemp, rtpd.SpecialTest, --rtpd.SpecialTestCommByPassPerGrade,
    rtpd.EstTestTimeGood, rtpd.EstTestTimeBad, rtpd.ActTestTimeGood,
    rtpd.ActTestTimeBad,
    --rwid dataelements (Relational WaferInformation Data)
    rwid.WID, rwid.WaferDesignType, rwid.WaferSize, rwid.FabProcessCode, rwid.FabProcessStatus, rwid.FndryFabPlantCode, rwid.EstTapeOutDate,
    rwid.EstXWidth, rwid.EstGDPW, rwid.EstYLength, rwid.PowerDissipation, rwid.XWidth, rwid.YLength,
    rwid.OMSVendorName, rwid.GDPW, rwid.IsReleaseOnPizzaMask, rwid.FabMfgReleaseReqStatus, rwid.FabMfgReleaseReqComments,
    --rtpid dataelements (Relational TrimProbeInformation Data)
    rtpid.ProbeSite, rtpid.ProbeType, rtpid.DieDesignType, rtpid.probemfgreleasereqstatus,
    rtpid.probemfgreleasereqcomments, rtpid.isvendorpartonwfrordsht,
    --rtpgd dataelements (Relational TrimProbeGrade Data)
    rtpgd.ProbeGrade, rtpgd.EstProbeYield1, rtpgd.EstTotalProbeTimeGood, rtpgd.EstTotalProbeTimeBad,
    rtpgd.ActProbeYield, rtpgd.ActTotalProbeTimeGood, rtpgd.ActTotalProbeTimeBad,
    --rtppd dataelements (Relational TrimProbePasses Data)
    rtppd.TrimProbeSystem, rtppd.NumProbeSites, rtppd.ProbeTempReqd1, rtppd.ProbeTemp
    --Non relational TestData data elements. Alias Table 'nrtd'
    FROM (SELECT npip.id AS ID, npip.developmentsite AS DevelopmentSite, npip.projectstatus AS ProjectStatus,
    npip.ProjectType AS ProjectType, pt.Creator, ss.Business_Unit, ss.Division, npip.strategy_name AS Strategy,
    ffi.assemblysite, ffi.packagetype, ti.directreleasestrat AS directreleasestrat,
    ti.testsite, ti.PackSite, npip.umbrellaproject_id, npip.keycustomers, npip.projectedreleasedate AS ProjectedReleasedate,
    pt.perfwwmfgnpcoordinator AS perfwwmfgnpcoordinator, pt.perfwwmfgoffshoretesteng AS perfwwmfgoffshoretesteng, ffi.packagedesignator,
    ffi.leadballcount, ffi.bodysize, ffi.finishcode AS finishcode, ffi.pkgnumber, ffi.pkgstatus,
    ffi.pborpbfree AS pborpbfree, ffi.paddlex AS paddlex, ffi.paddley AS paddley, ffi.backgrind AS backgrind,
    ffi.LeadFrameType, ffi.PiecePart AS PiecePart, ffi.assypackoption AS assypackoption,
    ti.testprocess AS testprocess, ti.contactorresreq AS contactorresreq,
    ti.highrfrequired AS highrfrequired, ti.PeakCurrent AS PeakCurrent, vp.AssignedFocusFactory,
    vp.MfgReleaseReqStatus AS MfgReleaseReqStatus, vp.NumActuators AS NumActuators, vp.NumBoards AS NumBoards,
    vp.numcontactors AS numcontactors, qi.IsQualPlanRequired, qi.QualNumber, qi.FailedQualProjectdisposition,
    qi.IdentifiedActionFromQualReview
    FROM NPIProjects npip
    LEFT OUTER JOIN ProjectTeam pt ON pt.NPIProjectId = npip.Id
    LEFT OUTER JOIN sapws_strategies ss ON ss.Strategy = npip.strategy_name
    LEFT OUTER JOIN FormFactorInformation ffi ON ffi.NPIProjectId = npip.Id
    LEFT OUTER JOIN TestInformation ti ON ti.FormFactorInformationId = ffi.Id
    LEFT OUTER JOIN ValidationPlans vp ON vp.FormFactorInformationId = ffi.Id
    LEFT OUTER JOIN QualInformation qi ON qi.FormFactorInformationId = ffi.Id) nrtd,
    -- Relational data elements.
    --TestGrades DataElements. Alias Table 'rtgd'
    (SELECT NPIProjectID,
    (LTRIM(sys_connect_by_path(ProductGrade,';'),';')) ProductGrade,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| SpeedSuffix,';'),';')) SpeedSuffix,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| PartClass,';'),';')) PartClass,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| MultiGrade,';'),';')) MultiGrade,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| EstTotalTestTimeGood,';'),';')) EstTotalTestTimeGood,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| EstTotalTestTimeBad,';'),';')) EstTotalTestTimeBad,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| ActTotalTestTimeGood,';'),';')) ActTotalTestTimeGood,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| ActTotalTestTimeBad,';'),';')) ActTotalTestTimeBad,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| EstOverAllYield,';'),';')) EstOverAllYield,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| EstYieldToGrade,';'),';')) EstYieldToGrade,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| ActualOverAllYield,';'),';')) ActOverAllYield,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| ActualYieldToGrade,';'),';')) ActYieldToGrade
    FROM (SELECT npip.id AS NPIProjectID, tg.ProductGrade AS ProductGrade,
    tg.SpeedSuffix AS SpeedSuffix, tg.PartClass AS PartClass, tg.MultiGrade AS MultiGrade,
    tg.EstTotalTestTimeGood AS EstTotalTestTimeGood, tg.EstTotalTestTimeBad AS EstTotalTestTimeBad,
    tg.ActTotalTestTimeGood AS ActTotalTestTimeGood, tg.ActTotalTestTimeBad AS ActTotalTestTimeBad,
    tg.EstOverAllYield AS EstOverAllYield, tg.EstYieldToGrade AS EstYieldToGrade, tg.ActualOverAllYield AS ActualOverAllYield,
    tg.ActualYieldToGrade AS ActualYieldToGrade,
    row_number() OVER (PARTITION BY npip.id ORDER BY npip.id) rnum,
    COUNT(*) OVER (PARTITION BY npip.id) tot
    FROM NPIProjects npip LEFT OUTER JOIN FormFactorInformation ffi ON ffi.NPIProjectId = npip.Id
    LEFT OUTER JOIN TestGrades tg ON tg.FormFactorInformationId = ffi.Id)
    WHERE rnum=tot START WITH rnum =1 CONNECT BY PRIOR rnum = rnum-1 AND PRIOR NPIProjectID = NPIProjectID) rtgd,
    -- NewModels DataElements. Alias Table 'rnmd'
    (SELECT NPIProjectID,
    (LTRIM(sys_connect_by_path(ActualFGMaterialNum,';'),';')) ActualFGMaterialNum,
    (LTRIM(sys_connect_by_path(PackOption,';'),';')) PackOption,
    (LTRIM(sys_connect_by_path(IsReleasedMaterial,';'),';')) IsReleasedMaterial
    FROM (SELECT npip.id AS NPIProjectID,
    nm.ActualFGMaterialNum AS ActualFGMaterialNum,
    nm.PackOption AS PackOption, nm.IsReleasedMaterial AS IsReleasedMaterial,
    row_number() OVER (PARTITION BY npip.id ORDER BY npip.id) rnum,
    COUNT(*) OVER (PARTITION BY npip.id) tot
    FROM NPIProjects npip LEFT OUTER JOIN FormFactorInformation ffi ON ffi.NPIProjectId = npip.Id
    LEFT OUTER JOIN TestGrades tg ON tg.FormFactorInformationId = ffi.Id
    LEFT OUTER JOIN NewModels nm ON nm.TestGradesID = tg.Id)
    WHERE rnum=tot START WITH rnum =1 CONNECT BY PRIOR rnum = rnum-1 AND PRIOR NPIProjectID = NPIProjectID) rnmd,
    --SAPGenericID from NewModels Table for FF, TD, BD, PD and PromisWaferIdentifier from WaferInformation Table for New Wafer and New Die
    (SELECT npip.id AS NPIProjectID, decode(npip.projecttype, 'New Wafer', wi.PromisWaferIdentifier, 'New Die', wi.PromisWaferIdentifier, nm.SAPGenericID)SAPGenericID --nm.SAPGenericID
    FROM NPIProjects npip LEFT OUTER JOIN FormFactorInformation ffi ON ffi.NPIProjectId = npip.Id
    LEFT OUTER JOIN WaferInformation wi ON wi.NPIProjectId = npip.Id
    LEFT OUTER JOIN (Select FormFactorInformationID, min(ID)ID from TestGrades GROUP BY FormFactorInformationID) tg ON (tg.FormFactorInformationId = ffi.Id)
    LEFT OUTER JOIN (Select TestGradesID, min(SAPGenericID)SAPGenericID from NewModels GROUP BY TestGradesID) nm ON (nm.TestGradesID = tg.ID)) nmwigen,
    -- Relational TestPasses data. Alias Table 'rtpd'
    (SELECT NPIProjectID,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| Contactor,';'),';')) Contactor,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| Handler,';'),';')) Handler,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| TesterConfig,';'),';')) TesterConfig,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| NumTestSites,';'),';')) NumTestSites,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| TestTemp,';'),';')) TestTemp,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| SpecialTest,';'),';')) SpecialTest,
    --(LTRIM(sys_connect_by_path(ProductGrade || '-'|| SpecialTestComments,';'),';')) SpecialTestCommByPassPerGrade,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| EstTestTimeGood,';'),';')) EstTestTimeGood,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| EstTestTimeBad,';'),';')) EstTestTimeBad,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| ActTestTimeGood,';'),';')) ActTestTimeGood,
    (LTRIM(sys_connect_by_path(ProductGrade || '-'|| ActTestTimeBad,';'),';')) ActTestTimeBad
    FROM (SELECT npip.id AS NPIProjectID, tg.ProductGrade AS ProductGrade, tp.contactor AS Contactor,
    tp.Handler AS Handler, tp.TesterConfig AS TesterConfig, tp.NumTestSites AS NumTestSites,
    tp.testtemp AS TestTemp, tp.SpecialTest AS SpecialTest, --tp.SpecialtestComment AS SpecialTestComments,
    tp.EstTestTimeGood AS EstTestTimeGood, tp.EstTestTimeBad AS EstTestTimeBad,
    tp.ActTestTimeGood AS ActTestTimeGood, tp.ActTestTimeBad AS ActTestTimeBad,
    row_number() OVER (PARTITION BY npip.id ORDER BY npip.id) rnum,
    COUNT(*) OVER (PARTITION BY npip.id) tot
    FROM NPIProjects npip LEFT OUTER JOIN FormFactorInformation ffi ON ffi.NPIProjectId = npip.Id
    LEFT OUTER JOIN TestGrades tg ON tg.FormFactorInformationId = ffi.Id
    LEFT OUTER JOIN TestPasses tp ON tp.TestGradesID = tg.Id)
    WHERE rnum=tot START WITH rnum =1 CONNECT BY PRIOR rnum = rnum-1 AND PRIOR NPIProjectID = NPIProjectID)rtpd,
    -- Relational WaferInformation data Alias Table 'rwid'
    (SELECT NPIProjectID,
    (LTRIM(sys_connect_by_path(WID,';'),';')) WID,
    (LTRIM(sys_connect_by_path(FabSite,';'),';')) FabSite,
    (LTRIM(sys_connect_by_path(WaferDesignType,';'),';')) WaferDesignType,
    (LTRIM(sys_connect_by_path(WaferSize,';'),';')) WaferSize,
    (LTRIM(sys_connect_by_path(FabProcessCode,';'),';')) FabProcessCode,
    (LTRIM(sys_connect_by_path(FabProcessStatus,';'),';')) FabProcessStatus,
    (LTRIM(sys_connect_by_path(FndryFabPlantCode,';'),';')) FndryFabPlantCode,
    (LTRIM(sys_connect_by_path(EstTapeOutDate,';'),';')) EstTapeOutDate,
    (LTRIM(sys_connect_by_path(EstXWidth,';'),';')) EstXWidth,
    (LTRIM(sys_connect_by_path(EstGDPW,';'),';')) EstGDPW,
    (LTRIM(sys_connect_by_path(EstYLength,';'),';')) EstYLength,
    (LTRIM(sys_connect_by_path(PowerDissipation,';'),';')) PowerDissipation,
    (LTRIM(sys_connect_by_path(XWidth,';'),';')) XWidth,
    (LTRIM(sys_connect_by_path(YLength,';'),';')) YLength,
    (LTRIM(sys_connect_by_path(OMSVendorName,';'),';')) OMSVendorName,
    (LTRIM(sys_connect_by_path(GDPW,';'),';')) GDPW,
    (LTRIM(sys_connect_by_path(IsReleaseOnPizzaMask,';'),';')) IsReleaseOnPizzaMask,
    (LTRIM(sys_connect_by_path(FabMfgReleaseReqStatus,';'),';')) FabMfgReleaseReqStatus,
    (LTRIM(sys_connect_by_path(FabMfgReleaseReqComments,';'),';')) FabMfgReleaseReqComments
    FROM (SELECT npip.id AS NPIProjectID, wi.WID AS WID, decode(npip.ProjectType, 'New Wafer', wi.FabSite, 'New Die', wi.FabSite, di.FabSite) AS FabSite, wi.WaferDesignType AS WaferDesignType,
    wi.WaferSize AS WaferSize, wi.FabProcessCode AS FabProcessCode, wi.FabProcessStatus AS FabProcessStatus,
    wi.FndryFabPlantCode AS FndryFabPlantCode, wi.EstTapeOutDate AS EstTapeOutDate, wi.EstXWidth AS EstXWidth,
    wi.ESTGDPW AS EstGDPW, wi.EstYLength AS EstYLength, wi.PowerDissipation AS PowerDissipation,
    wi.XWidth AS XWidth, wi.YLength AS YLength,
    wi.OMSVendorName AS OMSVendorName, wi.GDPW AS GDPW, wi.IsReleaseOnPizzaMask AS IsReleaseOnPizzaMask,
    wi.FabMfgReleaseReqStatus AS FabMfgReleaseReqStatus, wi.FabMfgReleaseReqComments AS FabMfgReleaseReqComments,
    row_number() OVER (PARTITION BY npip.id ORDER BY npip.id) rnum,
    COUNT(*) OVER (PARTITION BY npip.id) tot
    FROM NPIProjects npip LEFT OUTER JOIN DieInformation di ON di.NPIProjectId = npip.Id
    LEFT OUTER JOIN TrimProbeInformation tpi ON tpi.Id = di.TrimProbeInformation_id
    LEFT OUTER JOIN WaferInformation wi ON wi.WID = tpi.WaferInformation_id)
    WHERE rnum=tot START WITH rnum =1 CONNECT BY PRIOR rnum = rnum-1 AND PRIOR NPIProjectID = NPIProjectID)rwid,
    -- relational TrimProbeInformation Dataelements . Alias Table 'rtpid'
    (SELECT NPIProjectID,
    (LTRIM(sys_connect_by_path(ProbeSite,';'),';')) ProbeSite,
    (LTRIM(sys_connect_by_path(ProbeType,';'),';')) ProbeType,
    (LTRIM(sys_connect_by_path(DieDesignType,';'),';')) DieDesignType,
    (LTRIM(sys_connect_by_path(probemfgreleasereqstatus,';'),';')) probemfgreleasereqstatus,
    (LTRIM(sys_connect_by_path(probemfgreleasereqcomments,';'),';')) probemfgreleasereqcomments,
    (LTRIM(sys_connect_by_path(isvendorpartonwfrordsht,';'),';')) isvendorpartonwfrordsht
    FROM (SELECT npip.id AS NPIProjectID,tpi.ProbeSite AS ProbeSite, tpi.ProbeType AS ProbeType,
    tpi.DieDesignType AS DieDesignType, tpi.probemfgreleasereqstatus AS probemfgreleasereqstatus,
    tpi.probemfgreleasereqcomments AS probemfgreleasereqcomments,
    tpi.isvendorpartonwfrordsht AS isvendorpartonwfrordsht,
    row_number() OVER (PARTITION BY npip.id ORDER BY npip.id) rnum,
    COUNT(*) OVER (PARTITION BY npip.id) tot
    FROM NPIProjects npip LEFT OUTER JOIN WaferInformation wi ON wi.NPIProjectId = npip.Id
    LEFT OUTER JOIN TrimProbeInformation tpi ON tpi.waferinformation_id = wi.wid)
    WHERE rnum=tot START WITH rnum =1 CONNECT BY PRIOR rnum = rnum-1 AND PRIOR NPIProjectID = NPIProjectID)rtpid,
    -- Relational TrimProbeGrades Dataelements . Alias Table 'rtpgd'
    (SELECT NPIProjectID,
    (LTRIM(sys_connect_by_path(ProbeGrade,';'),';')) ProbeGrade,
    (LTRIM(sys_connect_by_path(ProbeGrade || '-'|| EstProbeYield1,';'),';')) EstProbeYield1,
    (LTRIM(sys_connect_by_path(ProbeGrade || '-'|| EstTotalProbeTimeGood,';'),';')) EstTotalProbeTimeGood,
    (LTRIM(sys_connect_by_path(ProbeGrade || '-'|| EstTotalProbeTimeBad,';'),';')) EstTotalProbeTimeBad,
    (LTRIM(sys_connect_by_path(ProbeGrade || '-'|| ActProbeYield,';'),';')) ActProbeYield,
    (LTRIM(sys_connect_by_path(ProbeGrade || '-'|| ActTotalProbeTimeGood,';'),';')) ActTotalProbeTimeGood,
    (LTRIM(sys_connect_by_path(ProbeGrade || '-'|| ActTotalProbeTimeBad,';'),';')) ActTotalProbeTimeBad
    FROM (SELECT npip.id AS NPIProjectID, tpg.ProbeGrade AS ProbeGrade, decode(tpg.EstProbeYield, null, tpg.EstProbeYield, tpg.EstProbeYield1) AS EstProbeYield1,
    tpg.EstTotalProbeTimeGood AS EstTotalProbeTimeGood, tpg.EstTotalProbeTimeBad AS EstTotalProbeTimeBad,
    tpg.ActProbeYield AS ActProbeYield, tpg.ActTotalProbeTimeGood AS ActTotalProbeTimeGood,
    tpg.ActTotalProbeTimeBad AS ActTotalProbeTimeBad,
    row_number() OVER (PARTITION BY npip.id ORDER BY npip.id) rnum,
    COUNT(*) OVER (PARTITION BY npip.id) tot
    FROM NPIProjects npip LEFT OUTER JOIN DieInformation di ON di.NPIProjectid = npip.id
    LEFT OUTER JOIN TrimProbeInformation tpi ON tpi.Id = di.TrimProbeInformation_id
    LEFT OUTER JOIN TrimProbeGrades tpg ON tpg.TrimProbeInformation_Id = tpi.Id)
    WHERE rnum=tot START WITH rnum =1 CONNECT BY PRIOR rnum = rnum-1 AND PRIOR NPIProjectID = NPIProjectID)rtpgd,
    -- Relational TrimProbePasses data. Alias Table 'rtppd'
    (SELECT NPIProjectID,
    (LTRIM(sys_connect_by_path(ProbeGrade || '-'|| TrimProbeSystem,';'),';')) TrimProbeSystem,
    (LTRIM(sys_connect_by_path(ProbeGrade || '-'|| NumProbeSites,';'),';')) NumProbeSites,
    (LTRIM(sys_connect_by_path(ProbeGrade || '-'|| ProbeTempReqd1,';'),';')) ProbeTempReqd1,
    (LTRIM(sys_connect_by_path(ProbeGrade || '-'|| ProbeTemp,';'),';')) ProbeTemp
    FROM (SELECT npip.id AS NPIProjectID, tpg.ProbeGrade AS ProbeGrade,
    tpp.TrimProbeSystem AS TrimProbeSystem, tpp.NumProbeSites AS NumProbeSites,
    decode(tpp.ProbeTempReqd, null, tpp.ProbeTempReqd1,tpp.ProbeTempReqd1) AS ProbeTempReqd1, tpp.ProbeTemp AS ProbeTemp,
    row_number() OVER (PARTITION BY npip.id ORDER BY npip.id) rnum,
    COUNT(*) OVER (PARTITION BY npip.id) tot
    FROM NPIProjects npip LEFT OUTER JOIN DieInformation di ON di.NPIProjectid = npip.id
    LEFT OUTER JOIN TrimProbeInformation tpi ON tpi.Id = di.TrimProbeInformation_id
    LEFT OUTER JOIN TrimProbeGrades tpg ON tpg.TrimProbeInformation_Id = tpi.Id
    LEFT OUTER JOIN TrimProbePasses tpp ON tpp.TrimProbeGrades_Id = tpg.Id)
    WHERE rnum=tot START WITH rnum =1 CONNECT BY PRIOR rnum = rnum-1 AND PRIOR NPIProjectID = NPIProjectID)rtppd
    WHERE nrtd.ID = rtpid.NPIProjectID
    AND rtpid.NPIProjectID = rtgd.NPIProjectID
    AND nrtd.ID = rtpd.NPIProjectID
    AND nrtd.ID = rnmd.NPIProjectID
    AND nrtd.ID = nmwigen.NPIProjectID
    AND rtgd.NPIProjectID = rwid.NPIProjectID
    AND nrtd.ID = rtpgd.NPIProjectID
    AND nrtd.ID = rtppd.NPIProjectID

    Two thoughts.
    1. ORA-00600 = open an SR at metalink
    2. Oracle 9i is in desupport so Oracle is going to suggest that you move this to a currently supported version: Especially if 9i means anything other than 9.2.0.8.
    Your query will likely be put to good use by Oracle showing how E-Business Suite is superior to SAP. <g>

  • ORA-01017: invalid username/password through dblink when select from view

    Hello all,
    I work on 2 databases :
    - One is a 10g (let's call it db_10 )
    - The second one is a 11g (let's call it db_11 )
    I created a view V_PROTOCOLES in schema SCHEMA_1 on db_11.
    The FROM clause of this view call 4 tables :
    - table1 : owner is SCHEMA_1
    - table2 : owner is SCHEMA_2 (schema on db_11 )
    - table3 : owner is SCHEMA_3 (schema on db_10 )
    - table4 : owner is SCHEMA_4 (schema on db_10 )
    When I simply run SELECT * FROM V_PROTOCOLES on db11 with user X, I can have a result.
    The problem occurs when I connect on db10 also with user X. The V_PROTOCOLES view has a public synonym using the dblink DBDOC_LINK (without explicitly specify a user, so it connects with the X user).
    But here I can't run the SELECT * FROM V_PROTOCOLES. I Have the following error :
    ORA-01017: invalid username/password; logon denied
    ORA-02063: preceding line from DBDOC_LINKThe passwords for user X are obviously the same on both 10g and 11g databases.
    Thanks for the help !

    On 10g :
    select password from dba_users where username = 'U872574';
    PASSWORD
    30811840BC618B77On 11g :
    select password from sys.user$ where name='U872574';
    PASSWORD
    30811840BC618B77I dropped and recreated the dblink but the problem always occurs...
    (By the way, curiously when I dropped the dblink I have no invalid objects although it is used in different packages or triggers)

  • Error when selecting from view created by OLAP_TABLE

    Hi all,
    I used OWB 10.2.0.4 to create a MOLAP datawarehouse.
    I created a view with this:
    CREATE OR REPLACE VIEW sales_view AS
    SELECT *
    FROM TABLE(OLAP_TABLE(
    'dw duration session',
    'MEASURE samt AS number(16,0) FROM SALES_SAMT
    DIMENSION cust_code AS varchar2(30) FROM cust
    DIMENSION prod_code AS varchar2(30) FROM prod
    DIMENSION sman_code AS varchar2(30) FROM sman
    DIMENSION time_id AS varchar2(30) FROM time
    DIMENSION orgn_code AS varchar2(30) FROM orgn'));
    and I try to run the following:
    select count(*) from sales_view;
    and I got the following error:
    Error starting at line 1 in command:
    select count(*) from sales_view
    Error report:
    SQL Error: ORA-29400: data cartridge error
    ORA-00600: internal error code, arguments: [xsvaluekeyget: type], [114], [], [], [], [], [], []
    29400. 00000 - "data cartridge error\n%s"
    *Cause:    An error has occurred in a data cartridge external procedure.
    This message will be followed by a second message giving
    more details about the data cartridge error.
    *Action:   See the data cartridge documentation
    for an explanation of the second error message.
    Can somebody give me some idea?
    Many thanks!
    - Andrew

    Brijesh,
    Really appreciate your help!
    With your hint (#2), I found my problems.
    I had 2 problems:
    1) I'm missing the 'Model' clause at the end of my view creation (in bold )
    2) I shouldn't do a count on all rows (e.g. I get result if I select with parameters)
    Here's my working view:
    CREATE OR REPLACE VIEW SALES_VIEW2
    AS
    SELECT * FROM TABLE(OLAP_TABLE(
    'DW DURATION SESSION',
    MEASURE SAMT FROM SALES_SAMT1
    DIMENSION PROD_CODE FROM PROD
    DIMENSION SMAN_CODE FROM SMAN
    DIMENSION TIME_CODE FROM TIME
    DIMENSION CUST_CODE FROM CUST
    DIMENSION ORGN_CODE FROM ORGN
    MODEL
    DIMENSION BY(PROD_CODE, CUST_CODE, SMAN_CODE, TIME_CODE, ORGN_CODE)
    MEASURES(SAMT)
    RULES UPDATE SEQUENTIAL ORDER();
    -----

  • Select from view -v- table

    Hi Guys,
    I was just hoping to get your opinion on something.
    I have a procedure in Production that is taking longer and longer to finish and sticks on one certain section of code.
    The code is an INSERT into the main dimension table.
    This same procedure runs fine on TEST and the section of code completes an awful lot quicker.
    The traffic on Production is a lot heavier and there have been applications developed by people other than myself which SELECT from this dimension table. I'm assuming, based on the fact the code in Test and Production are identical, that this increased traffic could be eating up the bandwith and slowing the jobs.
    So, I was thinking - if I create Views and let the other applications hit the views as opposed to the main table, will this help speed it up. I did this before on a Teradata platform using a 'dirty read' which worked quite well but Oracle doesn't seem to offer this option.
    What do you guys think? Could this work or do I need to take a different approach.
    Thank You.

    GerardMcL wrote:
    I meant ordinary views.
    I was wondering if there was a way of putting some locking code in or asking for a dirty read that would speed up the SELECT from the table?There is no such thing as a dirty read with Oracle -- Teradata, SQL Server, Sybase, IBM, etc., have different locking architectures where reads can block write and writes can block reads, and that is not an issue with Oracle.
    If there's a query performance problem, which is what that will be if the SELECTs are slow, then if you could follow the following links, that will help diagnosis immensely:
    [How to Post A Tuning Request|http://forums.oracle.com/forums/thread.jspa?threadID=863295&tstart=0]
    And:
    [When your Query takes too long|http://forums.oracle.com/forums/thread.jspa?messageID=1812597#1812597]
    There is such as thing as stale reads, against Materialized Views, which are views that actually materialize and store the results of a query, and which then can subsequently be queried.

  • Is select from view faster then select from table..???

    Hello Gurus,
    I want to query some data from two tables, both of table have many columns (attributes) and many rows...
    I use several where clauses to retrieve data from those tables..
    witch one is faster, I create a view or I just "select" from those tables???
    Regards.
    Nia...

    riedelme wrote:
    3360 wrote:
    riedelme wrote:
    Selecting through a view almost never helps performance and frequently hurts.Views do not affect performance.
    Views are simply queries and like queries there are fast and slow ones.I disagree.
    First of all, to use a view you are executing a query to get a result set, then accessing the data from that result set - a built-in extra step to perform to get data.First of all that entire explanation of how views work is not correct. The optimizer will rewrite the query to make the view go away if possible.
    SQL> create or replace view v as select * from dual;
    View created.
    SQL> explain plan for select * from dual where dummy = 'X';
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 272002086
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |      |     1 |     2 |     2   (0)| 00:00:01 |
    |*  1 |  TABLE ACCESS FULL| DUAL |     1 |     2 |     2   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       1 - filter("DUMMY"='X')
    13 rows selected.
    SQL> explain plan for select * from v where dummy = 'X';
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 272002086
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |      |     1 |     2 |     2   (0)| 00:00:01 |
    |*  1 |  TABLE ACCESS FULL| DUAL |     1 |     2 |     2   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       1 - filter("DUMMY"='X')
    13 rows selected.Exactly the same.
    >
    Second, when accessing the data from the view the result sets don't have indexes for fast lookups and efficient joins on later steps.This is also known as just making stuff up and is not how the database works. care to share any references at all for any of this?
    >
    Third, the systems I've seen that use views extensively - I am looking at one now - tend to perform joins on views using the same tables with the same data over and over. This is a design issue and not specifically a problem with views but they lend themselves to this misuse much too easilyCorrect as I said a view is just a query, and just like queries there are good fast views and bad slow views
    >
    I'll concede that the problem is not specifically with views themselves but as I just said they lend themselves to misuse. Tuning views of views and views joined to views is difficultYes, queries can be misused as can almost all SQL functions and functionality.
    As I said - Views are simply queries and like queries there are fast and slow ones.
    Nothing that you have posted that is accurate changes that.

  • Help: Selecting * from view takes minutes, query in view takes only seconds

    Hello,
    I have a view that i created that compiles ok and the query inside of the view only takes 2 seconds to return all the records. But if i try to select * from the view it takes 4-5 minutes to return the results. The explain plan is exactly the same, whether i select * from the view or run the query from within the view. Explain plan listed at bottom of post. Any ideas on where i might be going wrong? Thanks in advance.
    The below query returns ~400 rows. If i limit the rows returned to ~200 with this additional line at the very end:
    AND TEAM_CATEGORY LIKE '%FSM%'
    the query runs in just a few seconds. So the rows returned is not the problem here.
    Code:
    SELECT /*+ PUSH_PRED( TEAM ) */ NP.ID_NUMBER,
           NP.PROSPECT_ID,
           NP.PREF_MAIL_NAME PROSPECT,
           NP.OFFICER_RATING RATING,
           NP.EVALUATION_RATING EVALUATION,
           P.ASK_AMT NEXT_ASK,
           P.ANTICIPATED_AMT EXPECT,
           NP.STRATEGY_DESCRIPTION STRATEGY,
           E1.LAST_NAME PROSPECT_MGR,
           TEAM.TEAM_CATEGORY,
           CASE
             WHEN TOPA.SHORT_DESC <> ' ' THEN
              'X'
           END TOPA,
           E.PREF_MAIL_NAME SPOUSE_NAME,
           PR.PROSPECT_NAME_SORT SORT_NAME
      FROM ADVANCE_NU.NWU_PROSPECT NP,
           entity E,
           entity E1,
           assignment ASSI,
           prospect PR,
           (select p.proposal_id, p.prospect_id, p.ask_amt, p.anticipated_amt
              from proposal p
             where p.active_ind = 'Y'
               AND (p.stop_date IS NULL OR p.stop_date > sysdate)) P,
           (SELECT PC.PROSPECT_ID ID, TP.SHORT_DESC
              FROM PROSPECT_CATEGORY PC, TMS_PROSPECT_CATEGORY TP
             WHERE PC.PROSPECT_CATEGORY_CODE = TP.PROSPECT_CATEGORY_CODE
               AND pc.prospect_category_code = 'TOP') TOPS,
           (SELECT PC.PROSPECT_ID ID, TP.SHORT_DESC
              FROM PROSPECT_CATEGORY PC, TMS_PROSPECT_CATEGORY TP
             WHERE PC.PROSPECT_CATEGORY_CODE = TP.PROSPECT_CATEGORY_CODE
               AND pc.prospect_category_code = 'TFP') TOPA,
           (SELECT ID,
                   CASE WHEN count(TEAM_CAT) >= 1 THEN MAX(DECODE(CT, 1, TEAM_CAT)) ELSE ' ' END
                   || CASE WHEN count(TEAM_CAT) >= 2 THEN ', ' || MAX(DECODE(CT, 2, TEAM_CAT)) ELSE ' ' END
                   || CASE WHEN count(TEAM_CAT) >= 3 THEN ', ' || MAX(DECODE(CT, 3, TEAM_CAT)) ELSE ' ' END
                   || CASE WHEN count(TEAM_CAT) >= 4 THEN ', ' || MAX(DECODE(CT, 4, TEAM_CAT)) ELSE ' ' END
                   || CASE WHEN count(TEAM_CAT) >= 5 THEN ', ' || MAX(DECODE(CT, 5, TEAM_CAT)) ELSE ' ' END
                   || CASE WHEN count(TEAM_CAT) >= 6 THEN ', ' || MAX(DECODE(CT, 6, TEAM_CAT)) ELSE ' ' END
                   TEAM_CATEGORY
              FROM (SELECT PC.PROSPECT_ID ID,
                           ROW_NUMBER() OVER(PARTITION BY PC.PROSPECT_ID ORDER BY PC.PROSPECT_CATEGORY_CODE ASC) CT,
                           TP.SHORT_DESC TEAM_CAT
                      FROM PROSPECT_CATEGORY PC, TMS_PROSPECT_CATEGORY TP
                     WHERE PC.PROSPECT_CATEGORY_CODE = TP.PROSPECT_CATEGORY_CODE
                       AND PC.PROSPECT_CATEGORY_CODE NOT IN ('TOP', 'TFP'))
             GROUP BY ID) TEAM
    WHERE NP.PROSPECT_ID = P.PROSPECT_ID(+)
       AND NP.spouse_id = E.id_number(+)
       AND NP.prospect_id = PR.prospect_id
       AND NP.PROSPECT_ID = TOPS.ID
       AND NP.PROSPECT_ID = TEAM.ID(+)
       AND NP.prospect_id = TOPA.ID(+)
       AND NP.PROSPECT_ID = ASSI.PROSPECT_ID(+)
       AND ASSI.ASSIGNMENT_ID_NUMBER = E1.ID_NUMBER(+)
       AND ASSI.ASSIGNMENT_TYPE(+) = 'PM';Explain plan:
    SELECT STATEMENT, GOAL = CHOOSE                              346     1     369          346
    HASH JOIN OUTER                                   346     1     369          346
      HASH JOIN OUTER                                   332     1     330          332
       NESTED LOOPS OUTER                                   326     1     190          326
        NESTED LOOPS OUTER                                   325     1     171          325
         NESTED LOOPS OUTER                                   323     1     152          323
          NESTED LOOPS OUTER                              322     1     119          322
           NESTED LOOPS                                   320     1     90          320
            NESTED LOOPS                                   319     1     67          319
             NESTED LOOPS                                   319     484568     24712968          319
              INDEX UNIQUE SCAN     ADVANCE     ZZ_ADV_TABLE_KEY0          1     1     8          1
              TABLE ACCESS FULL     ADVANCE_NU     NWU_PROSPECT          318     484568     20836424          318
             TABLE ACCESS BY INDEX ROWID     ADVANCE     PROSPECT_CATEGORY     1     16          
              INDEX RANGE SCAN     ADVANCE     PROSPECT_CATEGORY_KEY2          1               
            TABLE ACCESS BY INDEX ROWID     ADVANCE     PROSPECT          1     1     23          1
             INDEX UNIQUE SCAN     ADVANCE     PROSPECT_KEY0               1               
           VIEW PUSHED PREDICATE     RPT_ACEPONIS                    2     1     29          
            NESTED LOOPS                                   2     1     40          2
             TABLE ACCESS BY INDEX ROWID     ADVANCE     ZZ_ADV_TABLE          2     1     24          2
              INDEX UNIQUE SCAN     ADVANCE     ZZ_ADV_TABLE_KEY0          1     1               1
             TABLE ACCESS BY INDEX ROWID     ADVANCE     PROSPECT_CATEGORY     1     16          
              INDEX RANGE SCAN     ADVANCE     PROSPECT_CATEGORY_KEY2          1               
          TABLE ACCESS BY INDEX ROWID     ADVANCE     ENTITY               1     1     33          1
           INDEX UNIQUE SCAN     ADVANCE     ENTITY_KEY0               1               
         TABLE ACCESS BY INDEX ROWID     ADVANCE     ASSIGNMENT          2     1     19          2
          INDEX RANGE SCAN     ADVANCE     ASSIGN_PROSPECT_KEY0               1     3               1
        TABLE ACCESS BY INDEX ROWID     ADVANCE     ENTITY                    1     1     19          1
         INDEX UNIQUE SCAN     ADVANCE     ENTITY_KEY0                    1               
       VIEW     RPT_ACEPONIS                                   5     1     140          
        SORT GROUP BY                                   5     1     48          5
         VIEW     RPT_ACEPONIS                              5     1     48          
          WINDOW SORT                                   5     1     40          5
           NESTED LOOPS                                   2     1     40          2
            TABLE ACCESS FULL     ADVANCE     PROSPECT_CATEGORY          2     1     16          2
            TABLE ACCESS BY INDEX ROWID     ADVANCE     ZZ_ADV_TABLE          1     24          
             INDEX UNIQUE SCAN     ADVANCE     ZZ_ADV_TABLE_KEY0          1               
      VIEW     RPT_ACEPONIS                                   13     170     6630          
       SORT UNIQUE                                        13     170     32980          7
        UNION-ALL                                   
         TABLE ACCESS FULL     ADVANCE     PROPOSAL                    3     125     24250          3
         TABLE ACCESS FULL     ADVANCE     PROPOSAL                    3     45     8730          3Message was edited by:
    user624909
    Message was edited by:
    user624909
    Message was edited by:
    AndyCep

    I'm no expert. Hopefully, someone else will chime in.
    A couple points though:
    1) (select p.*
    from proposal p
    where p.active_ind = 'Y'
    AND p.stop_date > sysdate
    union
    select p.*
    from proposal p
    where p.active_ind = 'Y'
    AND p.stop_date is null) P,
    is using UNION. It should probably be a UNION ALL, or even better:
    (select p.*
    from proposal p
    where p.active_ind = 'Y'
    AND (p.stop_date IS NULL OR p.stop_date > sysdate)
    2) select p.*
    Do not use * in a VIEW. In fact, never use it outside EXISTS, COUNT(*) and ad hoc queries.
    Use a COLUMN-list instead. Always use a COLUMN-list.
    3)
    The CASE statement has no ELSE, and is redundant.
         CASE
         WHEN count(TEAM_CAT) = 1 THEN MAX(DECODE(CT, 1, TEAM_CAT))
         WHEN count(TEAM_CAT) = 2 THEN MAX(DECODE(CT, 1, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 2, TEAM_CAT))
         WHEN count(TEAM_CAT) = 3 THEN MAX(DECODE(CT, 1, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 2, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 3, TEAM_CAT))
         WHEN count(TEAM_CAT) = 4 THEN MAX(DECODE(CT, 1, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 2, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 3, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 4, TEAM_CAT))
         WHEN count(TEAM_CAT) = 5 THEN MAX(DECODE(CT, 1, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 2, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 3, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 4, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 5, TEAM_CAT))
         WHEN count(TEAM_CAT) = 6 THEN MAX(DECODE(CT, 1, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 2, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 3, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 4, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 5, TEAM_CAT)) || ', ' || MAX(DECODE(CT, 6, TEAM_CAT))
         END TEAM_CATEGORY
    How about something like:
         CASE WHEN count(TEAM_CAT) >= 1 THEN MAX(DECODE(CT, 1, TEAM_CAT)) ELSE ' ' END
         || CASE WHEN count(TEAM_CAT) >= 2 THEN ', ' || MAX(DECODE(CT, 2, TEAM_CAT)) ELSE ' ' END
         || CASE WHEN count(TEAM_CAT) >= 3 THEN ', ' || MAX(DECODE(CT, 3, TEAM_CAT)) ELSE ' ' END
         || CASE WHEN count(TEAM_CAT) >= 4 THEN ', ' || MAX(DECODE(CT, 4, TEAM_CAT)) ELSE ' ' END
         || CASE WHEN count(TEAM_CAT) >= 5 THEN ', ' || MAX(DECODE(CT, 5, TEAM_CAT)) ELSE ' ' END
         || CASE WHEN count(TEAM_CAT) >= 6 THEN ', ' || MAX(DECODE(CT, 6, TEAM_CAT)) ELSE ' ' END
         TEAM_CATEGORY
    4) I have to ask. Have you run statistics lately?
    5) Did you really alias a TABLE as "***"? Please tell me that is a formatting error.
    6) Are you sure you need all those outer joins?

  • Can't select from view even though it appears in ALL_VIEWS

    Oracle's documentation states that all_views "describes the views accessible to the user":
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_2117.htm
    DBA_OBJECTS appears in the ALL_VIEWS, yet I get a "table or view does not exist" error when I try to select from it.
    Any thoughts on why this is happening?
    SQL> SELECT COUNT(1)
      FROM all_views
      WHERE owner = 'SYS'
      AND view_name = 'DBA_OBJECTS'
      COUNT(1)
             1
    1 row selected.
    SQL> SELECT *
      FROM sys.dba_objects
    SELECT *
      FROM sys.dba_objects
    Error at line 2
    ORA-00942: table or view does not exist

    That's not standard behaviour:
    DBA >create user u1 identified by u1;
    Utente creato.
    DBA >grant connect to u1;
    Concessione riuscita.
    DBA >conn u1/u1
    Connesso.
    DBA >select count(0) from all_views;
      COUNT(0)
           856
    DBA >select view_name from all_views
      2  where view_name like 'DBA%'
      3  or view_name like 'V$%';
    VIEW_NAME
    DBA_PROCEDURES
    DBA_PUBLISHED_COLUMNS
    V$OBJECT_USAGE
    DBA >select 'select count(*) from '||owner||'.'||view_name||';'
      2  from all_views
      3  where view_name like 'DBA%'
      4  or view_name like 'V$%';
    'SELECTCOUNT(*)FROM'||OWNER||'.'||VIEW_NAME||';'
    select count(*) from SYS.DBA_PROCEDURES;
    select count(*) from SYS.DBA_PUBLISHED_COLUMNS;
    select count(*) from SYS.V$OBJECT_USAGE;
    DBA >select count(*) from SYS.DBA_PROCEDURES;
      COUNT(*)
          6793
    DBA >select count(*) from SYS.DBA_PUBLISHED_COLUMNS;
      COUNT(*)
             0
    DBA >select count(*) from SYS.V$OBJECT_USAGE;
      COUNT(*)
             0All the DBA* or V$ visible are also accessible, DBA_OBJECTS is not present in ALL_VIEWS.
    There's something strange on your user's priviledges...
    Max
    [My Italian Oracle blog|http://oracleitalia.wordpress.com/2010/01/02/query-gerarchiche/]

  • Views - SELECT from VIEW and SELECT from the query inside view definition returning different results

    Hi,
    I am facing this weird issue. Any help would be appriciated.
    I have view with the following definition:
    CREATE VIEW [marketing].[OpenedMails]
    AS
    SELECT
    ID_EmailAddress, 
    ID_Date_Opened, 
    ID_Contact, 
    ID_MailSendJobs,
    COUNT(ID_OpenedMails) AS OpenCount,
    CASE
    WHEN ROW_NUMBER() OVER (PARTITION BY CAST(ID_EmailAddress AS VARCHAR(10)) + ' ' + CAST(ID_MailSendJobs AS VARCHAR(10)) ORDER BY ID_Date_Opened) = 1 THEN 1 
    ELSE 0 
    END
    AS UniqueOpenCount
    FROM            
    dbo.Fact_OpenedMails
    where ID_Contact = 382340
    GROUP BY ID_EmailAddress, ID_Date_Opened, ID_Contact, ID_MailSendJobs;
    order by ID_MailSendJobs 
    When I run the the select statement in the view definition I get combination of both 1 and 0 for the 'UniqueOpenCount' column.
    But when I run the select from the view itself using the following query:
    SELECT [ID_EmailAddress]
          ,[ID_Date_Opened]
          ,[ID_Contact]
          ,[ID_MailSendJobs]
          ,[OpenCount]
          ,[UniqueOpenCount]
      FROM [marketing].[OpenedMails]
    I get equal amount of rows but only 0 values for the 'UniqueOpenCount' column which seems to be very weird to me. Why is this happening ? Can anyone help regarding how to solve this ??
    Result from the select inside view definition:
    Result from the select query directly from the view:
    Thanks in advance.
    Vivek Kamath

    Please post DDL, so that people do not have to guess what the keys, constraints, Declarative Referential Integrity, data types, etc. in your schema are. Learn how to follow ISO-11179 data element naming conventions and formatting rules. You failed. Temporal
    data should use ISO-8601 formats – you failed again. Code should be in Standard SQL AS much AS possible and not local dialect. 
    This is minimal polite behavior on SQL forums. 
    Things like “ID_Date_Opened” are wrong. The affixes “id” and “date” are called attribute properties in ISO-11179 and data modeling. Since a date is a unit of measurement on a temporal scale, it cannot be an identifier by definition. My guess is this would be
    “open_date” if it were done right. And the only display format in ANSI/ISO Standard SQL is ISO-8601 (yyyy-mm-dd)
    An email address of -1?? Email addresses are VARCHAR(256), not numeric. There is no reason to cast them AS string!
    Your vague “mail_send_jobs” is plural, but columns hold scalars and cannot be plural by definition. The partition cause can hold a list of columns: 
    WHEN ROW_NUMBER() 
         OVER (PARTITION BY email_address, mail_send_job 
                   ORDER BY open_date)
         = 1 
    THEN 1 ELSE 0 END 
    This still makes no sense, but the syntax is better. You do not understand how ROW_NUMBER() works. 
    Would you like to try again with proper Netiquette? 
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • SQLite - select * from view

    Hello All,
    I'm completely new to this forum. I've got some pretty big tables and have created views to hold some predefined data in them.
    Now sqlite application I've used (Lita, SQLiteAdmin) does not see these views. Only from Firefox SQLiteManager add-on or the command line,  I can do a select * from my_view;
    Now when I try to query my view from Air, I receive the error #3115 table : my_view does not exist? Is there a litmitation in Air to be able to query ONLY tables?
    Thanks
    Jan

    There is no limitation against getting at view data using a select.  Here is an overly simple example using a synchronous connection:
    var conn:SQLConnection = new SQLConnection();
    conn.open(File.applicationStorageDirectory.resolvePath("test.db"));
    var sql:SQLStatement = new SQLStatement();
    sql.sqlConnection = conn;
    sql.text = "CREATE TABLE IF NOT EXISTS employees (id Integer, name String);";
    sql.execute();
    sql.text = "INSERT INTO employees VALUES (1, 'Sam');";
    sql.execute();
    sql.text = "INSERT INTO employees VALUES (2, 'Bob');";
    sql.execute();
    sql.text = "CREATE VIEW IF NOT EXISTS emp_view AS SELECT name FROM employees WHERE name LIKE 'B%';";
    sql.execute();
    sql.text = "SELECT * FROM emp_view;";
    sql.execute();
    trace(ObjectUtil.toString(sql.getResult().data));
    Which outputs:
    (Array)#0
      [0] (Object)#1
        name = "Bob"

  • Selecting from view

    Dear all,
    10.2.0.5 on Solaris 10. We created the below view in our enviornment
    CREATE  VIEW SAMPLE_TEST
    (PERSON_ANALYSIS_ID, VALUE, DESCRIPTION, N, N_1,
    N2, NY, Z_1, Z_2)
    AS
    (SELECT a.person_analysis_id,
              'Type-'
           || b.segment1
           || '|Date Of Issue-'
           || TO_CHAR (TO_DATE (b.segment6, 'YYYY/MM/DD HH24:MI:SS'),
                       'DD-MON-YYYY'
           || '|CCTR-'
           || SUBSTR (d.project_number, 1, 9)
           || '|Currency-'
           || b.segment5
           || '|Amount-'
           || b.segment4 VALUE,
              'Type-'
           || b.segment1
           || '|Date Of Issue-'
           || TO_CHAR (TO_DATE (b.segment6, 'YYYY/MM/DD HH24:MI:SS'),
                      'DD-MON-YYYY'
           || '|CCTR-'
           || SUBSTR (d.project_number, 1, 9)
           || '|Currency-'
           || b.segment5
           || '|Amount-'
           || b.segment4 description,
           NVL ('N', 'N') N , NVL (TO_NUMBER (NULL), -1) N_1, NULL N2, NVL ('Y', 'Y') NY,
           NVL (TO_CHAR (TO_DATE (NULL), 'J'), 0) Z_1,
           NVL (TO_CHAR (TO_DATE (NULL), 'J'), 0) Z_2
      FROM per_person_analyses a,
           per_analysis_criteria b,
           fnd_id_flex_structures c,
           kn_org_project_dtls_v d
    WHERE (    c.id_flex_structure_code = 'KN_IF_POSTED'
            AND c.id_flex_num = a.id_flex_num
            AND a.analysis_criteria_id = b.analysis_criteria_id
            AND TO_CHAR (d.org_project_id) = b.segment3
           ))When querying select * from sample_test , I can see all the data, where as when am passing any values like below,
    select * from TI_TEST_HR1 where description='TEST';
    am getting the below error :
    ORA-01861: literal does not match format stringThe same applicable for the column value also..
    Sample data of description
    Type-Revolving|Date Of Issue-26-NOV-2006|CCTR-001031200|Currency-USD|Amount-100.000
    Any idea ?

    TO_DATE (b.segment6, 'YYYY/MM/DD HH24:MI:SS'Maybe segment6 has some data you weren't expecting.

  • Select * from view gives ora-1467

    Create or replace view spec_temp_100474 as select spec_id,
    max(decode(atr_seq,101,spec_value,NULL))"101LocationId",
    max(decode(atr_seq,102,spec_value,NULL))"102OrganizationId",
    max(decode(atr_seq,103,spec_value,NULL))"103GeographyId",
    max(decode(atr_seq,104,spec_value,NULL))"104CreatedBy",
    max(decode(atr_seq,105,spec_value,NULL))"105ModifiedBy",
    max(decode(atr_seq,106,spec_value,NULL))"106CreatedTime",
    max(decode(atr_seq,107,spec_value,NULL))"107ModifiedTime",
    max(decode(atr_seq,108,spec_value,NULL))"108Type",
    max(decode(atr_seq,109,spec_value,NULL))"109Parent",
    max(decode(atr_seq,110,spec_value,NULL))"110LocationName",
    max(decode(atr_seq,111,spec_value,NULL))"111OrgName",
    max(decode(atr_seq,112,spec_value,NULL))"112GeographyName",
    max(decode(atr_seq,2,spec_value,NULL))"2Last Name",
    max(decode(atr_seq,3,spec_value,NULL))"3Type",
    max(decode(atr_seq,4,spec_value,NULL))"4Description",
    max(decode(atr_seq,5,spec_value,NULL))"5User Account",
    max(decode(atr_seq,6,spec_value,NULL))"6Password",
    max(decode(atr_seq,7,spec_value,NULL))"7User Type",
    max(decode(atr_seq,8,spec_value,NULL))"8Service Only"
    from ibs_spec_value where spec_template_id = 100474
    group by spec_id
    select * from spec_temp_100474 --- results in ora-1467 sort key too long.
    db_block_size for the database is 8k.
    Thanks,
    Avanti.

    Cause: A DISTINCT, GROUP BY, ORDER BY, or SET operation requires a sort
    key longer than that supported by Oracle. Either too many columns or too
    many group functions were specified in the SELECT statement.
    Action: Reduce the number of columns or group functions involved in the
    operation.

  • JDBC Problem: "select * from NAMES for update of FIRSTNAME"

    I am using Oracle 8 and JDBC thin driver. Is there any reason
    why when I try to use the statement:
    "select * from NAMES for update of FIRSTNAME"
    it does NOT work in JDBC?
    However when I do the statement in SQL-Plus it works fine.
    If anyone has used this statement with success, please let me
    know that it actually works, so that I know there is something
    wrong with me!
    Any code snippets would be very helpful.
    Could it be the thin driver?
    Please help! Thanks in advance.
    null

    Thomas Gutzmann (guest) wrote:
    : James,
    : for this command you need transactional control, which is not
    : possible with JDBC - if I'm not wrong. You can circumvent it
    with
    : something like:
    : select x into vOld from t where id=4711;
    : vNew := 0.815;
    : update t set x = vNew where id = 4711 and x = vOld;
    : Another option would be to write a stored PL/SQL procedure that
    : runs the whole transaction.
    : Cheers
    : Thomas
    : James Ward (guest) wrote:
    : : I am using Oracle 8 and JDBC thin driver. Is there any
    reason
    : : why when I try to use the statement:
    : : "select * from NAMES for update of FIRSTNAME"
    : : it does NOT work in JDBC?
    : : However when I do the statement in SQL-Plus it works fine.
    : : If anyone has used this statement with success, please let me
    : : know that it actually works, so that I know there is
    something
    : : wrong with me!
    : : Any code snippets would be very helpful.
    : : Could it be the thin driver?
    : : Please help! Thanks in advance.
    I don't think this is correct. I have used select for update
    with no problems. you can send a "set transaction control"
    via sql, I believe, but you shouldn't need to do so...
    Maureen
    null

Maybe you are looking for

  • How do i get air play to work from my macbook to apple tv

    How do i get air play to work from my macbook to apple tv? It does work with some programs like itunes but I can't get it to work with safari.

  • IPod not shown in ITunes, PC, or Explorer

    My daughter has a first generation Ipod Nano. It's always worked fine, at least up until she installed Itunes 7. Now, nothing seems to work. The Ipod is not shown in ITunes, on our computer, in device manager, in Windows explorer, etc. We have tried

  • Problem running reports to network printer

    Application Server Enterprise Edition 10g (9.0.4.1) Customer is having some difficulty printing reports to printers attached to client PCs and shared on the network. Occasionally, when a report is requested by the application with DESTYPE=PRINTER, DE

  • How to clear costum container editor

    CREATE OBJECT: container EXPORTING container_name = 'EDIT',                   editor    EXPORTING parent = container,                   handle. CALL METHOD editor->set_text_as_stream EXPORTING text = GT_LINE. When iam calling method with exporting GT

  • Problem with ringtone downloads

    Hi, I purchased a ringtone from the store last night (for the iPhone 4s) but it's still showing up on the downloads page as 'waiting'. It's been over 12 hrs now, I've tried downloading again but that hasn't worked & if there's a way to cancel it I ca