R KIMBALL & OLAP DML QUESTIONS

Hi. I'm a OLAP DML student and like a lot of you (i guess it) i have read Ralph kimbal Books, specifically "The Data Warehouse Lifecycle Toolkit" to undertand multidimesional modeling.
So.... here i a´m questioning to me how do i put all my multidimensional modeling into Analytic Workspaces Objects. My questios are:
1) Does exist some documents that teach how to pass from teory to practice, i mean from multidimensional modeling to AW objetcs? (i can pay for it !!!). (I have read all Oracle Examples - SH and Global) and them always show the same - everyiting is ready to work and work-.
2) Puntually, how do i represent non-hierarchial attributes and how do i use them. I feel that non-hierarchial attributes are not useful to make analysis.... please correct me.
3) How do i define a default herarchy using OLAP DML and if my dimension have more than one hierarchy how do i work wiht them.

Hello Lisandro,
1) The easiest way to create AW objects is to use the AWM application, that comes with online documentation. You can start creating the basic objects (dimensions, cubes, measures, and simple calculations) using the AWM GUI, and continue with the OLAP Worksheet for the other objects, eg. models, aggregation/allocation maps, relations etc. At least the first part of this is also within the scope of a present or upcoming OLAP 10g course from Oracle University.
2) I'm not sure what you mean by your question. Attributes are global to a dimension (which is obvious if you use a value based dimension), otherwise AWM etc. lets you define attribute projections (limit attributes) to hierarchies and levels.
3) You can specifically assign a default hierarchy using AWM, or the OLAP AW Java API, Hierachy setIsDefault() method. Also, there is a Normal Form relation DEFAULT_HIER between a dimension and its default hierarchy, but I don't know if you can just add to this relation to make it work.
Regards, Hans Henrik
Message was edited by:
hheriksen 17-Oct-2005 09:53 CET

Similar Messages

  • OLAP DML question

    Hello,
    I have a question on OLAP DML. Please consider the following example (this is from the sample PERMIT_READ from the supplied global schema). It is an sql import statement which is supposed to be faster than a fetch loop.
    sql import c1 into -
    :_item -
    :_family -
    :_class -
    :_totprod then <product_isvisible (product _item) =  true -
    product_isvisible (product _family) =  true -
    product_isvisible (product _class) =  true -
    product_isvisible (product _totprod) =  true -
    >
    The assumption here is that the cursot c1 has been defined earlier that selects some relational table in four variables.
    The statement then assigns isvisible attribute with true for the different members of product dimension.
    Now here - if the any of the variables (_item, family, class or _totprod) have fetched a value that does not find a match in the dimension I get the following error -
    ERROR: (MXXEQ35) %a %k %j
    %1p is not a valid %2p.
    ERROR: (ORA-34370) Permission to attach analytic workspace GLOBAL.GLOBAL denied by a PERMIT program.
    How can I ignore such errors? and continue with the import execution? If possible, i do not want to use fetch loop.
    THanks.
    pxsheth.

    Here's the full text of the PERMIT_READ program. I added the MATCHSKIPERR but I still get the same errors. I am actually dealing with different dimension here. But that should not matter for the sake of this discussion.
    "* This program scopes the available business_unit dimension members.
    "* This program is called automatically whenever this AW has been attached read-only,
    "* regardless of the mechanism (thru SQL,Discoverer, Spreadsheet Addin, third parties, etc.)
    "* Fine grained access control has been applied to the gc_sec_bu_opr view.
    "* This program reads this table
    "* to determine the business_units and nodes that should be visible to the user
    vrb _bu text
    trap on error
    oknullstatus = yes
    permiterror = no "Do not throw error when attempting to access scoped data
    limit bu to all
    bu_isvisible = NA
    SQL DECLARE c1 CURSOR FOR -
    select business_unit -
    from gcdemo.gc_sec_bu_opr
    sql open c1
    if sqlcode ne 0
    then show sqlerrm
    sql begin
    sql import c1 into -
    :MATCHSKIPERR bu then <buisvisible (bu _bu) =  true>
    sql exception
    sql when others then
    sql null
    sql end
    if sqlcode eq -1
    then show sqlerrm
    SQL close c1
    SQL CLEANUP
    cns bu
    permit read when nafill(bu_isvisible, no)
    alldone:
    return true
    error:
    return false
    "****************************************************************************************

  • How do I view data from OLAP DML program or statement?

    Hi
    I'm struggling to find any information on this topic anywhere on the net:
    How to view data produced by an Oracle OLAP DML program or statement.
    Background :
    I am using the latest AWM to create and maintain dimensions, cubes and measures. However, I've noticed that AWM, Discoverer OLAP, BI Beans, Excel Plug-In et al only provide a fixed set of formula and expressions.
    For example, I wanted to created a Standard Deviation (STDEV) on measure. After much searching I learnt that I could do this by creating a custom measure in AWM by importing a measure defined in an XML dcoument as it's not provided by AWM. The output in Discoverer OLAP on the surface seems to give the correct results, however when drilling from high level to lower level of time time dimension hierarchy Discoverer includes the parent value in the calculation and renders the values incorrect.
    My alternative is to use OLAP DML, as it provides a richer range of formuale and calculations possibilities and I was hoping to use this functionality to do create the measures. I have the distinct impression, however, that OLAP Worksheet is the only interface out there to do this.
    It seems very primitive and limited with regards to data output, almost like SQL*Plus in many ways.
    The burning questions I have are :
    1) Do I need to write DML programs to perform these custom measure calculations and add them to cubes or do I import the custom measures via AWM and XML?
    2) If the answer to question 1 is DML programming, is there a way of viewing the OLAP data output through a GUI interface without embedding the statements in SQL.
    3) Has anyone experienced or noticed the same problem with Discoverer OLAP, AWM Viewer that I mentioned above? i,e, statistical functions performed on whole dimension hierarchy rather than lower levels.
    I'm hoping someone out there knows what I am trying to do or get at. Keith, any ideas or suggestions?
    Thanks
    Kind Regards
    Greg

    Hi Greg,
    There are two ways to achieve what you want. Both require the use of custom calculations which cannot be created via the calculation wizard within AWM. To do this the easiest way is step outside of AWM and use the Excel Calculation utility that is on the OLAP OTN home page:
    Creating OLAP Calculations using Excel
    http://download.oracle.com/otn/java/olap/SpreadsheetCalcs_10203.zip
    Readme
    http://www.oracle.com/technology/products/bi/olap/OLAP_SpreadsheetCalcs.html
    (Oracle OLAP DML Reference contains a list of all the OLAP functions that can be used to create a custom calculation. http://www.oracle.com/technology/products/bi/olap/OLAP_DML_10.2.zip)
    The Excel tool lets you assign your own formula to a measure and then uploads that measure definition into your AW. It is possible to import a custom calculation template into AWM using the menu option on the Calculated Measure node of each cube, but it is safer to use the Excel Worksheet as this directly uses the public XML API and is always best to use a public API rather than hacking XML templates.
    There are two types of custom calculation:
    1) Formula: using a formula you can directly call any of the OLAP functions. For example to create a measure that returns the standard deviation for a measure then you would enter the following as the formula for your calculated measure:
    stddev(sales_revenue, time)
    The easiest way to test if the measure is working as expected is to use the data viewer within AWM.
    2) Programs - if the function you need is not provided or you want to do special processing to return a result you can create an OLAP DML program which can return a result. To do this use OLAP Worksheet to define the program and add a datatype to the DEFINE statement, such as :
    DEFINE PRG_SD_SALES PROGRAM DECIMAL
    In the program return the value you have calculated within your program. Within the program you can do just about anything but be aware that your program is going to fire for every cell within your virtual cube so it must be efficient and fast to execute. For a measure then you would enter the following as the formula for your calculated measure:
    prg_sd_sales(time, products, geographies, channels).
    The actual program code would look something like this:
    DEFINE PRG_SD_REVENUE PROGRAM DECIMAL
    PROGRAM
    argument T_TIME TIME
    argument T_PRODUCT PRODUCTS
    argument T_GEOGRAPHY GEOGRAPHIES
    argument T_CHANNEL CHANNELS
    variable D_RETURN decimal
    TEMPSTAT TIME, PRODUCTS, GEOGRAPHIES, CHANNELS
    do
    limit PRODUCTS to T_PRODUCT
    limit CHANNELS to T_CHANNEL
    limit GEOGRAPHIES to T_GEOGRAPHY
    limit TIME to T_TIME
    limit TIME add descendants using TIME_PARENTREL
    limit TIME keep TIME_LEVELREL 'CAL_MONTH'
    D_RETURN = stddev(SALES_REVENUE)
    doend
    return D_RETURN
    END
    This code computes a standard deviation the all months within the specified time range, at year level for all 12 months, at quarter level for the three months within the quarter ans returns NA at the month level.
    As the code executes within a implicit loop you can only change the status fo dimensions that for part of that implicit by using the TEMPSTAT command. To test the program at the command line use the OLAP Worksheet and the SHOW command to just return one cell of data, DO NOT SIMPLY USE THE RPR COMMAND because you will have to wait for the whole cube to be returned. If you want to use the RPR command make sure you limit your base dimensions first! You can use PRGTRACE to debug your program code it is not working as expected. Again, the easiest way to test if the measure is working as expected is to use the data viewer within AWM, although this will not return debug information so send all your debug output to a file to capture any errors and/or trace the execution flow.
    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/

  • Tip: Improving The Performance Of OLAP DML Table Inserts

    Quick Oracle OLAP Tip:
    If you need to write the contents of a variable, or a group of variables, to a relational table, you would normally use the SQL INSERT command. Normal practice is to loop round all of the variables' dimension values, inserting the variable values into the relational tables one by one, until the variable has been completely loaded into your database table.
    Oracle 9i OLAP however introduces two new commands, SQL PREPARE and SQL EXECUTE (http://download-west.oracle.com/docs/cd/B10501_01/olap.920/a95298/sql5.htm#1027902) , that allow us to prepare our INSERT statement in such a way that it uses bind variables to pass values to the Oracle tables. Bind variables are generally a 'good thing' and reduce the amount of time Oracle has to spend parsing your SQL insert statements. In addition, you can specify additional options with SQL PREPARE to specify 'direct path' insertions (quicker as they bypass the normal SQL engine and directly load data into Oracle blocks), nologging (to eliminate redo log generation), and to nominate individual partitions to load data in to. It's worth noting that there's an error in the current OLAP DML documentation that suggest that any OLAP DML insert operation into an Oracle table locks the entire table, preventing other AW processes from inserting into the table until you commit. This is actually incorrect, and full-table locking only occurs if you use the DIRECT=YES option, which locks the table in the same way that SQL*Loader locks the table as they both use the Direct Path API.
    However, an even better solution than using SQL EXECUTE and SQL PREPARE is to use the OLAP_TABLE feature in Oracle 9i (http://download-west.oracle.com/docs/cd/B10501_01/olap.920/a95295/olap_tab.htm#73729) to create a view against your AW variable, then use this view as the source for a "INSERT INTO table SELECT * FROM source" SQL statement, optionally using the /*+ INSERT APPEND */ option if you want to carry out direct path insertions. By using OLAP TABLE and having the SQL engine insert multiple variable values into our target table, rather than having an OLAP DML program loop through the variable and carry out multiple single-row insertions, we were able to increase our write performance by an order of magnitude compared to our earlier SQL INSERT command. One thing to bear in mind though is that, if you are running many copies of the program concurrently, using direct path insertions may well cause lock contention, as each process will obtain an exclusive table lock while the direct insertion takes place. In the case of concurrent processes, it may be better to use conventional path insertions (but still use SQL PREPARE and EXECUTE, or OLAP TABLE) as these only require row-level exclusive locks.

    you can use Execution plain
    http://stackoverflow.com/questions/7359702/how-do-i-obtain-a-query-execution-plan
    and add index.
    Index according to the fields you ask queries can improve performance greatly larger!
    You can use the statistics for building indexes:
    http://www.mssqltips.com/sqlservertip/2979/querying-sql-server-index-statistics/
    Tzuri Ben Ezra | My Certifications:
    CompTIA A+ ,Microsoft MCP, MCTS, MCSA, MCITP |
    FaceBook: Tzuri FaceBook | vCard:
    Tzuri vCard | 
    Microsoft ID:
    Microsoft Transcript 
     |

  • Help on OLAP DML function – "joinchars"

    Hi,
    We have built a cube called 'CubeTest' which has a measure called 'TestMeasure' of decimal data type, using Oracle AWM v10.2.0.3.0A.
    Now, I am using "Oracle OLAP Calculations v1.2.5", as available on OTN homepage, to define my own calculated measures using OLAP DML for this cube.
    I have defined the following two measures (for both, Calculation Type is 'Equation' and both are using free-form equations defined over TestMeasure):
    1. Calculated_Measure1
    2. Calculated_Measure2
    Now, I want to define a third calculated measure in a way that it represents a concatenation of the above two measures suffixed with some standard text.
    e.g. A Typical value of the third calculated measure will be like:
    Calculated_Measure1 + 'ABC' + Calculated_Measure2 + 'XYZ'
    Here, the '+' sign indicates the idea of concatenation.
    To achieve the above result, I am using the OLAP DML function "joinchars" to define a free-form equation like the one below:
    joinchars(Calculated_Measure1,'ABC',Calculated_Measure2,'XYZ')
    Now, the issue is that calculation like the one above, using joinchars is not being created successfully. I tried pre-qualifying (and not pre-qualifying) the names of the calculated measures with the cube name and also experimenting with the “Show” command. Also, once the calculation definition fails to get created, I am not even being able to attach my AW in R/W mode as I get the error as below:
    oracle.AWXML.AWException: java.lang.NullPointerExceptionat oracle.AWXML.AW.readAWDefinitions(AW.java:1339)at oracle.olap.awm.dataobject.aw.WorkspaceDO.getModelAW(WorkspaceDO.java:803)at oracle.olap.awm.dataobject.aw.WorkspaceDO.getModelAW(WorkspaceDO.java:749)at oracle.olap.awm.navigator.node.WorkspaceNode.getModelerViewChildren(WorkspaceNode.java:368)at oracle.olap.awm.navigator.node.WorkspaceNode.getChildren(WorkspaceNode.java:341)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:2186)at oracle.olap.awm.navigator.node.BaseNode.access$400(BaseNode.java:109)at oracle.olap.awm.navigator.node.BaseNode$ExpansionThread.run(BaseNode.java:2136)Caused by: java.lang.NullPointerExceptionat oracle.AWXML.AW.readAWDefinitions(AW.java:1313)... 11 more
    For the above issue, I have the following questions to seek your help on:
    1. First, obviously, to know what is wrong with the usage of "joinchars" in this scenario.
    2. If we use Oracle OLAP Calculations v1.2.5 to define any calculations, and if for some reason, the calculation is not defined successfully, is there any way to see what went wrong and where (this is because if your calculation definition fails, the Oracle OLAP Calculations v1.2.5 utility just exits out without giving any significant information on the reason for failures).
    3. When we create any new calculation and then click on “Define Calculations” button, the Oracle OLAP Calculations v1.2.5 utility prompts us with the message “Do you want to update the AW views after creating the calculation (Y/N)? – Can you please help me with the details on the implications of stating a Y or N to this message.
    Any help on these questions is much appreciated.
    Thanks and Regards,
    Piyush

    Piyush..
    The Error you get on using the rpr command is a display error, its not a functionality issue. Think of this as something similar to the sqlplus buffer overflow issue if you have a pl/sql program which outputs a lot of dbms_output.put_line statements.
    So if you get a display error, restrict the cube or the dimensions to a reasonable number and check your output. Example: Take every user dimension and restrict them to a few values... (say, 5 products, 1 channel, 1 location, 1 organization, 2 time periods)..
    Rpr <<expression>>
    will return the expression for every cell in status.. Depending on the dimensions that the expression is based on, for every dimension depending on the number of values (members) in status, the <<expression>> is evaluated and output'ed.
    No of cells in report is Cross product of each dimensions status (statlength).. For example above.. 5*1*1*1*2 = 10 cells.
    Shw <<expression>>
    will return the expression for the first cell in status.. 1st value (member) in status for every dimension that <<expression>> depends on.
    Hence Shw <<expressions>> does not lead to a display error since the output is restricted (small).
    Using the OLAP Calc utility to define the formula (the utility uses java olap apis), you may need to do something to protect the single quotes so that the expression gets evaluated with single quotes in the OLAP DML formula.
    You can try...
    joinchars(CUBE1_CMEAS1, \'ABC\', CUBE1_CMEAS2, \'XYZ\')
    If above doesn't work, just ask for help regd how to translate a formula expression containing single quotes (formula is correct in OLAP DML) into the AW via the Spreadheet utility.
    HTH
    Shankar

  • Equivalent to ROLAP :insert, update, delete in OLAP DML?

    I have a ROLAP star schema. The process update is in Real Time using triggers in the operational tables. When an update in the operational table occur the trigger call a store procedure where : 1- find de fact row using dimensions key, 2-the messure value is update.
    Question:? How to do the same in MOLAP 11g . What are the OLAP DML commands to use?
    Thank's

    in these case what about data duplication? :
    1- the production db
    2- the star schema
    3- the molap cube
    i have 12 fact tables with millions of records.
    my abstract scenario view:
    production table:
    pk field1 field2 field3
    1 A B Z
    2 A B Y
    3 A B X
    4 A B Z
    5 A C Z
    6 A C Z
    7 E B Z
    8 E C Y
    star schema:
    dim_field1 table:
    pk field1
    1 A
    2 E
    dim_field2 table:
    pk field2
    1 B
    2 C
    fact table:
    pk id_field1 id_ field2 count
    1 1 1 4
    2 1 2 2
    3 2 1 1
    4 2 2 1
    my abstract real time update process:
    case a) change in the 4 row production table: from field2 value (B) to field2 value(C)
    step 1: search in the fact table with id_field1 value (1) and id_field2 value (1).. row 1
    step 2: count=count-1= 4-1 ( if result count=0 then delete these row 1 )
    step 3: search in the fact table with id_field1 value(1) and id_field2 value(2) ...row 2
    step 4: if that combination exists
    then count=count+1
    else insert a new fact row with count=1 and id_field1 value(1) and id_field2 value(2)
    is possible to do that with OLAP DML , please a need an example about how to do?
    Thanks

  • Creating KPI using OLAP DML

    Hi all,
    How do we develop KPI (Key Performance Indicators) using OLAP DML in AWM 10g R2 (Analytical Workspace Manager)? I am new to this tool. Can anybody help me with a sample code. If there is any other way of implementing KPI in Oracle BI, kindly quote that example as well.
    Kieth, if you can answer my question and give me a sample OLAP DML code, i will be more than happy.
    Thanks in advance

    In 10g this is not quite as simple as 11g. To create a custom measure that calls an OLAP DML program you need to either:
    1) Download the Excel Utility from the OLAP home page on OTN:
    http://download.oracle.com/otn/java/olap/SpreadsheetCalcs_10203.zip
    but check the readme first:
    http://www.oracle.com/technology/products/bi/olap/OLAP_SpreadsheetCalcs.html
    or
    2) Use Warehouse Builder to manage your AWs. OWB allows you to automatically create custom calculations that call OLAP DML programs.
    If you look at this posting on the Oracle OLAP Blog you will find an example of how to create an OLAP DML program and reference it from a calculated measure:
    http://oracleolap.blogspot.com/2008/03/creating-calculated-measure-cube.html
    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

  • OLAP DML Programs

    Hi,
    I am very much new in OLAP. My question is that in the OLAP Analytics workspace, there is a node "OLAP DML Programs ".
    Could you please tell me when it is used ? Can this DML program use for calculating program ?
    Can we say , it is the language to replace general ETL process for populating the FACT & Aggregrate table ? Is it possible by writing the DML language , we can populate the FACT & Aggregrate table ? If it is then please give an example and if not then clarify when it is used ?
    Many Thanks,
    Pallab Mandal

    This can be done very easliy. Here is what I did.
    1. Create a table called OLAP_LOG - with columns OLAP_DATE, OLAP_MESSAGE, OLAP_PROGRAM. Note that this is along the same lines as olapsys.XML_LOAD_LOG table.
    2. In OLAP create a function (lets call is OLAP_LOG_MSG) which will take two arguments which are text values (one for a message, second one for program name).
    3. Within OLAP_LOG_MSG olap program you will do an INSERT statement into OLAP_LOG table. In the OLAP_DATE column you can put in SYSDATE, the next two columns will be populated by the two arguments.
    4. In all your olap programs, wherever you are doing a SHOW statement at the same place also do a call to OLAP_LOG_MSG with the arguments. I put it in all my olap programs, including the error section.
    It has worked out very very very well....
    Enjoy!!!
    - Nasar
    .

  • OLAP DML - aw access via AWM

    Hi All,
    Could you please clarify if I can access the AW created and maintained by OLAP DML via AWM?
    I created an AW and some dims and cubes inside it, by using OLAP Worksheet, and cannot see these objects in AWM?
    Kind Regards, Neelesh

    That is another question. As long as you use AWM to define the dimensions, attributes, measures, and cubes, then you should be fine. And you are correct in saying that the OLAP DML can be used as a calculation language to extend the model defined through AWM. (You can do many other things, too, with this 30-year-old language, but then you really are on your own.)
    There are two basic points of integration between the objects defined in AWM and objects you define yourself using OLAP DML.
    (1) Calculated measures can be directed to FORMULAs that you define. This, in turn, gives you access to PROGRAMs and other structures. There is also a way, not exposed by AWM, to support calculated attributes (in 11.2.0.2).
    (2) Cube Build Scripts can execute OLAP DML commands during a cube build. This gives you a way to link into a forecasting program, for example.
    In the other direction you can use the (new to 11.2.0.2) objorg function in OLAP DML to get access to the structures defined through AWM. (This is better than hardcoding the generated names.)
    So the real issue is how you edit these calculation objects through AWM. One answer, and it is not a bad one, is through the OLAP Worksheet. The EDIT command will bring up a PROGRAM editor, for example.
    For a non AWM answer you could try the old OX program, which is available from here: http://www.oracle.com/technetwork/database/options/olap/olap-downloads-098860.html . This provides a full view of all the objects in an AW. It is quirky, but I like it.

  • Creating a Cube using pure OLAP DML

    This should be quite simple, but neither reading OLAP_*.pdf nor googling helped me, so maybe you can give me a hint where to look:
    I want to create dimensions, populate them, create a cube, and finally populate it, using just OLAP DML (i.e. no DBMS_AW or CWM/CWM2 packages).
    1) How can I execute OLAP DML? Right now I'm using sqlplus, wrapping each line in execute dbms_aw.execute(...);
    There's some better way, right? :)
    2) Can someone give me a link to a simple tutorial, showing how to create a cube et c.? Right now I'm as far as
    AW CREATE olaptest1
    DEFINE dimfoo DIMENSION TEXT AW olaptest1
    DEFINE dimbar DIMENSION TEXT AW olaptest1
    SQL SELECT DISTINCT(foo) FROM footable ORDER BY 1 INTO :dimfoo
    (the latter one fails, telling me that "quux is not a vaild olaptest1!dimfoo")
    3) Have I understood this correctly: I only need an Catalog if I want to work with AWM or DBMS_AWM, not if I just use DML?

    I'm not sure exactly why you want to do this.
    I guess I didn't explain very clearly :)
    We (i.e. the company I work for) creates software (in C++) which needs to work with a lot of data which is in an Oracle-DB.
    As the analysis done by the SW would profit (performance-wise) from the layout of the data in an cube, we want to get the data in a cube.
    But information like the number of dimensions isn't known beforehand (as that's sth. that's dependent on the site the customer uses the SW on, and can
    change with time), the software has to do the creation of dims and the cube itself.
    (For the curious ones: http://www.centerpoint.eu.com/ )
    And as OLAPI isn't available for C++ (at least afaics), I'd really want to do this in PL/SQL.
    If you do use standard form, you then allow yourself the
    option of using the various tools later
    That's really not needed :)
    You can always build the original AW using
    AWM, then save the build script it generates, and use
    that to do subsequent builds.
    Is that build-script in OLAP DML? How do I save it?
    BTW, in addition to the SPL INFILE command, there is
    the DBMS_AW.INFILE plsql routine, which saves you
    some quotes :-).
    dbms_aw.execute('infile ''work_dir/my.inf''') vs
    dbms_aw.infile('work_dir/my.inf')
    I hate superfluous quotes :)
    Thanks Jim!

  • Creating variables in OLAP DML - 11g

    Hi Experts,
    My understanding is that the OLAP metadata is exposed to GUI via formulas only. if I create a variable in OLAP DML worksheet, is it possible to expose it to cube view, and awm by formulas/programs etc?
    Kind Regards

    In OLAP Worksheet you can select 'SQL Mode' from the Options menu and run the SELECT statement there. Alternatively you can run the SELECT statement from inside an olap dml PROGRAM. Here is an example.
    DEFINE LIST_AWS PROGRAM
    PROGRAM
      VARIABLE _owner    TEXT
      VARIABLE _aw       TEXT
      VARIABLE _errortext TEXT
      VARIABLE _id_width INTEGER
      TRAP ON HADERROR NOPRINT
      " SQL Names are 30 characters long
      _id_width = 30
      " Declare a SQL cursor to get the list of AWs
      SQL DECLARE AW_SQL CURSOR FOR -
      SELECT OWNER, AW_NAME FROM ALL_AWS
      " Open the cursor
      SQL OPEN AW_SQL
      " Loop through the results
      WHILE SQLCODE EQ 0
      DO
        IF _aw EQ NA
        THEN DO
               " First loop, so print report headings
               SHOW JOINCHARS(RPAD('OWNER', _id_width) ' ' 'AW')
               SHOW JOINCHARS(RPAD('-' _id_width '-' ) ' ' RPAD('-' _id_width '-'))
             DOEND
        ELSE DO
               " Print aw and owner names
               SHOW JOINCHARS (RPAD(_owner, _id_width) ' ' _aw)
             DOEND
        " Fetch next row into local varialbes
        SQL FETCH AW_SQL INTO :_owner, :_aw
      DOEND
      " A SQLCODE of 100 is OK,since it means end of records
      IF SQLCODE EQ 100
      THEN DO
             SQL CLOSE AW_SQL
             SQL CLEANUP
             RETURN
          DOEND
      HADERROR:
       SHOW SQLERRM
       SQL CLEANUP
    ENDAnd here is what I see when I call it as the GLOBAL user.
    call list_aws
    OWNER                      AW
    SYS                      EXPRESS
    SYS                      AWMD
    SYS                      AWCREATE
    SYS                      AWCREATE10G
    SYS                      AWXML
    SYS                      AWREPORT
    GLOBAL                      GLOBAL

  • [OLAP DML] display on screen the output while the program is running

    Hi,
    I'm running a script in AWM that is quite long, and I've placed some few 'show' so that I know what the program is doing, but it won't show on the screen the outputs until the program ends. I guess it writes all the outputs in a kind of buffer and release the content of the buffer at the end of the program.
    How could I have it to release this buffer continuously?
    Thanks

    i think the relational analogy would be an anonymous pl/sql block executing a list of commands while outputting a list of useful dbms_output.put_line log statements:
    Just as with SHOW and olap worksheet cmd line, you cant see the running dbms_output log while the pl/sql program is running... you need to wait for it to complete before you can see the log.
    You can write to a file and close/exit the file each time or you can write to log table and commit each time but i guess, some such heavy lifting is needed if you want to track the long running process mid-way.
    NOTE: For regular operations like dbms_cube.build load/forecast/allocate process/steps, you can always run queries against CUBE_BUILD_LOG etc mid-way. But if it's pure olap dml actions being performed then no neat pre-built handle to check things mid-way exists.

  • How to generate OLAP DML code or CWM2 code outside of workspace manager 10g

    I am using AWM 10.2, where I am creating cubes and dimensions etc. I can export the workspace into XML, but i want more, i want to generate definition of my OLAP, i want to see OLAP DML code for creating my workspace. Anybod has an idea ?
    1) How can I generate OLAP DML definition of my existing workspace ?
    Second thing is, that I really don't understand the concept of CWM2, what is this good for ? Is my AWM automatically generating some CWM2 statements and executing it ? Where can i see them ? Why do i need another logical CWM definition when I have regular OLAP definition ?
    2) What is the role of CWM2 in OLAP ? How can i generate CWM2 code outside of my existing workspace ?

    The DESCRIBE command will give you the definition of the object but it won't tell you anything about how objects should be populated. The API for Analytic Workspaces (AW/XML) takes responsibility for both object creation and object maintenance.
    What is it that you might want to accomplish by using OLAP DML to create the objects?

  • Whitepaper/Info Budgeting/Planning/Writeback via Oracle OLAP DML

    Hi,
    does anyone know of any whitepaper, manual section, general information regarding writeback, planning, budgeting using Oracle OLAPs DML API? We would like to upgrade our proprietary DataAccess-Layer, which interfaces to Oracle OLAP via the DML-API, to allow writeback.
    As said the documentation for this topic seems to be scarce to none.
    Just to give an example: it is not possible to write back values to the base measures UNITS_CUBE_SALES/COST/UNITS of the UNITS_CUBE in global AW, since all of them are FORMULA objects. The underlying variable to which you can assign values is in 10g UNITS_CUBE_SALES_STORED, whereas in 11g you would limit the ALL_MEASURES_DIM object to the SALES measure and assign a value to a variable named UNITS_CUBE_STORED. Basically this is information I was fishing out of this forum, but didn't find documented in the Oracle manuals.
    Therefor I am wondering, if writeback via the Oracle OLAP DML API is something, which is officially not supported? Or maybe I just didn't look in the right places to find documentation.
    BTW: I am looking at this topic from an ISV point of view.
    Best regards
    Ralf
    Edited by: Ralf Steinstraesser on Aug 18, 2009 5:15 AM

    hello,
    i can only speak about 10 G
    There are 2 modes to attach an aw for writing data.
    http://download.oracle.com/docs/cd/B19306_01/olap.102/b14346/dml_x_arcsin011.htm#i1016126
    1)In rw mode
    Only one user can have an analytic workspace open in read/write at a time
    2)in multi mode
    A workspace that is attached in multiwriter mode can be accessed simultaneously by several sessions
    you find documentation for multi write
    http://download.oracle.com/docs/cd/B19306_01/olap.102/b14346/dml_appcats003.htm#CHDJFJHD
    hope this help you
    jean marc

  • Anyone know of a good OLAP DML/DDL  tutorial?  (and NOT reference guide)

    In addition to Analytic Workspace, I am trying to learn how to build cubes using just the OLAP DML / DDL language.
    Oracle and others have published a great deal of reference material on the language of OLAP DML / DDL but I can't find any real tutorials that guide me logically thru the process of creating cubes and all that goes with it (defining dimensions, hierarchies, measures, calculations etc..) All the reference material is spread out in bits and pieces and difficult to efficiently learn from. Does anyone have any good OLAP DML / DDL tutorial links they could recommend? Thanks.

    John W wrote:
    Oracle and others have published a great deal of reference material on the language of OLAP DML / DDL but I can't find any real tutorials that guide me logically thru the process of creating cubes and all that goes with it (defining dimensions, hierarchies, measures, calculations etc..) All the reference material is spread out in bits and pieces and difficult to efficiently learn from. Does anyone have any good OLAP DML / DDL tutorial links they could recommend? Thanks.This is a very difficult task. The OLAP DML/DDL only supports basic multidimensional variables, dimensions (very primitive), and relations. The externally visible cubes and dimensions are a construct of a lot of component objects (a dimension has many primitive dimensions and relations put together to create the higher level DIMENSION that goes with a cube; a cube has multiple variables and other pieces that get put together) in the AW, plus a bunch of metadata objects in the Oracle dictionary.
    You really don't want to try to create your own and expect them to interact with the OLAPI interfaces. It is possible to construct your own version of things, but you'd also have to do your own view generation, etc. There are applications out there that are created from scratch, but they are completely from scratch (including whatever interactions they have via SQL). Whatever you create will not work with any of the Oracle-provided interfaces, nor the recently-announced Simba MDX package.
    Jim

Maybe you are looking for

  • How can i play wordsplosion on my imac?  The apps in the iTunes store are for iPad or iPhone.

    How can i play wordsplosion on my imac?  The apps in the iTunes store are for iPad or iPhone.

  • Using OpenGL 3+ with intel xf86-video-intel

    I'm running Arch on a 2008 macbook with the following graphics card: 00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) (rev 03) I need to get OpenGL 3+ working on my computer for a class,

  • Cash Flow Template Set Up

    I am trying to set up a cash flow template using GL Accounts (not cash flow line items). In making the Cash Flow Statement some items should show up as a negative and some should show as a positive Eg: Cash from receivables + and Cash to vendors - .

  • -bash: /usr/bin/grep: Bad executable (or shared library)

    I am receiving these error messages when I attempt to use grep, egrep, or fgrep from the terminal: -bash: /usr/bin/grep: Bad executable (or shared library) -bash: /usr/bin/egrep: Bad executable (or shared library) -bash: /usr/bin/fgrep: Bad executabl

  • What is maximum filesize of ULOG could be ?

    I have some question about ULOG filesize. After ULOG file is biger and bigger until 2 GB, I can not to build tuxconfig file. Then after I delete existing ULOG file and rebuild tuxconfig again, it's ok. If you have an any ideas or recommend , please a