Generate ANSI SQL with Oracle IKM

Is it possible for ODI to generate ANSI SQL with the Oracle IKM?
I have used ANSI joins in a filter in an interface, now when I run the interface I get the error: ORA-25156: old style outer join (+) cannot be used with ANSI joins.
I would prefer to use ANSI joins in my filters instead of the old style (+) syntax. Is this possible?

Sure,
Go to topology, edit your Oracle technology , on SQL tab change it over to ordered joins - clause location - From , you can specify the keywords left join, right join, full outer join etc to get rid of your '(+)'

Similar Messages

  • What is Difference between ANSI SQL and ORACLE SQL

    Hi,
    I am going to take the assesment test for ANSI SQL Programming before that i want to know any difference between ANSI SQL and ORACLE SQL?
    I am studying for SQL but the test will be ANSI SQL please let me give an idea about the both.
    Thanks
    Merina Roslin

    Basically there is syntax difference between both of them.
    Lets say i want to join two table EMP and DEPT based on DEPTNO.
    With Oracle SQL format its like this.
    select e.*
      from emp e, dept d
    where e.deptno = d.deptnoHere the joining condition goes in the WHERE clause.
    With ANSI SQL format its like this.
    select e.*
      from emp e
      join dept d
        on e.deptno = d.deptnoHere the join condition is mentioned separately and not in WHERE clause.
    Oracle supports ANSI SQL starting from 9i version.
    You can read more about the syntax difference Here

  • Help on - convert ansi sql to oracle sql

    hi gurus,
    i'm try'g to convert ansi sql to oracle sql.
    but i'm getting an error. can u please let me know, if i can convert it or is it better to use ansi sql!
    original code in ansi format::
    select distinct bfc.NBR_SEQ, bfc.IDN_ENTITY, bfc.CDE_TYPE_ENTITY, n.CDE_STATUS,
             gec.idn_group as idn_parent_id, bfc.IDN_FUNC_BUSS,
             case when bfc.CDE_TYPE_ENTITY = 'P'  OR bfc.CDE_TYPE_ENTITY = 'A' then
                PKG_FW_NVGTR.GET_NAM_PAGE(bfc.IDN_ENTITY)
              else
                PKG_FW_NVGTR.GET_NAM_GROUP(bfc.IDN_ENTITY)
             end as ENTITY_NAM,
             p.Category, p.Display_Txt, p.show_in_nav, p.page_uri
      from
        T_BUSS_FUNC_ENTITY_CREF bfc
        inner join t_buss_func bf on bfc.idn_func_buss = bf.idn_func_buss
        inner join t_entity_prog_cref epc on bfc.idn_entity = epc.idn_entity and bfc.cde_type_entity = epc.cde_type_entity
        left outer join t_page p on bfc.idn_entity = p.idn_page
        left outer join t_group_entity_cref gec on bfc.idn_entity = gec.idn_entity and bfc.cde_type_entity = gec.cde_type_entity
        left outer join t_nvgtr n on bfc.idn_entity = n.idn_entity and bfc.cde_type_entity = n.cde_type_entity
      where
        BF.nam_func_buss = 'CP' AND--P_NAM_FUNC_BUSS and
        epc.cde_program in
          ( select p.cde_program from t_program p where p.nam_program in (
              SELECT * FROM TABLE (CAST(PKG_FW_NVGTR.FN_GET_ARRAY_FROM_COMMA_LIST('LC', ',') AS TYP_ARRAY))))
      order by
        bfc.NBR_SEQ;tried to convert into oracle
    SELECT DISTINCT bfc.NBR_SEQ,
                 bfc.IDN_ENTITY,
                 bfc.CDE_TYPE_ENTITY,
                 n.CDE_STATUS,
                 gec.idn_group as idn_parent_id,
                 bfc.IDN_FUNC_BUSS,
                 case when bfc.CDE_TYPE_ENTITY = 'P'  OR bfc.CDE_TYPE_ENTITY = 'A' then
                             PKG_FW_NVGTR.GET_NAM_PAGE(bfc.IDN_ENTITY)
                           else
                             PKG_FW_NVGTR.GET_NAM_GROUP(bfc.IDN_ENTITY)
                 end as ENTITY_NAM,
                 p.Category,
                 p.Display_Txt,
                 p.show_in_nav,
                 p.page_uri
    FROM    T_BUSS_FUNC_ENTITY_CREF bfc,
                 T_BUSS_FUNC bf,
                 T_ENTITY_PROG_CREF epc,
                 T_PAGE p,
                 T_GROUP_ENTITY_CREF gec,
                 T_NVGTR n
    WHERE bfc.IDN_FUNC_BUSS = bf.IDN_FUNC_BUSS
    AND bfc.IDN_ENTITY = epc.IDN_ENTITY
    AND bfc.CDE_TYPE_ENTITY = epc.CDE_TYPE_ENTITY
    AND bfc.IDN_ENTITY(+) = p.IDN_PAGE
    AND bfc.IDN_ENTITY(+) = gec.IDN_ENTITY
    AND bfc.CDE_TYPE_ENTITY(+) = gec.CDE_TYPE_ENTITY
    AND bfc.IDN_ENTITY(+) = n.IDN_ENTITY
    AND bfc.CDE_TYPE_ENTITY(+) = n.CDE_TYPE_ENTITY
    AND BF.nam_func_buss = 'CP' AND--P_NAM_FUNC_BUSS and
        epc.cde_program in
          ( select p.cde_program from t_program p where p.nam_program in (
              SELECT * FROM TABLE (CAST(PKG_FW_NVGTR.FN_GET_ARRAY_FROM_COMMA_LIST('LC', ',') AS TYP_ARRAY))))
                   order by
                     bfc.NBR_SEQ;error is
    ORA-01417: a table may be outer joined to at most one other tableso how can i convert it?
    thanks

    user642856 wrote:
    explain plan for this select statement
    ID         PID       Operation                                                                                  Name                                                                Rows    Bytes    Cost     CPU Cost          IO Cost Temp space      IN-OUT  PQ Dist PStart   PStop
    0                      SELECT STATEMENT                                                                                                                                       10M                  1183M  570694 33G      567917                                                  
    1          0            SORT UNIQUE                                                                                                                                                            10M                  1183M  287940 17G      286502 2607M                                      
    2          1              HASH JOIN                                                                                                                                                   10M                  1216M  179       1G        84                                                          
    3          2                COLLECTION ITERATOR PICKLER FETCH   PKG_FW_NVGTR.FN_GET_ARRAY_FROM_COMMA_LIST                                                                                                                         
    4          2                HASH JOIN OUTER                                                                                                                         2693             299K     58         34M      55                                                          
    5          4                  HASH JOIN OUTER                                                                                                                                   37                     3959     11         24M      9                                                           
    6          5                    HASH JOIN OUTER                                                                                                                     37                         3663     10         18M      8                                                           
    7          6                      HASH JOIN                                                                                                                               37                         1147     7          12M      6                                                           
    8          7                        HASH JOIN                                                                                                                             59                         1180     5          6060823            4                                                           
    9          8                          NESTED LOOPS                                                                                                       2                      24                     3          15843   3                                                           
    10         9                            TABLE ACCESS BY INDEX ROWID  T_BUSS_FUNC             1                      6                      1             8341     1                                                           
    11         10                             INDEX UNIQUE SCAN                                UK_NAM_FUNC_BUSS 1                       0                      1050     0                                                           
    12         9                            TABLE ACCESS FULL                                             T_PROGRAM                2                      12             2          7501     2                                                           
    13         8                          INDEX FULL SCAN                            PK_T_ENTITY_PROG_CREF      59                     472       1             18921   1                                                           
    14         7                        TABLE ACCESS FULL                         T_BUSS_FUNC_ENTITY_CREF  37                     407       2             14891   2                                                           
    15         6                      TABLE ACCESS FULL                           T_PAGE                                                           26                     1768     2          14141   2                                                           
    16         5                    INDEX FULL SCAN                                              UK_UNIQUE_GROUP_DEPENDENT 26              208             1          12321   1                                                           
    17         4                  TABLE ACCESS FULL                                           T_NVGTR                                                          6986             47K      46         3179613            46                                                           as you can see.. cpu cost is in 33G..
    is there any better way?
    thanksCan you run this in a session please:
    ALTER SESSION set optimizer_dynamic_sampling = 4;Then run an explain plan again.
    And you have a function in there - PKG_FW_NVGTR.FN_GET_ARRAY_FROM_COMMA_LIST - which isn't helping things.

  • How to generate ANSI SQL syntax mapping

    I am not able to force OWB to generate ANSI SQL syntax mapping.
    In mapping configuration I have checked "ANSI SQL syntax" On, "Operating mode" is "Set based fail over to row based", "Optimize code" is On.
    "PLSQL generation mode" is set to 10gR2.
    OWB 10.2.0.4.36, OraDB 10.2.0.4.0

    Oracle SQL is based on ANSI sql 92 standards. But not possible to generate queries in ansi sql 92 format?

  • Differences between ANSI SQL and Oracle 8/9

    Hallo,
    i'm looking for good online texts or books concerning the problem "Differences between ANSI SQL and different database implementations (ORACLE, Informix, MySQL...)" I want to check a program written in C (with ESQL) that works with an Informix-DB. In this code i want to find code that is specific to the Informix-DB. I want to change the database, so all the code should be independent from a DB. Does anybody know texts or books concerning this problem?
    thx
    Marco Seum

    Basically there is syntax difference between both of them.
    Lets say i want to join two table EMP and DEPT based on DEPTNO.
    With Oracle SQL format its like this.
    select e.*
      from emp e, dept d
    where e.deptno = d.deptnoHere the joining condition goes in the WHERE clause.
    With ANSI SQL format its like this.
    select e.*
      from emp e
      join dept d
        on e.deptno = d.deptnoHere the join condition is mentioned separately and not in WHERE clause.
    Oracle supports ANSI SQL starting from 9i version.
    You can read more about the syntax difference Here

  • ANSI SQL to Oracle Old SQL conversion

    I need help to convert this ANSI SQL Query to Oracle Old school (With inline views and =(+) joins and where clasuses)
    CUrrent Query and new one should return same resultset
    ---------------------------------Query Start----------------------------------------------------
    SELECT COUNT(*)
    FROM
    SELECT
    'XXXXXX' as Big_Boss,
    da.Direct,
    da.Director,
    da.Manager,
    da.SubArea,
    da.Project,
    da.Project_Name,
    da.Project_Class,
    da.HISL,
    da.Resource_Name,
    da.Resource_Status,
    da.mon,
    to_char(sysdate, 'dd-Mon-YYYY') AS "Current_Date",
    DECODE(da.Project, NULL, 0, round(da.Slice / da.month_total, 2)) as
    "Approved_Demand",
    SUM(da.Availability) as "Headcount"
    FROM
    SELECT
    w.level4_name AS Direct,
    w.level5_name AS Director,
    w.level6_name AS Manager,
    w.level7_name AS SubArea,
    INV.Code as Project,
    inv.name as Project_Name,
    det.hum_project_gate as Project_Class,
    r.id AS HISL,
    r.full_name as Resource_Name,
    lookup.lookup_code as Resource_Status,
    alc.slice AS Slice,
    alc.slice_date as Mon,
    avl.slice AS month_total,
    alc.slice / avl.slice as FTE,
    count(distinct r.id) AS Availability
    FROM
    nbi_dim_obs w,
    prj_blb_slices_m_avl avl,
    prj_obs_units obs,
    cmn_lookups lookup,
    srm_resources r
    **************   Section to be Converted   ***************************----------
    ----------------------------Start----------------------------------------------------
    left outer join(prj_resources t inner join srm_resources res on
    t.prprimaryroleid = res.id) on r.id = t.prid
    left outer join(prj_blb_slices_m_alc alc
    left outer join(prteam tm
    inner join(inv_investments INV inner join odf_ca_project det on det.id = inv.id
    and det.hum_project_gate = 'approved_for_development') on tm.prprojectid = INV.ID
    and INV.Is_Active = 1) on alc.prj_object_id = tm.prid
    and alc.investment_id = inv.id) on alc.resource_id = t.prid
    --------------------------------------End--------------------------------------------
    -- inner join prj_blb_slices_m_avl avl on alc.resource_id = avl.prj_object_id
    -- inner join prj_obs_units obs on res.unique_name = obs.unique_name
    -- inner join nbi_dim_obs w on w.level7_unit_id = obs.id
    WHERE
    w.obs_type_name = 'Workgroup'
    AND alc.slice > 0
    AND alc.slice_date = avl.slice_date
    AND r.is_active = 1
    AND r.person_type = lookup.id
    AND w.level7_unit_id = obs.id
    AND alc.resource_id = avl.prj_object_id
    AND res.unique_name = obs.unique_name
    GROUP BY
    w.level4_name
    , w.level5_name
    , w.level6_name
    , w.level7_name
    , r.id
    , r.full_name
    , lookup.lookup_code
    , inv.code
    , inv.NAME
    , det.hum_project_gate
    , alc.slice_date
    , alc.slice
    , avl.slice
    ) DA
    GROUP BY
    da.direct
    , da.director
    , da.manager
    , da.subarea
    , da.project_class
    , da.hisl
    , da.resource_name
    , da.resource_status
    , da.project
    , da.Project_Name
    , da.mon
    , da.availability
    , da.slice
    , da.month_total
    ORDER BY
    da.direct
    , da.director
    , da.manager
    , da.subarea
    -------------------------------Query End----------------------------------------------------------

    Joins are joins ... what do you mean by "nested" joins?
    If you are concerned about outer joins that can be performed using ANSI syntax that are not supported in the classic Oracle syntax then use in-line view and outer join the views.
    If your code was properly formatted it would be possible for someone to read it and possibly see what you are seeing.
    Read the FAQ page and learn to format your posted code.

  • ORA-06502: PL/SQL with Oracle XE (not with sqldeveloper)

    I have this error message with Oracle XE whereas I have no message at all with the same request if I use sqldeveloper.
    It seems that the error happens when there is too many information returned by the request. If I add a "where" to select less rows, I don't have the error anymore.
    Do you know how I can solve this problem?
    Thanks in advance for your answers.
    Richard

    The problem is happening again.
    When it happens, if I quit and I start again Oracle XE, the problem does not happen at first, but happens again after a while (the duration before the error is not always the same). If I increase the number of lines that are printed for the result of a request, I can induce the error; if I decrease the number of lines, the error is not happening.
    Here is one of the request (that request returns about 5000 rows) that cause the error, and the complete error message:
    ORA-06502: PL/SQL : erreur numérique ou erreur sur une valeur: tampon de
    chaîne de caractères trop petit
    Translation: buffer for the strings is too small.
    select code_pers, nom, prenom, titre, sexe,
    date_naissance, pays_nationalite.code_pays_iso,
    fonction_institution, code_institution,
    complement_adresse_institution, complement_tel_institution,
    adresse1_perso_debut, adresse2_perso_rue, adresse3_perso_zip_ville,
    pays_adresse.code_pays_iso,
    tel_perso, email, site_web, fax,
    lower(substr(langue_courrier, 1, 2)),
    case
    when (adresse_courrier_preferee = 'P') then 'p'
    when (adresse_courrier_preferee = 'I') then 'i'
    else null
    end,
    contact_rapide, discipline,
    case
    when (voeux = 'Vrai') then 'o'
    when (voeux = 'Faux') then 'n'
    else null
    end,
    nb_plaquettes, nb_affiches, date_modif
    from personne2 join pays2 pays_nationalite
    on personne2.nationalite = pays_nationalite.NOM_PAYS
    join pays2 pays_adresse
    on personne2.pays_perso = pays_adresse.NOM_PAYS

  • GRANT WITH Oracle IKM

    Hi,
    I am developing a datwarehouse with ODI. I have created three database schema:
    STG - staging area,
    TGT - star schema aera,
    DM - datamart area.
    I have trouble in setting up the grants between the three users.
    In particular I can't grant the views that ODI creates at runtime (c$_0<table_name>) and as such my ETL doesn't work! I am using Oracle IKM module and this is what happens:
    Create view on source: ok
    Create synonym on target: ok
    insert : insufficient priviledge because target has not the grant on the view.
    Thanks to anyone who can help,
    Marco.

    Hi Marco,
    You can prevent these temp table from being destroyed at runtime.
    Open your Interface, goto the 'Flow'-tab. Select your IKM. Here, in the properties of your IKM, set the option DELETE_TEMPORARY_OBJECTS to 'No'.
    Now, your temp-objects are not deleted.
    Note; when you make changes to your datasource that is loaded by this Interface (let's say, you add a column), these changes are not reflected in this temporary table, so you have to delete this temp-object and let ODI create it again for you.
    Regards, Steffen

  • PL/SQL with oracle 8i lite

    Could any of you folks please let me know if i can work with pl/sql commands on oracle 8i lite and if not then is there any other ways so as to, i can work on triggers, procedures and access the pre-defined tables.
    reply to the above would be much apprecaited.
    cheers
    Rodeo

    as you exprimented triggers & procedures, Expriment PL/SQL also

  • Generating PL/SQL with invoker's rights?

    When will this functionality be available in Designer? We are currently running Designer 10g (9.0.4.3.14) and this functionality is not supported yet.
    We would very much like to be able to generate packages with "AUTHID CURRENT_USER" from the server model.
    There is a forum in which the following is stated: " The BUG 884671 - PROCEDURE/FUNCTION NEEDS INVOKER RIGHTS (AUTHID)
    is not yet fixed. Please follow the bug from Metalink."
    Bug 884671 does not exist or is not viewable by ordinary MetaLink users like me.
    Regards Thomas Kirchhoff

    Thomas,
    We have no plans to add this functionality to Designer. Please read the latest Tools Statement of Direction on the Designer pages on OTN (http://otn.oracle.com/products/designer/index.html) There is also a Designer maintenance release cycle document which details our plans for Designer and a related FAQ.
    Regards
    Sue Harper
    Designer Product Management

  • Debugging a PL/SQL with Oracle SQL Developer

    I am trying to debug pl in Oracle SQL Developer, have looked in
    http://www.oracle.com/technology/obe/11gr2_db_prod/appdev/sqldev/plsql_debug/plsql_debug_otn.htm#t5
    and there are not enabled the options "Data", "Smart Data", etc someone knows why?
    thank you.

    In the log windows, when debug, show tihis:
    Conectando a la base de datos OPAVID - Inventariado.
    Ejecutando PL/SQL: ALTER SESSION SET PLSQL_DEBUG=TRUE
    Ejecutando PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( '10.240.193.202', '2310' )
    Later, 1 min.
    show this
    ORA-30683: failure establishing connection to debugger
    ORA-12535: TNS:operation timed out
    ORA-06512: at "SYS.DBMS_DEBUG_JDWP", line 68
    ORA-06512: at line 1
    El proceso ha terminado.
    Desconectando de la base de datos OPAVID - Inventariado.
    so, do you think, the problem is a firewal, i can´t verify this.

  • Generating wsdl:fault with Oracle Web Services

    What conditions are required to have Oracle Web Services throw a defined wsdl:fault over a soap:fault? Is there documentation on how to map these correctly from your java code? I can't seem to find anything in the documenation that discusses this and when using the WebServiceAssembler to generate WSDLs including an exception in a method signature does nothing to generate a wsdl section in the generated portType.
    Any pointers are appreciated.

    Hi,
    If a method throws Exceptions that are not instances / subclasses of java.rmi.RemoteException, then it's not a SOAP Fault, but a wsdl:fault. This is the manner in which JAX-RPC handles the Exceptions.
    Regards,
    Sandeep

  • Using arguments to invoke an excel method from PL/SQL with Oracle COM

    Hello Gentlemen,
    I has been trying to export an excel sheet to a PDF file format using “ExportAsFixedFormat” method, with no success or error message.
    Moreover, I tried to use “PrintOut” method, if I use it with no parameters/arguments it executed without errors and display the sheet to an application installed in my PC (“SnagIt”), if I try to use it with an argument to assign a printer for it, I got this error message “PrintOut method of Workbook class failed xlmain11.chm”.
    I believe I have a problem with using arguments, and I don’t know how to use it in a proper way; the code I used is listed below for your review and your kind help, thank you a lot, and I appreciate so much your helpful feedback.
    Best regards,
    Nabil
    List 01 – using “ExportAsFixedFormat” method
    ==============================
    ORDCOM.InitArg();
    ORDCOM.SetArg('xlTypePDF','XlFixedFormatType');
    ORDCOM.SetArg('E:\ TestDelete.pdf','BSTR');
    ORDCOM.SetArg('xlQualityStandard','BSTR');
    ORDCOM.SetArg('True','BOOL');
    ORDCOM.SetArg('False','BOOL');
    ORDCOM.SetArg('True','BOOL');
    dbms_output.put_line('WorkSheetToken................WorkBookToken........'||WorkBookToken);
    i := ORDCOM.Invoke(WorkBookToken, 'ExportAsFixedFormat', 6, DummyToken);
    List 02 – using “PrintOut” method:
    ======================
    ActivePrinter := 'Macromedia FlashPaper';
    ORDCOM.InitArg();
    ORDCOM.SetArg(activeprinter,'BSTR');
    i := ORDCOM.Invoke(WorkBookToken, 'PrintOut', 1, DummyToken);

    Hello,
    Any help please? I believe I have a problem with using arguments, and I don’t know how to use it in a proper way; the code I used is listed above for your review and your kind help, thank you a lot, and I appreciate so much your helpful feedback.
    Best regards,
    Nabil

  • Urgent - Is it possible with Oracle Reports

    Hi Friends,
    I want to generate a report with multiple databases.
    I have some part of data in oracle data base and some in sql server.
    How can I generate a report with oracle data and sql server data at a time ?
    How can I connect to both the dB's simultaneously ?
    Is it possible with oracle reports ?
    If not what is the other tool in oracle products ?
    thanks for your help.
    Have a good day.
    srini

    You should use a dblink or the heterogenous connection

  • Generation of pdf forms with Oracle Report

    I would like to generate editable pdf with Oracle Reports. That means I need clickable check boxes in the output.
    Any suggestions or hints?
    Thanks in advance.
    Uwe

    Hi Uwe
    Reports does not currently have the capability to create PDF files with form fields.
    Regards
    The Oracle Reports Team

Maybe you are looking for

  • How to get  the actual data in ALV report

    I am doing some upgradation work   in that i am using Submit  & And return and  also i am using some function modules like LIST FROM MEMORY , LIST TO TXT wnd WRITE LIST , it gives output in normal list format , But i need to print in ALV report . Wit

  • FCP HDSR Online Workflow

    I'm editing a 35mm (2 Perf) feature in FCP using a DVCam offline standard workflow. We will eventually online to HDSR which will then be used to conform the film for film-out. My question... It is very expensive to have the post place to the HDSR onl

  • Only 2 of my PXI modules are found by Visa Interactive Control

    I can see 14 PXI devices in NI-MAX but only two are found by VISA Interactive Control. Solved! Go to Solution.

  • Why to use SQL Server's native backup facilities, not other backup solution?

    I've been asked in my company: why to use SQL Server's native backup facilities? Instead, they currently rely on other backup software, like Backup Exec, BrightStor, or even Microsoft System Center Data Protection Manager. Those solutions let the com

  • Strange icon for Dock into Preferences

    Hi, I just have noticed that I have a very strange icon into the System Preferences for the Dock preferences. Is there a way to restore the correct one ? Thx, Fabrice PS: is there a way to include a screen shot inn this forum? MacBook Pro 2.0 / 1Gb /