Oracle Express(Analytical workspace?) and Oracle warehousebuilder

Can somebody please explain when and why to use
Oracle Express(Analytical workspace?) and Oracle warehousebuilder.
When should each of these tools be used?

Oracle Express is an old, de-supported product that has been replaced by Oracle Database OLAP Server http://otn.oracle.com/products/bi/olap/olap.html.
Oracle Warehouse Builder (OWB) is a data integration design and management tool. One of OWB's areas of functionality is enabling OLAP. All OWB OLAP related materials are summarized and linked from OWB Self-service Education page here http://otn.oracle.com/products/warehouse/selfserv_edu/OLAP_cube_creation.html
Nikolai Rochnik

Similar Messages

  • Analytic Workspaces and Database Tablespace

    Hi,
    I am trying to understand the intricacies in the setup of Analytic Workspaces and their corresponding tablespaces in the database, and here is the background:
    I created an Analytic Workspace, say AW1 in a database that had a tablespace, say TS1. After sometime, I created another Tablespace, TS2 in the same database and using the same schema as before, created an Analytic Workspace, AW2 in TS2.
    However, AW2 seems to get created in TS1 even though I select TS2 explicitly at the time of creating AW2. Also, if I drop an AW created using TS2 and then import it again (in the same schema) from the template, it gets created in TS1 and not TS2 as I would expect.
    In essence, it seems to me that all AWs get created in the TS that was the first TS of my database (TS1 in this case), irrespective of the fact that I created them in different Tablespaces. Also, for all these experiments, the database and the environment is the same.
    Can anyone please explain this behavior?
    For reference, the database in use is Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
    and the AWs have been created using Oracle Analytic Workspace Manager (AWM) v10.2.0.3.0A.
    Any help is much appreciated.
    Thanks and Regards,
    Piyush

    Hi Piyush,
    AWM lets you specify the tablespace for your AW which allows you to override the default tablespace for the user. However, this information is not recorded in the XML template. Therefore, if you create an AW in a non-default tablespace, save the definition to an XML template, drop the AW and use the XML template to rebuild the AW then the AW will get created in the default tablespace.
    There are two workarounds to this (that I can think of)
    1) Use a script to rebuild the AW from the XML template and alter the users default tablespace as part of the script and then set it back after the AW has been built.
    2) Use the AW Create packages that do allow you to specify the tablespace for the AW, run the DML command to create the standard form metadata and then script the loading of the XML definitions for each dimension and all your cubes.
    Hope this helps
    Keith Laker
    Oracle EMEA Consulting
    BI Blog: http://oraclebi.blogspot.com/
    DM Blog: http://oracledmt.blogspot.com/
    BI on Oracle: http://www.oracle.com/bi/
    BI on OTN: http://www.oracle.com/technology/products/bi/
    BI Samples: http://www.oracle.com/technology/products/bi/samples/

  • Cannot able to delete the Analytical Workspace and its objects.

    Hi,
    My Analytical workspace (11.2.0.2 B) seems to be corrupted. I could not able to attach the workspace through AWM and i cannot even able to delete it. I found there is no other session attached the Work space. I used the below query to find the locks on the work space.
    SELECT
    username || ' ('||SID||','||serial#||','||
    DECODE(server,
    'DEDICATED','D',
    'SHARED', 'S', 'U')||')' usn,
    gvawo.inst_id,
    owner||'.'||daws.aw_name||' ('||
    DECODE(attach_mode,
    'READ WRITE', 'RW',
    'READ ONLY', 'RO',
    'MULTIWRITE', 'MW',
    'EXCLUSIVE', 'XW', attach_mode)||')' aw,
    generation
    FROM
    DBA_AWS daws,
    gv$aw_olap gvawo,
    gv$aw_calc gvawc,
    gv$session gvses
    WHERE
    daws.aw_number = gvawo.aw_number
    AND SID = gvawo.session_id
    AND gvawc.session_id = SID
    AND gvawo.inst_id = gvawc.inst_id
    AND gvses.inst_id = gvawc.inst_id
    ORDER BY
    username,
    SID,
    daws.aw_name
    When i try to delete the work space i am getting the following error. I cannot able to attach the work space also.
    An error has occurred on the server
    Error class: Express Failure
    Server error descriptions:
    DPR: cannot create server cursor, Generic at TxsOqDefinitionManager::generic<CommitRoot>
    INI: XOQ-00703: error executing OLAP DML command "(AW DELETE DWH_REP.SAMPLE : ORA-37163: cannot delete or truncate AW with dependent CUBES or CUBE DIMENSIONS
    *)", Generic at TxsOqAWManager::executeCommand*
    Please help me to resolve this.
    Regards,
    Raghav

    Hi,
    When i try to execute your statement through Toad, i am getting the below error.
    ORA-03113: end-of-file on communication channel
    But the same is working for other AW which has not corrupted.
    When i try to open the corrupted work space through AWM, i get the below error.
    Unable to attach DWH_REP.SAMPLE Analytic Workspace read write
    java.sql.SQLException: No more data to read from socket
    at oracle.olap.awm.connection.AwAttachmentManager.attachInThread(Unknown Source)
    at oracle.olap.awm.navigator.node.WorkspaceNode.setExpanded(Unknown Source)
    at oracle.bali.ewt.dTree.DTreeButtonDecoration.processMouseEvent(Unknown Source)
    at oracle.bali.ewt.dTree.DTreeStackingDecoration.processMouseEvent(Unknown Source)
    at oracle.bali.ewt.dTree.DTree.processMouseEvent(Unknown Source)
    at oracle.olap.awm.navigator.Navigator.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at oracle.bali.ewt.LWComponent.processEventImpl(Unknown Source)
    at oracle.bali.ewt.dTree.DTree.processEventImpl(Unknown Source)
    at oracle.bali.ewt.LWComponent.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$2.run(Unknown Source)
    at java.awt.EventQueue$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

  • OLAP Expression Analytical Functions and NA Values

    Hello,
    I am trying to use the SUM and MAX functions over a hierarchy where there are potentially NA values. I believe in OLAP DML, the natural behavior is to skip these values. Can a skip be accomplished with either the SUM or MAX OLAP Expression Syntax functions?
    Cheers!

    Pre-requisites:
    ===============
    Time dimension with level=DAY.... i have restricted data to 1 month approx.. 20100101 to 20100201 (32 days).
    Measure of interest - a (say)
    Time Dimension attribute which indicates WEEKDAY.... if you have END_DATE attribute with date datatype so we can extract the DAY (MON/TUE/WED/...) from it and decipher wkday/wkend status for DAY.
    Sort time as per END_DATE ..
    Take care of other dimensions during testing... restrict all other dimensions of cube to single value. Final formula would be independent of other dimensions but this helps development/testing.
    Step 1:
    ======
    "Firm up the required design in olap dml
    "rpr down time
    " w 10 heading 't long' time_long_description
    " w 10 heading 't end date' time_end_date
    " w 20 heading 'Day Type' convert(time_end_date text 'DY')
    " a
    NOTE: version 1 of moving total
    " heading 'moving minus 2 all' movingtotal(a, -2, 0, 1, time status)
    " w 20 heading 'Day Type' convert(time_end_date text 'DY')
    " heading 'a wkday' if convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' then a else na
    NOTE: version 2 of moving total
    " heading 'moving minus 2 wkday' movingtotal(a, -2, 0, 1, time convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN')
    " w 20 heading 'Day Type' convert(time_end_date text 'DY')
    " heading 'a wkday non-na' if convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' and a ne na then a else na
    NOTE: version 3 of moving total
    " heading 'moving minus 2 wkday non-na' movingtotal(a, -2, 0, 1, time convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' and a ne na)
    OLAP DML Command:
    rpr down time w 10 heading 't long' time_long_description w 10 heading 't end date' time_end_date w 20 heading 'Day Type' convert(time_end_date text 'DY') a heading 'moving minus 2 all' movingtotal(a, -2, 0, 1, time status) w 20 heading 'Day Type' convert(time_end_date text 'DY') heading 'a wkday' if convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' then a else na heading 'moving minus 2 wkday' movingtotal(a, -2, 0, 1, time convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN') w 20 heading 'Day Type' convert(time_end_date text 'DY') heading 'a wkday non-na' if convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' and a ne na then a else na heading 'moving minus 2 wkday non-na' movingtotal(a, -2, 0, 1, time convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' and a ne na)
    Step 2:
    ======
    "Define additional measure to contain the required/desired formula implementing the business requirements (version 3 above)
    " create formula AF1 which points to last column... i.e. OLAP_DML_EXPRESSION
    dfn af1 formula movingtotal(a, -2, 0, 1, time convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' and a ne na)
    "NOTE: Do this via AWM using calculated member with template type = OLAP_DML_EXPRESSION so that the cube view for cube contains a column for measure AF1
    OLAP DML Command:
    rpr down time w 10 heading 't long' time_long_description w 10 heading 't end date' time_end_date w 20 heading 'Day Type' convert(time_end_date text 'DY') a heading 'a wkday non-na' if convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' and a ne na then a else na heading 'moving minus 2 wkday non-na (AF1)' af1
    ->
    Step 3:
    =======
    Extend Oracle OLAP with regular SQL functionality like SQL ANALYTICAL functions to fill up the gaps for intermediate week days like DAY_20100104 (TUE), DAY_20100105 (WED) etc.
    Use: SQL Analytical Function LAST_VALUE() in query.. i.e. in report or query.. dont use AF1 but use LAST_VALUE(af1).... as below pseudo-code:
    LAST_VALUE(cube_view.af1) over (partition by <product, organization, ... non-time dimensions> order by <DAY_KEY_Col> range unbounded preceeding and current row)
    HTH
    Shankar

  • Is it possible to create relational view on Analytic Workspace in Oracle 9i Release1

    Hi All,
    We are in the initial stages of Oracle 9i OLAP prototype. Since the current version of BIBeans 2.5 does not work with Release 2 of Oracle 9i OLAP, we are planning to use Oracle 9i OLAP Release 1. So can you please answer the following questions.
    1. Is it possible to create relational view on Analytic Workspace(like in Release 2) and populate the OLAP catalog, if so can you give me guidance to get the appropriate user guide. The OLAP DML guide in Release 1 talks about creating OLAP catalog metadata for Analytic Workspace using a metadata locator object.
    2, Is it advisable to use Oralce 9i OLAP Release 1? Does the Analytic Workspace and the corresponding BIBeans work in Release 1?
    Thank you,
    Senthil

    Analytic Workspaces (Express/multidimensional data objects and procedures written in
    the OLAP DML) are new to Oracle9i OLAP Release 2, you cannot find them in Release 1.
    BI Beans will soon (within a week) introduce a version on OTN that will work with Oracle9i OLAP Release 2.

  • Creating an Analytic Workspace

    Hi,
    i want to create an analytic Workspace without the AWM, but I want to see the Dimensions Cubes, etc what I create in the AWM. I Work with the AWM 10.2.0.3.0. What packages must I use for it? Someone say I must use the cwm2 and the dbms package an otherone say that I must use the AW/XML package.
    Give it a Example for Creating an AWM??
    Thanks

    If you want to create the AW without manually sitting in front of the AWM, Oracle prefers you to use the AWXML and AWAction packages in Java. If you have the AWM installed on your machine, you have the jar files you need in the AWM install directory. Download JDEV and try to load and compile this example program as a way to start learning the library.
    package oracle.olapi.examples;
    import oracle.AWAction.BuildDatabase;
    import oracle.AWAction.Interaction;
    import oracle.AWXML.AggregationDefinition;
    import oracle.AWXML.AggregationHierarchySpecification;
    import oracle.AWXML.Attribute;
    import oracle.AWXML.AttributeProjection;
    import oracle.AWXML.AttributeSourceExpression;
    import oracle.AWXML.AW;
    import oracle.AWXML.AWConnection;
    import oracle.AWXML.Cube;
    import oracle.AWXML.CubeDimensionSourceExpression;
    import oracle.AWXML.CubeDimRef;
    import oracle.AWXML.CubeMapGroup;
    import oracle.AWXML.Dimension;
    import oracle.AWXML.DimensionKeySourceExpression;
    import oracle.AWXML.DimensionMapGroup;
    import oracle.AWXML.DimensionMemberExpression;
    import oracle.AWXML.HierarchicalParentSourceExpression;
    import oracle.AWXML.Hierarchy;
    import oracle.AWXML.HierarchyLevelAssociation;
    import oracle.AWXML.Level;
    import oracle.AWXML.Measure;
    import oracle.AWXML.MeasureFolder;
    import oracle.AWXML.MeasureSourceExpression;
    import oracle.AWXML.PreComputeClause;
    import oracle.AWXML.SourceColumn;
    import oracle.express.spl.SPLExecutor;
    import oracle.jdbc.OracleConnection;
    import java.io.File;
    import java.io.FileWriter;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Iterator;
    import java.util.Properties;
    import java.util.StringTokenizer;
    import java.util.Vector;
    * Creates an analytic workspace based on the Global schema and populates
    * the analytic workspace with data from the tables of that relational schema.
    * Before creating the analytic workspace, the program deletes an analytic
    * workspace of the same name if it already exists.
    * The program generates a log file and it creates a file that records the
    * creation of the Oracle OLAP Analytic Workspace Java API objects as an XML string.
    * This program requires the Global schema, which is available on the Oracle
    * Technology Network at
    * http://www.oracle.com/technology/products/bi/olap/olap.html
    * To download the sample schema, in the Documentation section see Sample
    * Schemas for Documentation.
    * To run this program, use the following command-line arguments, where
    * server_name is the server on which the Oracle Database is running,
    * port is the number of the port on which Oracle OLAP is listening,
    * and sid is the system identifier (SID) of the database instance:
    * -conn server_name:port:sid -user global_aw -password global_aw
    * Instead of the -conn argument, you could substitute a -url argument
    * of the following form:
    * -url jdbc:oracle:thin:@server_name:port:sid
    * An example of the command-line arguments is the following:
    * -conn myOracleServer:1521:orcl -user global_aw -password global_aw
    public class BuildAWExample extends BaseExample
    public static AWConnection awConnection;
    private Interaction curInteraction;
    // The elements in the _keys Vector are the relational key columns to which
    // a Level is mapped.
    Vector _keys = new Vector(0);
    // The elements in the _cols Vector are the relational columns to which
    // the attributes for a Level are mapped.
    Vector _cols = new Vector(0);
    // The elements in the _levels Vector are the Level objects for specifying
    // the levels of a hierarchy.
    Vector _levels = new Vector(0);
    // The elements in the _levColumns Vector are the relation columns to which
    // the levels of the hierarchy are mapped.
    Vector _levColumns = new Vector(0);
    Vector _dimList = new Vector(0);
    Vector _measures = new Vector(0);
    Vector _measCols = new Vector(0);
    // File name for writing the XML string.
    String xmlStr = "buildAWEx.xml";
    // File for AW build log.
    String xmlBldStr = "buildAWEx.log";
    * Constructor.
    public void BuildAWExample()
    * Creates the top-level objects for the analytic workspace and calls methods
    * that create the lower-level objects.
    * Writes the analytic workspace objects to an XML string.
    * Builds the analytic workspace framework and populates the analytic
    * workspace with data.
    * Connects to the Oracle Database instance, retrieves information
    * about the construction of the analytic workspace, and writes the
    * information to a log file.
    * Finally, closes the connection to the database.
    public void run() throws Exception
    // Get the command line arguments that are stored in the Properties object.
    String connection = getConnectionProperty(props);
    String user = props.getProperty("user");
    String password = props.getProperty("password");
    // Create the AWConnection.
    try
    System.out.println("Connecting to " + connection + ".");
    awConnection = new AWConnection(user, password, connection);
    catch(Exception e)
    System.out.println("Error connecting to " + connection + ".\n" + e);
    // Specify a name for the analytic workspace.
    String awName = "GLOBALAW";
    // Delete the analytic workspace if it already exists.
    deleteExistingAW(awConnection, user, awName);
    // Create an AW object and give it a name.
    AW globalAW = new AW();
    globalAW.setName(awName);
    // Create Dimension objects, and pass each Dimension to a method that
    // creates Attribute, Hierarchy, and Level objects for it.
    // Create the TIME_AW Dimension and set names for the object.
    Dimension timeDim = globalAW.createDimension();
    timeDim.setName("TIME_AW");
    timeDim.setShortName("TIME_AW");
    timeDim.setLongName("TIME_AW dimension");
    timeDim.setIsTime(true);
    // Create the Attribute, Level, and Hierarchy objects for the Dimension.
    this.createTimeDim(timeDim);
    // Get the detail level to use when creating a Cube.
    Vector timelevels = timeDim.getLevels();
    Level monthLevel = (Level)_time_levels.elementAt(0);
    // Create the CUSTOMER_AW Dimension and set names for the object.
    Dimension customerDim = globalAW.createDimension();
    customerDim.setName("CUSTOMER_AW");
    customerDim.setShortName("CUSTOMER_AW");
    customerDim.setLongName("CUSTOMER_AW dimension");
    // Create the Attribute, Level, and Hierarchy objects for the Dimension.
    this.createCustomerDim(customerDim);
    // Get the detail level to use when creating a Cube.
    Vector customerDim_levels = customerDim.getLevels();
    Level shipToLevel = (Level)customerDim_levels.elementAt(0);
    // Create the PRODUCT_AW Dimension and set names for the object.
    Dimension productDim = globalAW.createDimension();
    productDim.setName("PRODUCT_AW");
    productDim.setShortName("PRODUCT_AW");
    productDim.setLongName("PRODUCT_AW Dimension");
    // Create the Attribute, Level, and Hierarchy objects for the Dimension.
    this.createProductDim(productDim);
    // Get the detail level to use when creating a Cube.
    Vector productDim_levels = productDim.getLevels();
    Level itemLevel = (Level)productDim_levels.elementAt(0);
    // Create the CHANNEL_AW Dimension and set names for the object.
    Dimension channelDim = globalAW.createDimension();
    channelDim.setName("CHANNEL_AW");
    channelDim.setShortName("CHANNEL_AW");
    channelDim.setLongName("CHANNEL_AW dimension");
    // Create the Attribute, Level, and Hierarchy objects for the Dimension.
    this.createChannelDimension(channelDim);
    // Get the detail level, which is shared by all dimension hierarchies,
    // to use when creating a Cube.
    Vector channellevels = channelDim.getLevels();
    Level channelLevel = (Level)_channel_levels.elementAt(0);
    // Create the UNITS_CUBE_AW Cube and the measures to associate with it.
    this.clearCubeMapVectors();
    Cube unitsCube = globalAW.createCube();
    unitsCube.setName("UNITS_CUBE_AW");
    // Add the dimensions to the _dimList Vector.
    _dimList.add(timeDim);
    _dimList.add(customerDim);
    _dimList.add(productDim);
    _dimList.add(channelDim);
    // Specify the dimensions for the Cube.
    this.associateCubeDimensions(unitsCube, _dimList);
    // Create an aggregation map for the Cube.
    this.precomputeNA(unitsCube, "AGGMAP_UC");
    // Create a Measure for the quantities of units sold.
    Measure units = unitsCube.createMeasure();
    units.setName("UNITS_AW");
    units.setShortName("UNITS_AW");
    units.setLongName("UNITS_AW measure");
    units.setDataType("NUMBER");
    // Add the Measure to the _measures Vector.
    _measures.add(units);
    // Add the column of the Global schema relational table to the
    // _measCols Vector.
    measCols.add("GLOBAL.UNITSHISTORY_FACT.UNITS");
    // Create a Measure for the monetary amount of units sold.
    Measure sales = unitsCube.createMeasure();
    sales.setName("SALES_AW");
    sales.setShortName("SALES_AW");
    sales.setLongName("SALES_AW measure");
    sales.setDataType("NUMBER");
    _measures.add(sales);
    _measCols.add("GLOBAL.UNITS_HISTORY_FACT.SALES");
    // Add the detail levels for the dimensions to the _levels Vector and
    // the relational columns for the levels to the _cols Vector.
    _levels.add(monthLevel);
    _cols.add("GLOBAL.UNITS_HISTORY_FACT.MONTH_ID");
    _levels.add(shipToLevel);
    _cols.add("GLOBAL.UNITS_HISTORY_FACT.SHIP_TO_ID");
    _levels.add(itemLevel);
    _cols.add("GLOBAL.UNITS_HISTORY_FACT.ITEM_ID");
    _levels.add(channelLevel);
    _cols.add("GLOBAL.UNITS_HISTORY_FACT.CHANNEL_ID");
    // Map the columns of the relational tables to the dimensions and measures
    // of the analytic workspace Cube.
    this.createCubeMap(unitsCube, _levels, _cols, _measures, _measCols);
    // Create the PRICE_COST_CUBE_AW Cube and the measures to associate with it.
    this.clearCubeMapVectors();
    Cube priceCostCube = globalAW.createCube();
    priceCostCube.setName("PRICE_COST_CUBE_AW");
    _dimList.add(productDim);
    _dimList.add(timeDim);
    this.associateCubeDimensions(priceCostCube, _dimList);
    this.precomputeNA(priceCostCube, "AGGMAP_PCC");
    // Create a Measure for unit prices.
    Measure price = priceCostCube.createMeasure();
    price.setName("UNIT_PRICE_AW");
    price.setShortName("UNIT_PRICE_AW");
    price.setLongName("UNIT_PRICE_AW measure");
    price.setDataType("NUMBER");
    _measures.add(price);
    _measCols.add("GLOBAL.PRICE_AND_COST_HIST_FACT.UNIT_PRICE");
    // Create a Measure for unit costs.
    Measure cost = priceCostCube.createMeasure();
    cost.setName("UNIT_COST_AW");
    price.setShortName("UNIT_COST_AW");
    cost.setLongName("UNIT_COST_AW measure");
    cost.setDataType("NUMBER");
    _measures.add(cost);
    _measCols.add("GLOBAL.PRICE_AND_COST_HIST_FACT.UNIT_COST");
    _levels.add(itemLevel);
    _cols.add("GLOBAL.PRICE_AND_COST_HIST_FACT.ITEM_ID");
    _levels.add(monthLevel);
    _cols.add("GLOBAL.PRICE_AND_COST_HIST_FACT.MONTH_ID");
    this.createCubeMap(priceCostCube, _levels, _cols, _measures, _measCols);
    // Create a MeasureFolder and add the measures to it.
    // A MeasureFolder appears as an MdmSchema object to an
    // Oracle OLAP Java API application.
    MeasureFolder measureFolder = globalAW.createMeasureFolder();
    measureFolder.setName("GLOBALAW_SCHEMA");
    measureFolder.setShortName("GLOBALAW_SCHEMA");
    measureFolder.setLongName("GLOBALAW_SCHEMA schema");
    measureFolder.addMeasure(units);
    measureFolder.addMeasure(sales);
    measureFolder.addMeasure(cost);
    measureFolder.addMeasure(price);
    // Write the XML string for the analytic workspace.
    String XML = globalAW.WriteToXML();
    try
    File xmlFile = new File(xmlStr);
    FileWriter xmlout = new FileWriter(xmlFile);
    xmlout.write(XML);
    xmlout.write("\n");
    xmlout.close();
    catch (Exception e)
    System.out.println("Failure to write XML string to file: " +
    e.toString());
    // Build the analytic workspace framework.
    System.out.println("Building the " + awName + " framework.");
    globalAW.Create(awConnection);
    globalAW.Commit(awConnection);
    System.out.println(awName + " framework built!");
    // Populate the analytic workspace with the metadata objects and
    // the data from the relational schema.
    System.out.println("Populating " + awName + "." );
    try
    xml_build_global_aw(awName);
    catch(Exception e)
    System.out.println("The following error occurred while building "
    + awName + ":\n\t" + e.toString());
    // Connect to the Oracle Database instance and retrieve information
    // about building the analytic workspace.
    try
    // Create a DriverManager.
    DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
    // Create a connection to the Oracle Database instance.
    OracleConnection o_connection =
    (OracleConnection)DriverManager.getConnection("jdbc:oracle:thin:@" +
    connection, user, password);
    // Get information from the olapsys.xml_load_log table.
    String result = null;
    String sqlText = "select distinct xml_loadid " +
    "from olapsys.xml_load_log " +
    "order by xml_loadid desc";
    Statement sqlStmt = o_connection.createStatement();
    ResultSet rs = sqlStmt.executeQuery(sqlText);
    if(rs.next())
    // Get the first value.
    int loadid = rs.getInt(1);
    rs.close();
    // Now get the rest of the log without the timestamp for easy diffing.
    sqlText = "select SUBSTR(xml_message, 9) xml_message " +
    "from olapsys.xml_load_log " +
    "where xml_loadid = " + loadid + " " +
    "order by xml_loadid, xml_recordid";
    rs = sqlStmt.executeQuery(sqlText);
    String tempResult;
    while(rs.next())
    tempResult = rs.getString(1);
    if(result == null)
    result = tempResult.trim();
    else
    result = result + "\n" + tempResult.trim();
    // Write the information to a file.
    try
    File xmlBuildLog = new File(xmlBldStr);
    FileWriter xmlBldout = new FileWriter(xmlBuildLog);
    xmlBldout.write(result);
    xmlBldout.write("\n");
    xmlBldout.close();
    catch (Exception e)
    System.out.println("Failure to write XML build log: " + e.toString());
    catch(Exception e)
    System.out.println("Verifier failure with " + e.toString());
    // Close the connection to the database.
    awConnection.close();
    * Builds the analytic workspace.
    public void xml_build_global_aw(String awName)
    // Create an Interaction object for building the analytic workspace.
    curInteraction = new Interaction();
    // Set the AWConnection to use when building the analytic workspace.
    curInteraction.setConnection(awConnection);
    // Create an BuildDatabase object.
    BuildDatabase myBuild =
    (BuildDatabase)curInteraction.createAction("BUILDDATABASE");
    // Set the name of the analytic workspace.
    myBuild.setAWName(awName);
    // Specify not running solves when building the database.
    myBuild.setRunSolve(false);
    // Build the analytic workspace.
    myBuild.Execute();
    * Creates Attribute, Level, and Hierarchy objects for the Time Dimension.
    public void createTimeDim(Dimension timeDim)
    // Indicate that the primary key of the dimension table contains the
    // lowest-level dimension members.
    timeDim.setUseNativeKey(true);
    // Create the Long and Short Description Attribute objects for the Dimension.
    Attribute timeLDAttr = createLongDescAttr(timeDim);
    Attribute timeSDAttr = createShortDescAttr(timeDim);
    // Create the End_Date and Time_Span Attribute objects.
    Attribute timeEndDateAttr = timeDim.createAttribute();
    timeEndDateAttr.setName("End_Date");
    timeEndDateAttr.setClassification("END_DATE");
    Attribute timeTimeSpanAttr = timeDim.createAttribute();
    timeTimeSpanAttr.setName("Time_Span");
    timeTimeSpanAttr.setClassification("TIME_SPAN");
    // Create the Level objects for the Dimension.
    // Create the detail level, MONTH_AW.
    Level monthLevel = timeDim.createLevel();
    monthLevel.setName("MONTH_AW");
    monthLevel.setShortName("MONTH_AW");
    monthLevel.setLongName("MONTH_AW level");
    // Create AttributeProjection objects for the attributes for the
    // MONTH_AW Level.
    this.setupAttributeProjection(monthLevel, "Long Description", timeLDAttr);
    this.setupAttributeProjection(monthLevel, "Short Description", timeSDAttr);
    this.setupAttributeProjection(monthLevel, "End Date", timeEndDateAttr);
    this.setupAttributeProjection(monthLevel, "Time Span", timeTimeSpanAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.TIME_DIM.MONTH_ID");
    _cols.add("GLOBAL.TIME_DIM.MONTH_DSC"); // Long description
    _cols.add("GLOBAL.TIME_DIM.MONTH_DSC"); // Short description
    _cols.add("GLOBAL.TIME_DIM.MONTH_END_DATE");
    _cols.add("GLOBAL.TIME_DIM.MONTH_TIMESPAN");
    this.createLevelMap(monthLevel, _keys,_cols);
    // Create the QUARTER_AW Level.
    Level quarterLevel = timeDim.createLevel();
    quarterLevel.setName("QUARTER_AW");
    quarterLevel.setShortName("QUARTER_AW");
    quarterLevel.setLongName("QUARTER_AW level");
    // Create AttributeProjection objects for the attributes for the
    // QUARTER_AW Level.
    this.setupAttributeProjection(quarterLevel, "Long Description",
    timeLDAttr);
    this.setupAttributeProjection(quarterLevel, "Short Description",
    timeSDAttr);
    this.setupAttributeProjection(quarterLevel, "End Date", timeEndDateAttr);
    this.setupAttributeProjection(quarterLevel, "Time Span", timeTimeSpanAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.TIME_DIM.QUARTER_ID");
    _cols.add("GLOBAL.TIME_DIM.QUARTER_DSC"); // Long description
    _cols.add("GLOBAL.TIME_DIM.QUARTER_DSC"); // Short description
    _cols.add("GLOBAL.TIME_DIM.QUARTER_END_DATE");
    _cols.add("GLOBAL.TIME_DIM.QUARTER_TIMESPAN");
    this.createLevelMap(quarterLevel, _keys, _cols);
    // Create the top level, YEAR_AW.
    Level yearLevel = timeDim.createLevel();
    yearLevel.setName("YEAR_AW");
    yearLevel.setShortName("YEAR_AW");
    yearLevel.setLongName("YEAR_AW level");
    // Create AttributeProjection objects for the attributes for the
    // YEAR_AW Level.
    this.setupAttributeProjection(yearLevel, "Long Description", timeLDAttr);
    this.setupAttributeProjection(yearLevel, "Short Description", timeSDAttr);
    this.setupAttributeProjection(yearLevel, "End Date", timeEndDateAttr);
    this.setupAttributeProjection(yearLevel, "Time Span", timeTimeSpanAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.TIME_DIM.YEAR_ID");
    _cols.add("GLOBAL.TIME_DIM.YEAR_DSC"); // Long description
    _cols.add("GLOBAL.TIME_DIM.YEAR_DSC"); // Short description
    _cols.add("GLOBAL.TIME_DIM.YEAR_END_DATE");
    _cols.add("GLOBAL.TIME_DIM.YEAR_TIMESPAN");
    this.createLevelMap(yearLevel, _keys, _cols);
    // Create the CALENDAR_YEAR_AW Hierarchy.
    Hierarchy calendarYearHier = timeDim.createHierarchy();
    calendarYearHier.setName("CALENDAR_YEAR_AW");
    calendarYearHier.setShortName("CALENDAR_YEAR_AW");
    calendarYearHier.setLongName("CALENDAR_YEAR_AW hierarchy");
    // Add the Level objects for the Hierarchy, and the columns for them,
    // to Vector objects in the hierarcharchical order of the levels,
    // with the top level first.
    this.clearHierarchyMapVectors();
    _levels.add(yearLevel);
    _levColumns.add("GLOBAL.TIME_DIM.YEAR_ID");
    _levels.add(quarterLevel);
    _levColumns.add("GLOBAL.TIME_DIM.QUARTER_ID");
    _levels.add(monthLevel);
    _levColumns.add("GLOBAL.TIME_DIM.MONTH_ID");
    // Specify the levels for the hierarchy and map them to relational columns.
    this.createHierarchyMap(calendarYearHier, _levels, _levColumns);
    * Create the Long_Description Attribute for a Dimension.
    public Attribute createLongDescAttr(Dimension dim)
    Attribute ldAttr = dim.createAttribute();
    ldAttr.setName("Long_Description");
    ldAttr.setClassification("MEMBER_LONG_DESCRIPTION");
    return ldAttr;
    * Creates Attribute, Hierarchy, and Level objects for the Customer Dimension.
    public void createCustomerDim(Dimension customerDim)
    // Indicate that the primary key of the dimension table contains the
    // lowest-level dimension members.
    customerDim.setUseNativeKey(true);
    // Create the Long and Short Description Attribute objects for the Dimension.
    Attribute customerLDAttr = createLongDescAttr(customerDim);
    Attribute customerSDAttr = createShortDescAttr(customerDim);
    // Create Level objects for the SHIPMENTS_AW Hierarchy.
    // Create the detail level, SHIP_TO_AW.
    // This level is in both of the hierarchies of the Customer Dimension.
    Level customerShip_ToLevel = customerDim.createLevel();
    customerShip_ToLevel.setName("SHIP_TO_AW");
    customerShip_ToLevel.setShortName("SHIP_TO_AW");
    customerShip_ToLevel.setLongName("SHIP_TO_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // SHIP_TO_AW Level.
    this.setupAttributeProjection(customerShip_ToLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(customerShip_ToLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.SHIP_TO_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.SHIP_TO_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.SHIP_TO_DSC"); // Short description
    this.createLevelMap(customerShip_ToLevel, _keys, _cols);
    // Create the WAREHOUSE_AW level.
    Level customerWarehouseLevel = customerDim.createLevel();
    customerWarehouseLevel.setName("WAREHOUSE_AW");
    customerWarehouseLevel.setShortName("WAREHOUSE_AW");
    customerWarehouseLevel.setLongName("WAREHOUSE_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // WAREHOUSE_AW Level.
    this.setupAttributeProjection(customerWarehouseLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(customerWarehouseLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.WAREHOUSE_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.WAREHOUSE_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.WAREHOUSE_DSC"); // Short description
    this.createLevelMap(customerWarehouseLevel, _keys, _cols);
    // Create the REGION_AW Level.
    Level custRegionLevel = customerDim.createLevel();
    custRegionLevel.setName("REGION_AW");
    custRegionLevel.setShortName("REGION_AW");
    custRegionLevel.setLongName("REGION_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // the REGION_AW Level.
    this.setupAttributeProjection(custRegionLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(custRegionLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.REGION_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.REGION_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.REGION_DSC"); // Short description
    this.createLevelMap(custRegionLevel, _keys, _cols);
    // Create the top level, TOTAL_CUSTOMER_AW.
    Level allCustomersLevel = customerDim.createLevel();
    allCustomersLevel.setName("TOTAL_CUSTOMER_AW");
    allCustomersLevel.setShortName("TOTAL_CUSTOMER_AW");
    allCustomersLevel.setLongName("TOTAL_CUSTOMER_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // the ALL_CUSTOMERS_AW Level.
    this.setupAttributeProjection(allCustomersLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(allCustomersLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.TOTAL_CUSTOMER_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.TOTAL_CUSTOMER_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.TOTAL_CUSTOMER_DSC"); // Short description
    this.createLevelMap(allCustomersLevel, _keys, _cols);
    // Create the SHIPMENTS_AW Hierarchy.
    Hierarchy shipmentsHier = customerDim.createHierarchy();
    shipmentsHier.setName("SHIPMENTS_AW");
    shipmentsHier.setShortName("SHIPMENTS_AW");
    shipmentsHier.setLongName("SHIPMENTS_AW hierarchy");
    // Add the Level objects for the Hierarchy, and the columns for them,
    // to Vector objects in the hierarcharchical order of the levels,
    // with the top level first.
    this.clearHierarchyMapVectors();
    _levels.add(allCustomersLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.TOTAL_CUSTOMER_ID");
    _levels.add(custRegionLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.REGION_ID");
    _levels.add(customerWarehouseLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.WAREHOUSE_ID");
    _levels.add(customerShip_ToLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.SHIP_TO_ID");
    // Specify the levels for the hierarchy and map them to relational columns.
    this.createHierarchyMap(shipmentsHier, _levels, _levColumns);
    // Create Level objects for the MARKET_SEGMENT_AW Hierarchy.
    // Create the ACCOUNT_AW Level.
    Level customerAccountLevel = customerDim.createLevel();
    customerAccountLevel.setName("ACCOUNT_AW");
    customerAccountLevel.setShortName("ACCOUNT_AW");
    customerAccountLevel.setLongName("ACCOUNT_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // the ACCOUNT_AW Level.
    this.setupAttributeProjection(customerAccountLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(customerAccountLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.ACCOUNT_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.ACCOUNT_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.ACCOUNT_DSC"); // Short description
    this.createLevelMap(customerAccountLevel, _keys, _cols);
    // Create the MARKET_SEGMENT_AW Level.
    Level customerMktSegmentLevel = customerDim.createLevel();
    customerMktSegmentLevel.setName("MARKET_SEGMENT_AW");
    customerMktSegmentLevel.setShortName("MARKET_SEGMENT_AW");
    customerMktSegmentLevel.setLongName("MARKET_SEGMENT_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // the MARKET_SEGMENT_AW Level.
    this.setupAttributeProjection(customerMktSegmentLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(customerMktSegmentLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.MARKET_SEGMENT_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.MARKET_SEGMENT_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.MARKET_SEGMENT_DSC"); // Short description
    this.createLevelMap(customerMktSegmentLevel, _keys, _cols);
    // Create the top level, TOTAL_MARKET_AW.
    Level customerTotalMktLevel = customerDim.createLevel();
    customerTotalMktLevel.setName("TOTAL_MARKET_AW");
    customerTotalMktLevel.setShortName("TOTAL_MARKET_AW");
    customerTotalMktLevel.setLongName("TOTAL_MARKET_AW level");
    // Create AttributeProjection objects for the long and short description
    // attributes for the TOTAL_MARKET_AW Level.
    this.setupAttributeProjection(customerTotalMktLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(customerTotalMktLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.TOTAL_MARKET_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.TOTAL_MARKET_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.TOTAL_MARKET_DSC"); // Short description
    this.createLevelMap(customerTotalMktLevel, _keys, _cols);
    // Create the MARKET_SEGMENT_AW Hierarchy.
    Hierarchy marketSegmentHier = customerDim.createHierarchy();
    marketSegmentHier.setName("MARKET_SEGMENT_AW");
    marketSegmentHier.setShortName("MARKET_SEGMENT_AW");
    marketSegmentHier.setLongName("MARKET_SEGMENT_AW hierarchy");
    // Add the Level objects for the Hierarchy, and the columns for them,
    // to Vector objects in the hierarcharchical order of the levels,
    // with the top level first.
    this.clearHierarchyMapVectors();
    _levels.add(customerTotalMktLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.TOTAL_MARKET_ID");
    _levels.add(customerMktSegmentLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.MARKET_SEGMENT_ID");
    _levels.add(customerAccountLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.ACCOUNT_ID");
    _levels.add(customerShip_ToLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.SHIP_TO_ID");
    // Specify the levels for the hierarchy and map them to relational columns.
    this.createHierarchyMap(marketSegmentHier, _levels, _levColumns);
    * Creates Attribute, Level, and Hierarchy objects for the Product Dimension.
    public void createProductDim(Dimension productDim)
    // Indicate that the primary key of the dimension table contains the
    // lowest-level dimension members.
    productDim.setUseNativeKey(true);
    // Create the Attribute objects for the Dimension.
    Attribute packageAttr = productDim.createAttribute();
    packageAttr.setName("PACKAGE_AW");
    packageAttr.setClassification("USER");
    Attribute buyerAttr = productDim.createAttribute();
    buyerAttr.setName("BUYER_AW");
    buyerAttr.setClassification("USER");
    Attribute mktMngrAttr = productDim.createAttribute();
    mktMngrAttr.setName("MARKETING_MANAGER_AW");
    mktMngrAttr.setClassification("USER");
    Attribute productLDAttr = createLongDescAttr(productDim);
    Attribute productSDAttr = createShortDescAttr(productDim);
    // Create the detail level, ITEM_AW.
    Level itemLevel = productDim.createLevel();
    itemLevel.setName("ITEM_AW");
    itemLevel.setShortName("ITEM_AW");
    itemLevel.setLongName("ITEM_AW level");
    // Create AttributeProjection objects for the attributes for the
    // ITEM_AW Level.
    this.setupAttributeProjection(itemLevel, "PACKAGE_AW", packageAttr);
    this.setupAttributeProjection(itemLevel, "BUYER_AW", buyerAttr);
    this.setupAttributeProjection(itemLevel, "MARKETING_MANAGER_AW", mktMngrAttr);
    this.setupAttributeProjection(itemLevel, "Long Description", productLDAttr);
    this.setupAttributeProjection(itemLevel, "Short Description", productSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.PRODUCT_DIM.ITEM_ID");
    _cols.add("GLOBAL.PRODUCT_DIM.ITEM_PACKAGE_ID");
    _cols.add("GLOBAL.PRODUCT_DIM.ITEM_BUYER");
    _cols.add("GLOBAL.PRODUCT_DIM.ITEM_MARKETING_MANAGER");
    _cols.add("GLOBAL.PRODUCT_DIM.ITEM_DSC"); // Long description
    _cols.add("GLOBAL.PRODUCT_DIM.ITEM_DSC"); // Short description
    this.createLevelMap(itemLevel, _keys,_cols);
    // Create the FAMILY_AW level.
    Level familyLevel = productDim.createLevel();
    familyLevel.setName("FAMILY_AW");
    familyLevel.setShortName("FAMILY_AW");
    familyLevel.setLongName("FAMILY_AW level");
    // Create AttributeProjection objects for the attributes for the
    // FAMILY_AW Level.
    this.setupAttributeProjection(familyLevel, "Long Description",
    productLDAttr);
    this.setupAttributeProjection(familyLevel, "Short Description",
    productSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.PRODUCT_DIM.FAMILY_ID");
    _cols.add("GLOBAL.PRODUCT_DIM.FAMILY_DSC"); // Long description
    _cols.add("GLOBAL.PRODUCT_DIM.FAMILY_DSC"); // Short description
    this.createLevelMap(familyLevel, _keys,_cols);
    // Create the CLASS_AW level.
    Level classLevel = productDim.createLevel();
    classLevel.setName("CLASS_AW");
    classLevel.setShortName("CLASS_AW");
    classLevel.setLongName("CLASS_AW level");
    // Create AttributeProjection objects for the attributes for the
    // CLASS_AW Level.
    this.setupAttributeProjection(classLevel, "Long Description",
    productLDAttr);
    this.setupAttributeProjection(classLevel, "Short Description",
    productSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.PRODUCT_DIM.CLASS_ID");
    _cols.add("GLOBAL.PRODUCT_DIM.CLASS_DSC"); // Long description
    _cols.add("GLOBAL.PRODUCT_DIM.CLASS_DSC"); // Short description
    this.createLevelMap(classLevel, _keys,_cols);
    // Create the top level, TOTAL_PRODUCT_AW.
    Level totalProductLevel = productDim.createLevel();
    totalProductLevel.setName("TOTAL_PRODUCT_AW");
    totalProductLevel.setShortName("TOTAL_PRODUCT_AW");
    totalProductLevel.setLongName("TOTAL_PRODUCT_AW level");
    // Create AttributeProjection objects for the attributes for the
    // TOTAL_PRODUCT_AW Level.
    this.setupAttributeProjection(totalProductLevel, "Long Description",
    productLDAttr);
    this.setupAttributeProjection(totalProductLevel, "Short Description",
    productSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.PRODUCT_DIM.TOTAL_PRODUCT_ID");
    _cols.add("GLOBAL.PRODUCT_DIM.TOTAL_PRODUCT_DSC"); // Long description
    _cols.add("GLOBAL.PRODUCT_DIM.TOTAL_PRODUCT_DSC"); // Short description
    this.createLevelMap(totalProductLevel, _keys,_cols);
    // Create the PRODUCT_PRIMARY_AW Hierarchy.
    Hierarchy prodPrimaryHier = productDim.createHierarchy();
    prodPrimaryHier.setName("PRODUCT_PRIMARY_AW");
    prodPrimaryHier.setShortName("PRODUCT_PRIMARY_AW");
    prodPrimaryHier.setLongName("PRODUCT_PRIMARY_AW level");
    // Add the Level objects for the Hierarchy, and the columns for them,
    // to Vector objects in the hierarcharchical order of the levels,
    // with the top level first.
    this.clearHierarchyMapVectors();
    _levels.add(totalProductLevel);
    _levColumns.add("GLOBAL.PRODUCT_DIM.TOTAL_PRODUCT_ID");
    _levels.add(classLevel);
    _levColumns.add("GLOBAL.PRODUCT_DIM.CLASS_ID");
    _levels.add(familyLevel);
    _levColumns.add("GLOBAL.PRODUCT_DIM.FAMILY_ID");
    _levels.add(itemLevel);
    _levColumns.add("GLOBAL.PRODUCT_DIM.ITEM_ID");
    // Specify the levels for the hierarchy and map them to relational columns.
    this.createHierarchyMap(prodPrimaryHier, _levels, _levColumns);
    * Creates Attribute, Level, and Hierarchy objects for the Channel Dimension.
    public void createChannelDimension(Dimension channelDim)
    // Indicate that the primary key of the dimension table contains the
    // lowest-level dimension members.
    channelDim.setUseNativeKey(true);
    // Create the Long and Short Description Attribute objects for the Dimension.
    Attribute channelLDAttr = createLongDescAttr(channelDim);
    Attribute channelSDAttr = createShortDescAttr(channelDim);
    // Create the Level objects for the Dimension.
    // Create the detail level, CHANNEL_AW.
    Level channelLevel = channelDim.createLevel();
    channelLevel.setName("CHANNEL_AW");
    channelLevel.setShortName("CHANNEL_AW");
    channelLevel.setLongName("CHANNEL_AW level");
    // Create AttributeProjection objects for the long and short description
    // attributes for the CHANNEL_AW Level.
    this.setupAttributeProjection(channelLevel, "Long Description",
    channelLDAttr);
    this.setupAttributeProjection(channelLevel, "Short Description",
    channelSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CHANNEL_DIM.CHANNEL_ID");
    _cols.add("GLOBAL.CHANNEL_DIM.CHANNEL_DSC"); // Long description
    _cols.add("GLOBAL.CHANNEL_DIM.CHANNEL_DSC"); // Short description
    this.createLevelMap(channelLevel, _keys, _cols);
    // Create the top level, ALL_CHANNELS_AW.
    Level allChannelsLevel = channelDim.createLevel();
    allChannelsLevel.setName("TOTAL_CHANNEL_AW");
    allChannelsLevel.setShortName("TOTAL_CHANNEL_AW");
    allChannelsLevel.setLongName("TOTAL_CHANNEL_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // the TOTAL_CHANNEL_AW Level.
    this.setupAttributeProjection(allChannelsLevel, "Long Description",
    channelLDAttr);
    this.setupAttributeProjection(allChannelsLevel, "Short Description",
    channelSDAttr);
    this.clearLevelMapVectors();
    // The order of the elements in the _cols Vector depends on the order
    // in which the attributes are created.
    // Columns in the relational tables are specified in the form
    // user.tablename.column
    _keys.add("GLOBAL.CHANNEL_DIM.TOTAL_CHANNEL_ID");
    _cols.add("GLOBAL.CHANNEL_DIM.TOTAL_CHANNEL_DSC"); // Long description
    _cols.add("GLOBAL.CHANNEL_DIM.TOTAL_CHANNEL_DSC"); // Short description.
    this.createLevelMap(allChannelsLevel, _keys, _cols);
    // Create the CHANNEL_PRIMARY_AW Hierarchy.
    Hierarchy chanRollupHier = channelDim.createHierarchy();
    chanRollupHier.setName("CHANNEL_PRIMARY_AW");
    chanRollupHier.setShortName("CHANNEL_PRIMARY_AW");
    chanRollupHier.setLongName("CHANNEL_PRIMARY_AW hierarchy");
    // Add the Level objects for the Hierarchy, and the columns for them,
    // to Vector objects in the hierarcharchical order of the levels,
    // with the top level first.
    this.clearHierarchyMapVectors();
    _levels.add(allChannelsLevel);
    _levColumns.add("GLOBAL.CHANNEL_DIM.TOTAL_CHANNEL_ID");
    _levels.add(channelLevel);
    _levColumns.add("GLOBAL.CHANNEL_DIM.CHANNEL_ID");
    // Specify the levels for the hierarchy and map them to relational columns.
    this.createHierarchyMap(chanRollupHier, _levels, _levColumns);
    * Create the Short_Description Attribute for a Dimension.
    public Attribute createShortDescAttr(Dimension dim)
    Attribute sdAttr = dim.createAttribute();
    sdAttr.setName("Short_Description");
    sdAttr.setClassification("MEMBER_SHORT_DESCRIPTION");
    return sdAttr;
    * Creates an AttributeProjection for a Level and sets the name and the
    * Attribute to project onto the Level.
    public void setupAttributeProjection(Level _lev, String _name, Attribute _attr)
    AttributeProjection _ap = _lev.createAttributeProjection();
    _ap.setName(_name);
    _ap.setAttribute(_attr);
    * Creates the associations between Level objects and a Hierarchy.
    public void createHierarchyMap(Hierarchy _hier, Vector _levels, Vector columns)
    int i = 0;
    for(Iterator _lev = _levels.iterator(); _lev.hasNext();)
    Level _curLev = (Level)_lev.next();
    HierarchyLevelAssociation _hla = _hier.createHierarchyLevelAssociation();
    _hla.setLevel(_curLev);
    DimensionMapGroup _dmg = _hla.createSourceDimensionMapGroup();
    DimensionKeySourceExpression _dkse = _dmg.CreateKeyMap();
    SourceColumn _levColumn = _dkse.CreateSourceColumn();
    _levColumn.setColumn((String)columns.elementAt(i));
    // The first level has no parent.
    // Each subsequent level does have a parent.
    // The first element in the Vector must be the top-most level.
    if (i > 0)
    HierarchicalParentSourceExpression _hpse = _dmg.CreateParentMap();
    SourceColumn _hpsesc = _hpse.CreateSourceColumn();
    _hpsesc.setColumn((String)columns.elementAt(i-1));
    i++;
    * Clears the Vector objects that are used for specifying the Level objects
    * in a Hierarchy and for mapping the levels to the columns of a relational
    * table.
    public void clearHierarchyMapVectors()
    _levels.removeAllElements();
    _levColumns.removeAllElements();
    * Clears the Vector objects that are used for mapping a Level object to the
    * columns of a relational table.
    public void clearLevelMapVectors()
    _keys.removeAllElements();
    _cols.removeAllElements();
    * Creates a DimensionMapGroup that maps a Level to the columns of
    * a relational table.
    public void createLevelMap(Level _lev, Vector _keys, Vector _columns)
    // Map the keys of the relational table to the level.
    DimensionMapGroup _dmg = _lev.createSourceDimensionMapGroup();
    DimensionKeySourceExpression _key = _dmg.CreateKeyMap();
    for (int y=0; y < _keys.size(); y++)
    SourceColumn _keycol = _key.CreateSourceColumn();
    _keycol.setColumn((String)_keys.elementAt(y));
    // Map the columns of the relational tables or views to the
    // AttributeProjection objects.
    int i = 0;
    for(Iterator attrs = _lev.getAttributes().iterator(); attrs.hasNext();)
    AttributeProjection _curAttr = (AttributeProjection)attrs.next();
    AttributeSourceExpression _attrMap = _dmg.CreateAttributeMap();
    _attrMap.setTargetObject(_curAttr);
    SourceColumn _attrCol = _attrMap.CreateSourceColumn();
    _attrCol.setColumn((String)_columns.elementAt(i));
    i++;
    * Clears the Vector objects that are used for specifying the Level objects
    * in a Hierarchy and for mapping the levels to the columns of a relational
    * table.
    public void clearCubeMapVectors()
    _measures.removeAllElements();
    _measCols.removeAllElements();
    _levels.removeAllElements();
    _cols.removeAllElements();
    _dimList.removeAllElements();
    * Specifies the dimensions for a Cube.
    public void associateCubeDimensions(Cube _cube, Vector _dimList)
    for (int i=0; i < _dimList.size(); i++)
    CubeDimRef _cdr = _cube.createCubeDimRef();
    Dimension _dim = (Dimension)_dimList.elementAt(i);
    _cdr.setDimension(_dim);
    * Maps the columns of the relational tables to the dimensions and measures
    * of the analytic workspace Cube.
    public void createCubeMap(Cube _cube, Vector _levels, Vector _columns,
    Vector _measures, Vector _measCols)
    CubeMapGroup _cmg = _cube.createSourceCubeMapGroup();
    // Create the primary key in the fact table.
    for (int y=0; y < _levels.size(); y++)
    CubeDimensionSourceExpression _cdse = _cmg.CreateKeyMap();
    _cdse.addLevel((Level)_levels.elementAt(y));
    // Loop through the associated comma delimited
    // FKey columns in the fact table.
    StringTokenizer _st =
    new StringTokenizer((String)_columns.elementAt(y), "," );
    while (_st.hasMoreTokens())
    SourceColumn _keycol = _cdse.CreateSourceColumn();
    _keycol.setColumn(_st.nextToken());
    for(int x=0; x < _measures.size(); x++)
    Measure curMeasure = (Measure)_measures.elementAt(x);
    curMeasure.setAutoSolve("NO_AUTO_SOLVE");
    String curMeascol = (String)_measCols.elementAt(x);
    MeasureSourceExpression _measMap = _cmg.CreateAttributeMap();
    _measMap.setTargetObject(curMeasure);
    SourceColumn _meascol = _measMap.CreateSourceColumn();
    _meascol.setColumn(curMeascol);
    * Specifies excluding NA values when computing values while building the
    * analytic workspace.
    public void precomputeNA(Cube _cube, String _aggdef_name)
    // Rename the default aggregation definition that was implicitly created.
    AggregationDefinition _aggdef =_cube.getDefaultAggregationDefinition();
    _aggdef.setName(_aggdef_name);
    // Remove the default calculation specification.
    _aggdef.getCalculationSpecification().clear();
    Vector _dimrefs = _cube.getCubeDimRefs();
    for (Iterator _d = _dimrefs.iterator(); _d.hasNext();)
    AggregationHierarchySpecification _aggHierSpec =
    _aggdef.createAggregationHierarchySpecification();
    CubeDimRef _dimref = (CubeDimRef)_d.next();
    Dimension _dim = _dimref.getDimension();
    _aggHierSpec.setDimension(_dim);
    PreComputeClause _precompute_clause =
    _aggHierSpec.createPreComputeClause();
    DimensionMemberExpression _dimMemExp =
    _precompute_clause.createDimensionMemberExpression();
    _dimMemExp.setExpression("ALL");
    _dimMemExp.setExpressionType("EXCLUDE");
    * Deletes the analytic workspace if it already exists.
    private void deleteExistingAW(AWConnection awConnection, String user,
    String awName)
    try
    OracleConnection conn = (OracleConnection)
    awConnection.getSQLConnection();
    SPLExecutor splExec = new SPLExecutor(conn);
    splExec.initialize();
    try
    System.out.println("Deleting " + user + "." + awName + " if it exists.");
    splExec.executeCommand("aw delete " + user + "." + awName);
         // System.out.println("Deleted " + user + "." + awName + ".");
    catch(Exception e)
    // System.out.println("The " + user + "." + awName + " analytic workspace "
    // + "either did not exist or it could not be deleted.");
    catch(SQLException e)
    System.out.println("Could not initialize the SPL executor. " + e);
    private String getConnectionProperty(Properties props)
    String conn = props.getProperty("conn");
    if (conn == null)
    String url = props.getProperty("url");
    if (url.indexOf("@") > 0)
    conn = url.substring((url.lastIndexOf("@") + 1), url.length());
    props.put("conn", conn);
    return conn;
    public static void main(String[] args)
    new BuildAWExample().execute(args);
    }

  • How can I query analytical workspace ?

    Hello,
    I am using EBS module ODP which uses Analytical workspaces.
    I do not know at all technical subject about Analytical workspaces and OLAP.
    In ODP , I create measures. And ODP provides some report to display and update data stored in my measures.
    I would like to extract data from my measures. How can I do this ?
    => How can I find the internal measure name, the measure column or attribute ...
    => Are there functions to extract the data (like sql language to read in tables )
    => Can anyone give me some commands, and examples to start extracting simple data from my measures(I have had a look to Oracle documentation, but they are very technical and I don't know how to start).

    There are views available in OLAPSYS schema which will give information about the Analytical workspaces and their objects.
    For extracting data from Analytic workspaces you may use the TABLE FUNCTIONS.
    You may refer 'B14346-01 - Oracle OLAP DML Reference 10g Release 2 (10.2)' for details.
    Regards,
    Maruthi

  • Which Analytic Workspace Manager version should I use?

    hi
    Right now I am using DB 9.2.0.8 with OLAP Analytic Workspace and OLAP Catalog. Then which version of AWM should I use if I would like to create some demo cube on the instance?
    this one?
    http://otn.oracle.com/software/htdocs/devlic.html?http://download.oracle.com/otn/java/olap/awm920.zip
    Thanks,
    Scott

    I recommend you check out Werner Puschitz's site, as it's the best source of information for installing Oracle on Redhat.
    Cheers, APC

  • Are Analytic Workspaces suitable for very large data sets?

    Hi all,
    I have made many different tests with analytic workspaces and i have used the different features (compression,composites...). The results especially for maintenance are disappointing.
    I have a star schema with 6 dimensions. The fact table has 730 million rows, the first dimension has 2,9 million rows and the other 5 dimensions have between 25 and 300 rows each.
    My conclusion is that Analytic Workspaces don't help in situations like mine. The time for maintenance is very very bad not to mention the time for aggregations. I even tried to populate the cube in parts( 90 million rows for the first population) but nothing change. And there are some other problems with storage and tablespaces ( I always get the message unable to extent TEMP tablespace. The size of it is 54Gb).
    Is there something i missing? Has anyone similar problem or different opinion?
    Thank you,
    Ilias

    A few other tips to add to Keith's excellent advice:
    - How many CPU's does your server have? The answer to this may help you decide the optimal level to partition at (in my experience DAY is too low and can cause different problems). What other levels does your time dimension have? Are you loading your cubes in parallel?
    - To speed up your load, partition your underlying fact table with the same granularity as your cubes and place an index on the field mapped to the partition dimension
    - Are you using 10.2.0.3? If so, be very careful with the storage data type you choose when creating your cubes. The default in 10.2.0.3 is NUMBER which has the capability of storing data to 38 significant figures. This usually exceeds what is required for most datasets. If your dataset allows you to use storage of 15 significant figures then you should create your cubes using the DECIMAL data type instead. This will use about one third of the storage space and significantly increase your build speeds (in my experience, more than 3 times faster)
    - Make sure you have preallocated enough permanent and temporary tablespaces for your build. Autoextending can be very time consuming.
    - Consider reducing the amount of aggregation you do in batch. It should not be necessary to pre-aggregate everything in order to get good query performance.
    Generally, I would say that the volume should not be a problem. A single dimension with 2.9 million values is fairly big and can be slow (in OLAP terms) to query but that should not be an obstacle to building it in the first place.
    Good luck!
    Stuart

  • OLAP Analytic Workspace Manager/Worksheet in Oracle 11g...

    Hi,
    In Oracle Client 10g .v2 the product OLAP Analytic Workspace Manager/Worksheet is included and installed.
    However , it is not in Oracle 11g - the Oracle client of this version is included -
    http://www.oracle.com/technology/software/index.html
    Download page includes:
       - Client
       - Clusterware
       - Examples
       - GatewaysWill it be included in a seperate product Oracle11g Client...or else???
    Does anybody know about this....???
    Thanks...
    Sim

    AWM is now installed via the database Client CD, which was the case for 10g as well.
    Keith Laker
    Oracle EMEA Consulting
    OLAP Blog: http://oracleOLAP.blogspot.com/
    OLAP Wiki: http://wiki.oracle.com/page/Oracle+OLAP+Option
    DM Blog: http://oracledmt.blogspot.com/
    OWB Blog : http://blogs.oracle.com/warehousebuilder/
    OWB Wiki : http://wiki.oracle.com/page/Oracle+Warehouse+Builder
    DW on OTN : http://www.oracle.com/technology/products/bi/db/11g/index.html

  • Oracle 9i analytic workspace

    hi guys
    i'am working on Faculty project about olap application on datawarehouse of telecomm company using oracle9i olap, so i decide to use rolap and molap ,i understand rolap but i don't understand molap in oracle9i (i mean analytic workspace) so where i can find a good detailed papers about AW ,what it contains and how i can deal with it and how i implement it in my olap application and which oracle tools can i use to build my olap application.
    and i read that with Analytic workapce i can create what called modeling ,allocation,forcasting,and what-if analysis where i can find good examples about how to implement these issues using AW.
    and i will build my Olap application using olap api and DML so how can i show my reoprts in graphs and crostabs.
    note : i don't need oracle9i documents because i read it and i didn't find any practical examples to deal with AW and its usages.
    Thanks alot
    Ghost

    Analytic Workspaces (Express/multidimensional data objects and procedures written in
    the OLAP DML) are new to Oracle9i OLAP Release 2, you cannot find them in Release 1.
    BI Beans will soon (within a week) introduce a version on OTN that will work with Oracle9i OLAP Release 2.

  • Does  Analytic Workspace Manager 11.2.0.3.0A  work with oracle database 12c?

    hello,
    i would like to know if AWM 11.2.0.3.0A works against with oracle database 12c in pdb mode or not .
    regards
    jm

    I have attempted to connect 11g versions of AWM to 12c and get this error:
    'This version of Analytic Workspace Manager is incompatible with the database instance. The Analytic Workspace Manager version is 11.2.0.3.0 and the database compatible version is 12.1.0.0.0'
    So unfortunately it is not compatible, and there is currently no AWM for 12c
    I also contacted Oracle support and they wont give me any information about a release date or any information on the xml template specification for 12c.
    I guess we will just have to wait till they release a version of AWM that supports 12c...
    Laszlo

  • Using Oracle Analytical Workspace With Excel

    Hi i have created an analytical workspace on Oracle Analytical Workspace, Now suppose i want to access this workspace from Excel , is this possible ?? If so How

    Hi,
    I understand there are three Oracle plug-ins for Excel: OLAP, OBIEE, and Essbase. I presume the plug-in you are using is the OLAP plug-in, which only works with Oracle 10g or earlier. Starting in Oracle 11g, however, Oracle recommends you use the Simba MDX Provider for Oracle OLAP (http://www.oracle.com/us/corporate/press/036550 and http://www.oracle.com/us/corporate/press/173668).
    If you use the MDX Provider, your application can connect directly to the Oracle OLAP cube. Since you are using Excel, your users don't need to connect through Oracle, and you do not need to manipulate the retrieved data before displaying it. Excel and its PivotTables will generate MDX queries against the Oracle database through the MDX Provider, so you don't need to use any plug-ins or APIs. This means you don't need to learn any new menus or APIs -- you just use native Excel functionality. Furthermore, your data is coming live from the Oracle database. Each time you open your workboook, you refresh your data with the Data -> Refresh button, and your spreadsheet data is current, not a stale copy.
    Please let me know if I am missing something in your requirements. Feel free to contact me directly if you have any questions or concerns.
    Mike

  • Problem with Oracle Analytic Workspace Manager ver 10.1.0.4

    Hi,
    I am running Oracle Analytic Workspace Manager ver 10.1.0.4. When I tried getting connected to Analytical workspace I get the following error. Any help could be appreciated.
    java.sql.SQLException: ORA-00904: "O"."SF_VERSION": invalid identifier
    at oracle.olap.awm.businessobject.aw.WorkspaceBO.getWorkspacesOwnedBySchemaInStandardForm(WorkspaceBO.java:191)
    at oracle.olap.awm.navigator.node.WorkspaceFolderNode.getChildren(WorkspaceFolderNode.java:101)
    at oracle.olap.awm.navigator.node.BaseNodeModel.refreshData(BaseNodeModel.java:74)
    at oracle.olap.awm.navigator.node.BaseNodeModel.dTreeItemExpanding(BaseNodeModel.java:221)
    at oracle.bali.ewt.dTree.DTreeDeferredParent.__fireExpansionChanging(Unknown Source)
    at oracle.bali.ewt.dTree.DTreeDeferredParent.setExpanded(Unknown Source)
    at oracle.olap.awm.navigator.node.BaseNode.expandHelper(BaseNode.java:1813)
    at oracle.olap.awm.navigator.node.BaseNode.access$000(BaseNode.java:93)
    at oracle.olap.awm.navigator.node.BaseNode$ExpansionThread.run(BaseNode.java:1763)
    Thanking u,
    Amudha

    There are posts on the OLAP forum covering this problem. Anthony Waite from the OLAP Product Management team has provided the following information:
    e new, default Model View in AWM 10.1.0.4.0 is based upon the OLAP Analytic Workspace API (a.k.a. AW/XML). Just to recap and further clarify my earlier post, you must pass the following requirements in order to use it:
    1) Be sure to be using the Enterprise Edition of the Oracle Database 10g.
    SQL> select banner from v$version where banner like 'Oracle%';
    You should see Oracle Database 10g Enterprise Edition.
    2) Be sure to have the Data Warehouse database configuration or the OLAP Option enabled.
    SQL> select parameter, value from v$option where parameter='OLAP';
    You should see OLAP TRUE.
    3) Be sure that the RDBMS 10.1.0.4 patch set has been completely installed. Users often miss the required Post-Installation Steps such as running catpatch.sql.
    SQL> select comp_name, version, status from dba_registry;
    You should see VALID and 10.1.0.4.0 for the OLAP components.
    4) The Oracle Database must have the compatibility mode of 10.1 to use the Model View as it relies on the unique features found in Oracle Database 10g.
    SQL> select name, value, description from v$parameter where name ='compatible';
    You should see 10.1, not 9.2 or earlier.
    5) Please refer to the patchnote.htm that is bundled with 10.1.0.4.0 patch set. Only you are aware of what type of database configuration you have. You will want to pay close attention to "7.2.1.3 Set the SHARED_POOL_SIZE and JAVA_POOL_SIZE Initialization Parameters" and "7.2.2 Upgrade the Release 10.1 Database".
    Basically, I believe you have missed these required steps after installing the 10.1.0.4.0 patch set from the OUI: (pasted from the patchnote.htm)
    For the full discussion please refer to this link:
    Re: Error trying to Analytic Workspace using latest version AWM 10.1.0.4
    Hope this helps
    Keith
    Oracle Business Intelligence Product Management
    BI on Oracle: http://www.oracle.com/bi/
    BI on OTN: http://www.oracle.com/technology/products/bi/
    BI Beans http://www.oracle.com/technology/products/bib/index.html
    Discoverer: http://www.oracle.com/technology/products/discoverer/
    BI Software: http://www.oracle.com/technology/software/products/ias/devuse.html
    Documentation: http://www.oracle.com/technology/documentation/appserver1012.html
    BI Samples: http://www.oracle.com/technology/products/bi/samples/
    Blog: http://oraclebi.blogspot.com/

  • Oracle Analytic Workspace Manager

    Hi Experts,
    I am trying to find docs/procedures for installing Analytic Workspace Manager. We have Oracle 10 Enterprise version on IBM AIX p6.
    Question really is what do we need to do install Analytic Workspace Manager to create cubes.
    I am not a sys DBA of oracle, can I do something without asking the DBA's help ?
    Before you yell at me :P, please know that I am very new to Oracle (aprt from developing SQL, PL/SQL scripts) /
    Youe help would be greatly appreciated.
    Regards,
    P

    AWM is a client tool and you can install on your desktop without any DBA help. URL below is a good starting point to download and use the tool.
    http://www.oracle.com/technology/obe/10gr2_db_single/bidw/awm/awm_otn.htm
    Thanks,
    Sudip

Maybe you are looking for

  • Every time I try to log into ANY website that is secured, I get an error message "This connection is untrusted."

    The error message is: This Connection is Untrusted You have asked Firefox to connect securely to www.facebook.com, but we can't confirm that your connection is secure. Normally, when you try to connect securely, sites will present trusted identificat

  • ITunes won't open due to Quicktime error

    I recently updated iTunes, and iTunes won't open. It says "Quicktime version 7.0d0 is installed, iTunes requires Quicktime version 7.1.3 or later. Please reinstall iTunes." Well, I tried redownloading iTunes and just the latest Quicktime, but I keep

  • How can you play multiple playlists sequentially?

    Hi everyone, I'm looking for some advice on iTunes. I've looked around the web and the forum but haven't found anything related to this specific question (though I find it hard to believe I'm the first one to ask it). I've created various playlists (

  • MBP's UJ-857D "Superdrive" Doesn't Burn Dual Layer?

    I'm quite confused about my Core 2 Duo Macbook Pro. In system profiler, it says CD-Write: -R, -RW DVD-Write: -R, -RW, +R, +R DL, +RW I insert a DVD+R DL (Verbatim made in Singapore, MKM 001) and when I try to burn something, disk utility starts up, f

  • B2B custom reports

    I am going to be writing a custom report for my b2b messages and was looking at the b2b.B2B_INSTANCEMESSAGE table to build my reports off of. However, I notice that this table is cleared out every day or two. Is there a better table that I could buil