How do I use XML to perform DML Operations against 8i DBs?

Please point me in the direction to get started. I am not sure if I need XML DB (9i R2 only ?), XSQL, XDK or what.
I would like to be able to deconstruct existing applications (mostly PL/SQL) into a series of XML docs that when 'pieced' together could behave as a set of transactions. Where I am heading is toward making existing apps Web Services enabled. I would like to be able to use existing tables in my schemas.
What advice can you give me in terms of getting started and selecting the 'right' approach? I assume there are trade offs between 8i and 9i DBs.
Jesse Johnson

You may pass an XML Document as a parameter to a Java file that makes use of XSU classes like OracleXMLSave and there are methods available in OracleXMLSave like insertXML() method that takes care of the dml part.
Go through the examples listed below.
Program Listing 1 : This program will insert a record into the emp table. This program takes an xml file as an input , translates the content into an insert statement and inserts and commits the data into the database. An example of the xml file is also enclosed.
import java.sql.*;
import java.net.*;
import oracle.xml.sql.dml.OracleXMLSave;
public class Insertfromfile {
     public static void main(String argv[])
          throws SQLException {
          Connection cn = ConnectionHelper.getConnection();
          OracleXMLSave sav = new OracleXMLSave(cn, "scott.emp");
          URL url = sav.createURL(argv[0]);
          sav.insertXML(url );
          cn.close();
          System.out.println("Done ....!");
XML File shown below.
<?xml version = '1.0'?>
<ROWSET>
<ROW num="1">
<EMPNO>1238</EMPNO>
<SAL>100</SAL>
<DEPTNO>20</DEPTNO>
</ROW>
</ROWSET>
Program Listing 2 : Update operations
import java.sql.*;
import oracle.xml.sql.dml.OracleXMLSave;
public class TestUpdate {
     public static void main(String argv[])
          throws SQLException {
          String rowToUpdate = "<?xml version = '1.0'?> " +
               " <ROWSET> " +
               " <ROW num=\"1\"> " +
               " <EMPNO>1238</EMPNO> " +
               " <SAL>999</SAL> " +
" <DEPTNO>20</DEPTNO> " +
               " </ROW> " +
               " </ROWSET> ";
          Connection cn = ConnectionHelper.getConnection();
          OracleXMLSave sav = new OracleXMLSave(cn, "scott.emp");
          String [] keyColNames = new String[2];
          keyColNames[0] = "EMPNO";
keyColNames[1] = "DEPTNO";
          sav.setKeyColumnList(keyColNames);
          sav.updateXML(rowToUpdate );
          sav.close();
          System.out.println("Done ....!");
Program Listing 3 : Delete OPeration
import java.sql.*;
import oracle.xml.sql.dml.OracleXMLSave;
public class TestDelete {
     public static void main(String argv[])
          throws SQLException {
          Connection cn = ConnectionHelper.getConnection();
          OracleXMLSave sav = new OracleXMLSave(cn, "scott.emp");
          String [] keyColNames = new String[1];
          keyColNames[0] = "EMPNO";
          sav.setKeyColumnList(keyColNames);
          for (int i=1234; i <1240; i++) {
          String rowPatternToDelete= "<?xml version = '1.0'?> " +
                    " <ROWSET> " +
                    " <ROW num=\"1\"> " +
                    " <EMPNO>" + i + "</EMPNO> " +
                    " </ROW> " +
                    " </ROWSET> ";
               sav.deleteXML(rowPatternToDelete );
          sav.close();
          System.out.println("Done ....!");
Program Listing 4 : ConnectionHelper.java
import java.sql.*;
import java.util.*;
import oracle.jdbc.driver.*;
public class ConnectionHelper {
public static Connection getConnection() throws SQLException {
String username = "scott";
String password = "tiger";
String thinConn = "jdbc:oracle:thin:@localhost:1521:orcl";
String default8iConn = "jdbc:oracle:kprb:";
String driverClass = "oracle.jdbc.driver.OracleDriver";
Connection cn = null;
try {
Driver d = (Driver)Class.forName(driverClass).newInstance();
return DriverManager.getConnection(thinConn,username,password);
catch (Exception e) {
throw new SQLException("Error Loading JDBC Driver");

Similar Messages

  • Why we cannot perform DML operations against complex views directly.

    hi
    can any tell me why we cannot perform DML operations against complex views directly.

    Hi,
    It is not easy to perform DML operations on complex views which involve more than one table as said by vissu. The reason being you may not know which columns to be updated/inserted/deleted on the base tables of the views. If it is a simple view containing a single table it is as simple as performing actions on the table.
    For further details visit this
    http://www.orafaq.com/wiki/View
    cheers
    VT

  • Problem in Performing DML Operations

    Hi,
    I am performing DML operations(add,edit,delete) on some table 'X'.
    Question:
    After i perform a create operation for the first time, it works fine.
    Now if i tried to perform second consequitive create operation all the fields have first create operations data.
    How will i clear the data in this field.
    Same thing is happening for update operation also.
    This is same even when i use cancel operation followed by create operation.
    How shall i resolve this UI issue.
    Thanks,
    Mithun

    retainAM - If true, all the cached application modules will be retained. If false, all the cached application modules will be released. Developers must use this parameter to control the release behavior of the cached appplication modules. This method will ignore any retainAM=true or retainAM=false as a URL parameter or as part of parameters.
    You should not set retainAM to false in all the cases that can cause performance issue as the AM cache has to be recreated for every navigation. But in your case, it's acceptable.
    Best scenarios for retainAM = true
    1. When you open a page in update mode from List page.
    2. When you want the current values to be retained, after any navigation.
    3. When you add bradcrumb, it is recommended to use reatainAM to true.
    Best scenarios for retainAM = false
    1. When you don't want to retain the AM cache since everytime it should be created. or you want to release manually.
    2. Your current case.
    3. To reset the form values. But this should be the last option.
    Basically, reatainAM parameter is used to tell the OA Caching Framework to retain the current AM cache when the new AM cache gets created by navigating to new page.
    Please set the thread to answered if your issue is solved.

  • Cannot perform dml operation inside a query

    I have created a function which does some dml opration.
    when I use it in a through a transformation operator, and execute the map,
    it throws the following error:
    cannot perform dml operation inside a query
    how to handle this?

    Hi,
    if you want to execute the dml within a mapping, use the pre or post mapping procress operator. Or use a sql*plus activity in the process flow.
    Regards,
    Carsten.

  • How to get & use xml data with jstl libraries? (URGENT PLZ)

    I am using jstl to get and use xml data
    I needs to perform operations on the parsed xml document with other libraries of jstl. How can i do that.
    I used Dom variable to parse my document as:
    <x:parse varDom="test"> <c:import url="project.xml"/> </x:parse>
    where my project.xml is:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <project>      <projectName>myProject</projectName> </project>
    I can dislay this value in html by
    <x:out select="$test/project/projectName"/>
    But I need a string value sotred in variable such as <c:set var="pname" value="???">
    HOW CAN I SET THIS VALUE IN CORE VARIABLE THAT IS, USING <c:set...> SO THAT IT CAN BE USED ANYWHERE IN JSP PAGE TO CONCATE RETURNED STRING IN OTHER STRING VARIABLES DEFINED BY CORE LIB?
    Jessy
    Message was edited by:
    jessy
    Message was edited by:
    jessy

    I believe that <c:set> should do that but i am facing problem in it. Look into this jsp scriptlet:
    1-<x:parse varDom="test"> <c:import url="project.xml"/> </x:parse>
    2-<x:set var="ds" select="$test/project/projectName"/>
    3-<x:out select="$ds"/> <br>
    4-<c:set var="tt" value="${ds}" />
    5-<c:out value="${tt}" />
    In line 3 variable ds returns: myProject
    In line 5 variable tt returns: [[projectName: null]]
    perhaps on line 4 ds is storing some array to tt and i am not calling correct array element. I tried many options but still could not find solution. Plz Plz do something urgent for me. Thanks
    Jessy
    Message was edited by:
    jessy

  • How Do You Use XML To Create Image Upload On A WebSite?

    Hello,
    Could some one please help me understand how to create web image gallery and web video gallery using XML? I have found few xml codes that could be used to do this but I am not so sure how to use them. I want my clients to be able upload images and videos with linking thumbnails to Image and or Videos. Do you think the codes I included in this question will help me achive this goal? And do I need to put all in one and in the same directory so it will work? Please help with your idea and tell me how you would use these codes and how you may step-by-step implement the idea your self to your own web site.
    I have also included the instruction I found on the web with the codes.
    Starting with You Tube, API on their video gallery, here are the codes I found,
    Assume you are to use the YouTube, XML code; What will you change here so it will work on your own www.domain.com?
    <% Dim xml, xhr, ns, YouTubeID, TrimmedID, GetJpeg, GetJpeg2, GetJpeg3, thumbnailUrl, xmlList, nodeList, TrimmedThumbnailUrl Set xml = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
    xml.async = False
    xml.setProperty "ServerHTTPRequest", True
    xml.Load("http://gdata.youtube.com/feeds/api/users/Shuggy23/favorites?orderby=updated") If xml.parseError.errorCode <> 0 Then
        Response.Write xml.parseError.reason End If Set xmlList = xml.getElementsByTagName("entry") Set nodeList = xml.SelectNodes("//media:thumbnail") For Each xmlItem In xmlList
        YouTubeID = xmlItem.getElementsByTagName("id")(0).Text
        TrimmedID = Replace(YouTubeID, "http://gdata.youtube.com/feeds/api/videos/", "")
        For Each xmlItem2 In nodeList
            thumbnailUrl = xmlItem2.getAttribute("url")
            Response.Write thumbnailUrl & "<br />"
        Next     Next    
    %>
    For the image gallery, the following are the codes I found with your experience do I need to use the entire codes or just some of them that I should use?
    CODE #01Converting Database queries to XML
    Using XML as data sources presumes the existence of XML. Often, it is easier to have the server create the XML from a database on the fly. Below are some scripts for common server models that do such a thing.
    These are starting points. They will need to be customized for your particular scenario.
    All these scripts will export the data from a database table with this structure:
    ID: integer, primary key, autoincrement
    AlbumName: text(255)
    ImagePath: text(255)
    ImageDescription: text(2000)
    UploadDate: datetime
    The output of the manual scripts will look like:
    <?xml version="1.0" encoding="utf-8" ?>
      <images>
         <image>
              <ID>1</ID>
              <album><![CDATA[ Family ]]></album>
              <path><![CDATA[ /family/us.jpg ]]></path>
              <description><![CDATA[ here goes the description ]]></description>
              <date><![CDATA[ 2006-11-20 10:20:00 ]]></date>
         </image>
         <image>
              <ID>2</ID>
              <album><![CDATA[ Work ]]></album>
              <path><![CDATA[ /work/coleagues.jpg ]]></path>
              <description><![CDATA[ here goes the description ]]></description>
              <date><![CDATA[ 2006-11-21 12:34:00 ]]></date>
         </image>
      </images>
    These are all wrapped in CDATA because it is will work with all data types. They can be removed if you know you don't want them.
    Note: If using the column auto-generating versions, ensure that all the column types are text. Some databases have data type options like 'binary', that can't be converted to text. This will cause the script to fail.
    CODE #02ASP Manual: This version loops over a query. Edit the Query and XML node names to match your needs.
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <%
    Dim MM_conn_STRING
    MM_conn_STRING = "dsn=image_gallery;uid=xxxx;pwd=xxxx"
    %>
    <%
    Dim rsImages
    Dim rsImages_cmd
    Dim rsImages_numRows
    ' Query the database and get all the records from the Images table
    Set rsImages_cmd = Server.CreateObject ("ADODB.Command")
    rsImages_cmd.ActiveConnection = MM_conn_STRING
    rsImages_cmd.CommandText = "SELECT ID, AlbumName, ImagePath, ImageDescription, UploadDate FROM images"
    rsImages_cmd.Prepared = true
    Set rsImages = rsImages_cmd.Execute
    ' Send the headers
    Response.ContentType = "text/xml"
    Response.AddHeader "Pragma", "public"
    Response.AddHeader "Cache-control", "private"
    Response.AddHeader "Expires", "-1"
    %><?xml version="1.0" encoding="utf-8"?>
    <images>
      <% While (NOT rsImages.EOF) %>
         <image>
              <ID><%=(rsImages.Fields.Item("ID").Value)%></ID>
              <album><![CDATA[<%=(rsImages.Fields.Item("AlbumName").Value)%>]]></album>
              <path><![CDATA[<%=(rsImages.Fields.Item("ImagePath").Value)%>]]></path>
              <description><![CDATA[<%=(rsImages.Fields.Item("ImageDescription").Value)%>]]></description>
              <date><![CDATA[<%=(rsImages.Fields.Item("UploadDate").Value)%>]]></date>
         </image>
        <%
           rsImages.MoveNext()
         Wend
    %>
    </images>
    <%
    rsImages.Close()
    Set rsImages = Nothing
    %>
    CODE #03
    Automatic: This version evaluates the query and automatically builds the nodes from the column names.
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <%
    Dim MM_conn_STRING
    MM_conn_STRING = "dsn=image_gallery;uid=xxxx;pwd=xxxx"
    %>
    <%
    Dim rsAll
    Dim rsAll_cmd
    Dim rsAll_numRows
    ' Query the database and get all the records from the Images table
    Set rsAll_cmd = Server.CreateObject ("ADODB.Command")
    rsAll_cmd.ActiveConnection = MM_conn_STRING
    rsAll_cmd.CommandText = "SELECT * FROM Images"
    rsAll_cmd.Prepared = true
    Set rsAll = rsAll_cmd.Execute
    ' Send the headers
    Response.ContentType = "text/xml"
    Response.AddHeader "Pragma", "public"
    Response.AddHeader "Cache-control", "private"
    Response.AddHeader "Expires", "-1"
    %><?xml version="1.0" encoding="utf-8"?>
    <root>
      <% While (NOT rsAll.EOF) %>
         <row>
             <%
                 For each field in rsAll.Fields
                 column = field.name
             %>
              <<%=column%>><![CDATA[<%=(rsAll.Fields.Item(column).Value)%>]]></<%=column%>>
              <%
                 Next
              %>
         </row>
        <%
           rsAll.MoveNext()
         Wend
    %>
    </root>
    <%
    rsAll.Close()
    Set rsAll = Nothing
    %>

    OK, I understand - thanks for that.
    I thought the whole process was supposed to be a bit more seemless? Having to upload/download documents and manually keep them in sync will leave a lot of room for errors.
    It's kinda painful the way iOS doesn't have folders. It makes things incompatible with the Mac and means you can't group files from multiple apps into a single project - who organises their digital life by the apps they use?
    I think I'll recommend they use their iPad only.
    Thanks for that.
    Cheers
    Ben

  • [Forum FAQ] How do i use xml stored in database as dataset in SQL Server Reporting Services?

    Introduction
    There is a scenario that users want to create SSRS report, the xml used to retrieve data for the report is stored in table of database. Since the data source is not of XML type, when we create data source for the report, we could not select XML as Data Source
    type. Is there a way that we can create a dataset that is based on data of XML type, and retrieve report data from the dataset?
    Solution
    In this article, I will demonstrate how to use xml stored in database as dataset in SSRS reports.
    Supposing the original xml stored in database is like below:
    <Customers>
    <Customer ID="11">
    <FirstName>Bobby</FirstName>
    <LastName>Moore</LastName>
    </Customer>
    <Customer ID="20">
    <FirstName>Crystal</FirstName>
    <LastName>Hu</LastName>
    </Customer>
    </Customers>
    Now we can create an SSRS report and use the data of xml type as dataset by following steps:
    In database, create a stored procedure to retrieve the data for the report in SQL Server Management Studio (SSMS) with the following query:
    CREATE PROCEDURE xml_report
    AS
    DECLARE @xmlDoc XML;  
    SELECT @xmlDoc = xmlVal FROM xmlTbl WHERE id=1;
    SELECT T.c.value('(@ID)','int') AS ID,     
    T.c.value('(FirstName[1])','varchar(99)') AS firstName,     
    T.c.value('(LastName[1])','varchar(99)') AS lastName
    FROM   
    @xmlDoc.nodes('/Customers/Customer') T(c)
    GO
    P.S. This is an example for a given structured XML, to retrieve node values from different structured XMLs, you can reference here.
    Click Start, point to All Programs, point to Microsoft SQL Server, and then click Business Intelligence Development Studio (BIDS) OR SQL Server Data Tools (SSDT). If this is the first time we have opened SQL Server Data Tools, click Business Intelligence
    Settings for the default environment settings.
    On the File menu, point to New, and then click Project.
    In the Project Types list, click Business Intelligence Projects.
    In the Templates list, click Report Server Project.
    In Name, type project name. 
    Click OK to create the project. 
    In Solution Explorer, right-click Reports, point to Add, and click New Item.
    In the Add New Item dialog box, under Templates, click Report.
    In Name, type report name and then click Add.
    In the Report Data pane, right-click Data Sources and click Add Data Source.
    For an embedded data source, verify that Embedded connection is selected. From the Type drop-down list, select a data source type; for example, Microsoft SQL Server or OLE DB. Type the connection string directly or click Edit to open the Connection Properties
    dialog box and select Server name and database name from the drop down list.
    For a shared data source, verify that Use shared data source reference is selected, then select a data source from the drop down list.
    Right-click DataSets and click Add Dataset, type a name for the dataset or accept the default name, then check Use a dataset embedded in my report. Select the name of an existing Data source from drop down list. Set Query type to StoredProcedure, then select
    xml_report from drop down list.
    In the Toolbox, click Table, and then click on the design surface.
    In the Report Data pane, expand the dataset we created above to display the fields.
    Drag the fields from the dataset to the cells of the table.
    Applies to
    Reporting Services 2008
    Reporting Services 2008 R2
    Reporting Services 2012
    Reporting Services 2014
    Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.

    I have near about 30 matrics. so I need a paging. I did every thing as per this post and it really works for me.
    I have total four columns. On one page it should show three and the remaining one will be moved to next page.
    Problem occurs when in my first row i have 3 columns and in next page if I have one columns then it show proper on first page but on second page also it gives me three columns insted of one. the first column data is exactly what I have but in remaining two
    columns it shows some garbage data.
    I have data like below.
    Metric ColumnNo RowNo
    1 1
    1
    2 2
    1
    3 3
    1
    4 1
    2
    so while grouping i have a row parent group on RowNo and Column group on ColumnNo.
    can anyone please advice on this.

  • Invoice Print - How to customize using XML

    We want to customize Invoice Print using XML. Currently it is in PDF format.
    When we define the data defintion, what xml schemea needs to be put for Invoice Print and where can I find the file .xsd related to Invoice Print.
    Similary we want to do it for Dunning Letters as well as Statements.
    Your help will be much appreciated.
    Regards
    Ganesan

    Hi Roy,
    That's a very good question and I have 2 options for you:
    1. Create transformer (see Transformation Service documentation to know how and there are examples) that will filter the RSS items according to content of the items. Connect this new transformer to your XML iView in the XML iView editor so it will be the first one and the built-in RSS transformer is second. SAX transformers are faster for filtering so I recommend adding this transformer. 
    2. Create your own RSS XSL transformer (again like in the documentation) that will filter the items and create the UI.
    I hope this will help you.
    Elisha

  • ADF- PERFORMING DML OPERATIONS- VERY URGENT

    Dear All,
    i have an urgent requirement on ADF.
    i have not developed any page in ADF till now this is my first page so plz help Friends.
    Requirement is as follows:
    "I should create a page which should perform all DML operations (Insert, Update, Delete)".
    please specify step by step procedure for creating this plz help. very urbent friends.
    Thanks alot Friends.
    Regards,
    Raja.

    well user,
    here nothing to urgernt
    and *"no urgent."*
    user welcome this forums.
    you have passed 23 posts in this forums.
    you have to see this.
    Announcement: Please read this before you post
    https://forums.oracle.com/forums/ann.jspa?annID=56
    without any details. how can we help you. though.
    here you need.
    http://andrejusb.blogspot.in/2010/05/crud-operations-in-oracle-adf-11g-table.html
    http://andrejusb.blogspot.in/2009/11/crud-operations-in-jdeveloperadf-11g-r1.html

  • How to perform DML Operations on Spatial Table Using ADF

    Hi
    I have an urgent requirement. I have a table with Spatial column. I have generated Business components based on Spatial Table.
    Now I have to perform Create,Read,Update and Delete operations using ADF Business Components on Spatial Table.
    I have written custom create(),read(),update() and delete() methods in my Application Module and i have to implement those methods.
    Can any one help me out how to acheive above four functionalities using ADF Business Components.
    Thanks in Advance

    HI,
    see this example.
    u can do like this.
    DATA: BEGIN OF seats OCCURS 0,
            carrid   TYPE sflight-carrid,
            connid   TYPE sflight-connid,
            seatsocc TYPE sflight-seatsocc,
          END OF seats.
    DATA seats_tab LIKE HASHED TABLE OF seats
                   WITH UNIQUE KEY carrid connid with header line.
    SELECT carrid connid seatsocc
           FROM sflight
           INTO table seats.
    loop at seats.
      COLLECT seats INTO seats_tab.
    endloop.
    LOOP AT seats_tab.
    write:/ seats_tab-carrid,seats_tab-connid,seats_tab-seatsocc.
    ENDLOOP.
    rgds,
    bharat.

  • How Can One use XML data into our Java Program

    I have an Java Program and an XML file contaning data. I want to parse the xml data and use into my Java Program. How can I do so.

    Check out the org.xml.sax.XMLReader class.

  • How do I use VISA to perform GET (Group Execute Trigger) to three DMMs?

    Hi,
    My systems have about 4 GPIB instruments connecting to my computer via Agilent GPIB-USB Interface card.  I have to use VISA to communicate with the interface and instrument.  I wish I can use NI488,.2 but it does not seem to work with Agilent card.  In NI488.2, I could easily send a command such as X? (to read value from Agilent 3458A) to 3 DMMS at once using sendlist module.  However, I do not know how to do similar parallel poll in VISA.  Can anyone help?  There are three FLUKE8505A on the system.  My goal is to read the three measured values triggered  simultaneously on these three FLUKE DMMs. 
    Sincerely yours,
    Rose

    Hi Rose,
    The How Do I See My Agilent 82357A GPIB-USB Interface in MAX/LabVIEW? knowledgebase article explains how to use an Agilent USB-GPIB with NI-VISA. Using the NI-VISA driver will require you install the Agilent I/O Libraries 14.0 and uninstall the Agilent VISA driver.  Once you get your Agilent GPIB-USB device recognized in MAX, you should be able to control the instruments using LabVIEW. 
    Regards,
    Andy L.
    Applications Engineer
    National Instruments

  • How to distinguish the type of trigger DML operation?

    I want to log all changes to some table (inserts, updates and deletes). Before every change I want to insert the values to the log table along with operation type and sysdate.
    I want to do it in one trigger, but I don't know how to read the type of operation? I could do it with three triggers, each for insert, update and delete, but this would be easier.
    create trigger emp_trig after insert or update or delete on emp
    for each row
    begin
      insert into emp_log values(
      :new.empno, :new.ename,
      __operation__, sysdate);
    end;Thanks in advance
    Viliam

    In case you had an ID, which is assigned automagically on emp, this could also be written like this:
    create trigger emp_trig
    after insert or update or delete on emp
    for each row
    begin
    insert into emp_log values(
    :new.empno, :new.ename,
    decode(nvl(:old.id,-1),-1,'Insert',decode(nvl(:new.id,-1),-1,'Delete','Update')), sysdate);
    end;
    ..where -1 is a value you do not expect to be propagated ever in id column. Also, :new.empno and :new.enmae will be null if the dml being executed is a delete statement.

  • How can i use the gui of the operating system

    hi
    i am working with the gui and i want to ask how can the gui of the java be like the operating system..
    ex : i want the buttons and the frame be like the windows xp .. not appear as default..

    i read the UIManager and i found more methods that getting the font the dimension but i want that when i drag and drop the code already inherent the gui (the shape of the buttons , frame and tool bar from the operating system)
    ex : i working with windows xp, i want the shape of the gui of the frame that i drag and drop it be like the gui of xp)

  • DML operations on Materialized view

    Hi,
    I want to know can we perform DML operations like insert/update on a materialized view?
    Thanks
    Deepak

    Thanks Michaels. I'm able to update/insert into materialized view.
    But I'm having another problem.
    My materialized view is selecting rows on group by condition, but to create a MV as updatable, it should be simple.
    SQL> create materialized view mv_utr_Link
    2 build immediate
    3 refresh force on demand
    4 for update
    5 enable query rewrite
    6 as
    7 select link_id,booking_date
    8 from t_utr
    9 where link_id=246229
    10 group by link_id,booking_date
    11 /
    from t_utr
    ERROR at line 8:
    ORA-12013: updatable materialized views must be simple enough to do fast
    refresh
    If I remove the group by clause, its allowing me to create MV, but that won't solve my problem.
    any workaround on that?
    Thanks
    Deepak

Maybe you are looking for