Data Storage in Essbase -- Non Numeric

Hi Experts,
Could you please guide me how the non numeric data is stored in Essbase (which is not metadata). Ex: Dates, Text Etc...
It it Essbase first convert date format into numeric and then store or something else???
Thanks
N Kumar

From version 11, Essbase provides some support for text and date measures natively.
Text measures allow a predefined set of text values to be mapped to a predefined set of numeric values - there is no native support for loading 'free text'. The text measure 'mappings' are stored in the Essbase outline (.otl), but for both text and date cases the value itself is stored numerically, like any other data cell.
You can also use formats to convert numeric values to text when reporting. Again, Essbase 'really' only stores data as numbers.
Check out the following page from the latest Database Administrators Guide, which covers all these topics: http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_dbag/frameset.htm?dtypmeas.html
Edited by: TimG on Jul 8, 2010 5:30 AM
John got there before me. Still, follow the link to the DBAG!

Similar Messages

  • Data storage in Essbase

    Hi Experts,
    Could you please guide me how the non numeric data is stored in Essbase (which is not metadata). Ex: Dates, Text Etc...
    Thanks
    N Kumar

    Traditionally, we learned that Essbase could not store text. This is because of the way the database engine is optimized for financial data. This is still true, although in version 11, Oracle has added the ability to store “typed measures,” which means dates or enumerated strings. This is nice, but an enumerated string must be defined and stored in a separate relational database. With the Store Text In Essbase Add-In, you store the string directly in Essbase. The disadvantage of this add-in, however, is that it is limited in the size of strings it can store without spanning multiple members (see the “Sample” workbook tab in the Excel sheet for examples.)
    If you think of the doubles that are stored in Essbase as strings instead of numbers, you can see that they are composed from the Arabic numerical symbols 0123456789. This is their symbol set. In the Latin alphabet we use in English, there are 26 letters, or symbols. Combining lower and uppercase letters, the Arabic numerals, and a few punctuation characters, we get 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ., - The Store Text In Essbase add-in simply compresses a string encoded in one symbol set (e.g., the Latin alphabet) into the smaller symbol set that Essbase is able to store. That process is reversed to read the stored string back out of the database. The add-in uses two functions, one to compress the string (doubleFromString) and one to decompress it (stringFromDouble.) Here is their definition:
    Function doubleFromString(ByVal strIn As String, ByVal strSymbols As String)
    Function stringFromDouble(ByVal dblInTotal As Double, ByVal strSymbols As String)
    It is only possible to store 8 characters in the symbol set above per outline member, so a string longer than 8 must be chopped into pieces that are stored across multiple outline members (see the “Sample” workbook tab for examples.)
    For more info visit:
    http://code.google.com/p/store-text-in-essbase/
    Cheers...!!!

  • Non Numeric data

    Hi,
    Why Essbase database can store only "numeric" data is there any workaround to store "non-numeric" data in Essbase

    To expand on this, an analytical view of such data is questionable. While you could aggregate/consolidate and even analyze non-numeric (i.e. categorical responses), the business needs of such analysis are almost always better served with more appropriate tools.
    Compare this with regions, time, accounts -- where the structure of the database has an inherent consolidation or mathematical relationship. Deriving value from these numeric relationships is where multidimension analysis thrives.
    With text information, you would need to create artificial relationships for the different "values" that at best represent weighted values, not completely useless but again, the right tool would do you better. It seems to me like another case of using a hammer to pound a screw in because the screw driver is still in the tool box.
    Some over-eager (read: young) essbase developers love to throw the database logs into essbase cubes, too -- which is rather silly to me (if they don't have enough to keep them busy answering the user's needs, perhaps they should look for additional users...). The two issues have one thing in common: allowing the technology to dictate effort, rather than responding to a business need with targeted solutions.
    Hmmm, maybe I'll create a cube to store the number of added members by dimension and the database statistics across time so I can prove to my boss that I'm wasting enough time on boondoggles every day. Well, at least THAT data is numeric...
    The above was all said tongue in cheek -- you can use oddball things like this to answer some interesting questions. I just think that if you have questions like that, you should go talk to the CFO and finance departments a bit more to see what kind of questions you COULD be answering.

  • Error while pulling data from an Oracle database. ORA-01858: a non-numeric character was found where a numeric was expected

    I'm trying to pull data from an Oracle database using SSIS. When I try to select a few fields from the source table, it returns the following error message:
        [OLE DB Source [47]] Error: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E14.
        An OLE DB record is available.  Source: "OraOLEDB"  Hresult: 0x80040E14  Description: "ORA-01858: a non-numeric character was found where a numeric was expected".
        An OLE DB record is available.  Source: "OraOLEDB"  Hresult: 0x80004005  Description: "ORA-01858: a non-numeric character was found where a numeric was expected".
    The source columns are a combination of numeric and texts, and I've also tried selecting one of them, which didn't work. I'm using the Oracle client 11.2.0.1, and it works fine with any other data sources I have connected to so far. How can I resolve this
    error?

    Hi H.James,
    According to your description, the issue is a non-numeric character was found where a numeric was expected while pulling data from an Oracle database in SSIS.
    Based on the error message, the issue should be you are comparing a number column to a non-number column in a query. Such as the query below (ConfID is a number, Sdate is a date):
     where C.ConfID in (select C.Sdate
                       from Conference_C C
                       where C.Sdate < '1-July-12')
    Besides, a default behavior for the Oracle OleDb Provider that change the NLS Date Format of the session to 'YYYY-MM-DD HH24:MI:SS can also cause the issue. For more details about this issue, please refer to the following blog:
    http://blogs.msdn.com/b/dataaccesstechnologies/archive/2012/01/20/every-bug-is-a-microsoft-bug-until-proven-otherwise.aspx
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Non-server data storage

    A friend of mine is developing a database for a specific environment:
    A small number of peer-to-peer networked Windows computers in a small office, with no dedicated servers - each computer acting as an individual's workstation. They want a "central" database to store client information etc, with an interface they can all use at once to access and change the data.
    Given the nature of the environment, my first thought was that some sort of file-based data storage (not requiring a server process) would be most appropriate - Access, csv, XML....but I'm not intricately familiar with JDBC support for these mechanisms, so wasn't sure what to recommend specifically.
    They are not willing/able to spend any money on this solution, so it must use the current environment. Can someone recommend a data storage method and point me to an appropriate JDBC driver?
    Oh, and while I have your attention - anybody know of a good CSV parser? I'm currently splitting a line of data by commas, but it's also splitting strings with commas in them...

    A friend of mine is developing a database for a
    specific environment:
    A small number of peer-to-peer networked Windows
    computers in a small office, with no dedicated servers
    - each computer acting as an individual's workstation.
    They want a "central" database to store client
    information etc, with an interface they can all use at
    once to access and change the data.
    based on this i have a non-Java solution to suggest.
    use MS-Access and IIS to develop and deploy an intranet.
    there are several pros to this solution that i see
    - You can develop and deploy an intranet using web browsers as clients very quickly and relatively cheaply
    - an intranet (series of web pages) vs. a full blown application may well be easier to make changes to
    - having the data in a RDBMS (Access) which will be cost effective in this case also will make it relatively simple to upgrade port the system later
    now i like programming in java as much as the next person but from your requirements it sounds like writing an application might be overkill. in my experience doing an intranet like this is a pretty good solution.. you don't have to install anything on the clients... you already have the software for the server (if you don't have IIS most versions of Windows now have PWS or Personal Web Server which will work for this)... the important thing is to have a good database design so that you can make changes or port the client easily later if you need to.

  • Is it possible to upload non-numeric data into Planning from ODI?

    Dear All,
    I have problem to upload non-numeric data into planning?
    Regards,
    Thomas

    I am not sure what that has to do with non-numeric data and planning.
    If you want to move your ODI environment then have a look at this post :- Re: move full ODI environment to another Machine...
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • How do I import non-numeric data into DIAdem?

    I have some non-numeric data in an Excel file which I would like to import into DIAdem. DIAdem recognizes the file and imports some of the data, but it only imports those cells that are purely numeric. Cells containing non-numeric characters are ignored. But I need that non-numeric data! How do I force DIAdem to import everything? (Some controls appear in the import dialog that seem like they might be useful here but they're greyed out.)

    Hi There,
    You can not load text columns from ASCII files into DIAdem 8.1 DATA channels (numbers only). But the ASCII Import Wizard will let you send those text values to either a separate ASCII file, which DIAdem can use to put them on a graph as labels, or to a DIAdem string array, which DIAdem can use to display them at various places in its environment.
    The below attachments demonstrate reading an ASCII text column into a DIAdem string array and displaying the values on a DIAdem table in GRAPH. Note that the index values of the string array are placed in a DIAdem DATA channel.
    Ask if you have further questions,
    Brad Turpin
    NI
    Attachments:
    ASCII_Text_Column.txt ‏1 KB
    ASCII_Text_Column.STP ‏1 KB
    ASCII_Text_Column.LPD ‏3 KB

  • Numeric and Non Numeric Data

    Hi,
    I have to check the data in Varchar2 field idtr and if it is numeric some actions are to be done on the data and if it is numeric some other different action is to be done.
    So I used some logic for finding whether the data is numeric or non numeric which I got it from the net.
    Now my problem is all decimal numbers are to be treated as numeric but this logic is treating decimals as non numeric and I am not able to proceed further.
    Can some one help me out in this issue.
    Below is the Logic and actions I am doing
    select      pol_id,lpad(substr(trunc(to_number(idtr),0),1,10),10,0),idtr
    from           pl_insrd
    where      length(idtr) - length(translate(idtr,chr(1)||translate(idtr,CHR(1)||'1234567890',CHR(1) ),CHR(1) ) ) = 0
    and           length(idtr) > 9
    UNION
    select      pol_id,lpad(trunc(idtr,0),10,0),idtr
    from           pl_insrd
    where      length(idtr) - length(translate(idtr,chr(1)||translate(idtr,CHR(1)||'1234567890',CHR(1) ),CHR(1) ) ) = 0
    and           length(idtr) < 10
    UNION
    select      pol_id,substr(idtr,1,10),idtr
    from           pl_insrd
    where      length(idtr) - Length(TRANSLATE(idtr,CHR(1)||TRANSLATE(idtr,CHR(1)||'1234567890', CHR(1) ), CHR(1) ) ) > 0
    and           length(idtr) > 9
    UNION
    select      pol_id,lpad(idtr,10,0),idtr
    from      pl_insrd
    where      length(idtr) - Length(TRANSLATE(idtr,CHR(1)||TRANSLATE(idtr,CHR(1)||'1234567890', CHR(1) ), CHR(1) ) ) > 0
    and           length(idtr) < 10

    <quote>One I provided was I found at asktom.oracle.com</quote>
    So? ... If you'd provided a link then one could see the entire context for that particular snippet of code and decide if it is indeed appropriate. As shown by Angus it is not always appropriate ... add to that, NULL is not a number as that function reports.
    <quote>It's using replace and transalate functions which are less expensive then To_Number function.</quote>
    Proof?
    <quote>I agree with you [John], that's the best function you can use to validate data for numeric.<quote>
    I don't agree to_number() is [always] the best way ... the easiest way? ... maybe.
    My personal view is that there is no universal way to determine if a string, in all circumstances, can be translated into a number. One has to have knowledge of the source data domain ... only you know if, in your particular circumstance, '1e4' is or is not a NUMBER represented as a string.
    flip@FLOP> select to_number('1e3') from dual;
    TO_NUMBER('1E3')
    1000

  • Testing for non-Numeric Data in a varchar2

    Hello -
    What is the easiest way to test see if there is non-numeric data in a varchar2 column? The column holds ssn values, but I am unable to convert these values to numeric data, because somewhere the column is storing non-numeric data.
    Thanks in advance.

    Maybe something like this ?
    SQL> create or replace function test_num (var1 in varchar2) return varchar2
      2  is
      3     num     number;
      4  begin
      5     num := to_number (var1);
      6     return ('Number');
      7  exception
      8     when others then
      9             return ('Character');
    10* end;
    SQL> /
    Function created.
    SQL> select test_num ('111') from dual;
    TEST_NUM('111')
    Number
    SQL> select test_num ('aaa') from dual;
    TEST_NUM('AAA')
    Character
    SQL>                                                             

  • How do I take two separate non numeric fields in a acrobat form and combine the data to display in a third separate field?

    How do I take two separate non numeric fields in a acrobat form and combine the data to display in a third separate field?

    You have to use custom JavScripting to concatenate the first 2 fields. You cannot use the first 2 calculation options because they force the values of the fields to a numeric value or ignore string values.
    Possible scripts for the 3rd field are:
    event.value = this.getField("Text1").valueAsString + " " + this.getField("Text2").valueAsString;
    or
    event.value = this.getField("Text1").valueAsString.concat( " ",  this.getField("Text2").valueAsString);
    If you do not want change the separator or not show the separator when on or the other field is empty, you will need to add more code to adjust for change.
    The above scripts will also concatenate number because the field values are read as strings and not numbers.
    There is also a generalized user written function to concatenate up to 3 fields with a separator that adjust for missing data.

  • Compare non numeric data using arithmetic operations

    Hi
    Is there anyway to compare the non numeric data in a table to a numeric number.
    Want to run a query like
    SELECT rank_id
                                          FROM   mas_rank
                                          WHERE  rank_code > 26 Rank_code contains numeric as well as some non numeric data
    Thanx for the help

    Yes, it will work if you just say > '26' See this demo :
    SQL> create table mas_rank(rank_id number,rank_code varchar2(2));
    Table created.
    SQL> insert into mas_rank values (100,'aa');
    1 row created.
    SQL> insert into mas_rank values (101,'ab');
    1 row created.
    SQL> insert into mas_rank values (102,'ad');
    1 row created.
    SQL> insert into mas_rank values (103,'ag');
    1 row created.
    SQL> insert into mas_rank values (104,'ac');
    1 row created.
    SQL> insert into mas_rank values (105,'22');
    1 row created.
    SQL> insert into mas_rank values (106,'25');
    1 row created.
    SQL> insert into mas_rank values (107,'26');
    1 row created.
    SQL> insert into mas_rank values (108,'27');
    1 row created.
    SQL> insert into mas_rank values (109,'aa');
    1 row created.
    SQL> insert into mas_rank values (110,'28');
    1 row created.
    SQL> SELECT rank_id
      2                                        FROM   mas_rank
      3                                        WHERE  rank_code not in ('ab','ad','ag')
      4                                                 and rank_code > 26;
                                                   and rank_code > 26
    ERROR at line 4:
    ORA-01722: invalid number
    SQL> ed
    Wrote file afiedt.buf
      1  SELECT rank_id
      2                                        FROM   mas_rank
      3                                        WHERE  rank_code not in ('ab','ad','ag')
      4*                                                and rank_code > '26'
    SQL> /
       RANK_ID
           100
           104
           108
           109
           110
    SQL>Regards
    Girish Sharma

  • TREX - Configuring Distributed Slave with Decentralized Data Storage

    I am creating a distributed TREX environment with decentralized data storage with 3 hosts.  The environment is running TREX 7.10 Rev 14 on Windows 2003 x64.  These are the hosts:
    Server 01p: 1st Master NameServer, Master Index Server, Master Queue Server
    Server 02p: 2nd Master NameServer, Slave Index Server
    Server 03p: Slave NameServer, Slave Index Server (GOAL; Not there yet)
    The first and second hosts are properly set up, with the first host creating the index and replicating the snapshot to the slave index server for searching.  The third host is added to the landscape.  When I attempt to change the role of the third host to be a slave for the Master IS and run a check on the landscape, I receive the following errors:
    check...
    wsaphptd03p: file error on 'wsaphptd03p:e:\usr\sap\HPT\TRX00\_test_file_wsaphptd02p_: The system cannot find the file specified'
    wsaphptd02p: file error on 'wsaphptd02p:e:\usr\sap\HPT\TRX00\_test_file_wsaphptd03p_: The system cannot find the file specified'
    slaves: select 'Use Central Storage' for shared slaves on central storage or change base path to non shared location
    The installs were all performed in the same with, with storage on the "E:" drive using a local install on the stand-alone installation as described in the TREX71InstallMultipleHosts and TREX71INstallSingleHosts guides provided.
    Does anybody know what I should try to do to resolve this issue to add the third host to my TREX distributed landscape?  There really weren't any documents that gave more information besides the install documents.
    Thanks for any help.

    A ticket was opened with SAP customer support.  The response to that ticket is below:
    Many thanks for the connection. We found out, that the error message is wrong. It can be ignored, if you press 'Shift' and button 'Deploy' (TREXAdmin tool -> Landscape Configuration).  We will fix this error in the next Revision (Revision 25) for TREX 7.1.

  • ORA-01858: a non-numeric character was found where a numeric was expected

    hi ,
    This was the code which shows the sales rep invoice amount and collected amount but while running report thru concurrent program its showing the following error:
    ORA-01858: a non-numeric character was found where a numeric was expected
    WHERE TO_CHAR ( TO_DATE ( PS.GL_DATE , 'DD/MON/YY' ) , 'MON-YYYY' ) BETWEEN TO_CHAR ( TO_DATE ( : ==> P_todate , 'YYYY/MM/DD' ) , 'MON-YYYY' ) AND TO_CHAR ( TO_DATE ( : P_todate , 'YYYY/MM/DD' ) , 'MON-YYYY' ) AND ps.customer_id = cust.custome
    The Actual Code was this
    SELECT SUBSTR(SALES.name,1,50) salesrep_name_inv,
    --ps.CLASS,
    SUM(ABS(ps.acctd_amount_due_remaining)) acctd_amt,
    SUM(ABS(ps.amount_due_remaining)) amt_due_remaining_inv,
    SUM(ABS(ps.amount_adjusted)) amount_adjusted_inv,
    SUM(ABS(ps.amount_applied)) amount_applied_inv,
    SUM(ABS(ps.amount_credited)) amount_credited_inv,
              SALES.salesrep_id,
    NULL "REMARKS"
    -- ps.gl_date gl_date_inv,
    FROM ra_cust_trx_types ctt,
    ra_customers cust,
    ar_payment_schedules ps,
    ra_salesreps SALES,
    ra_site_uses site,
    ra_addresses addr,
    ra_cust_trx_line_gl_dist gld,
    gl_code_combinations c,
    ra_customer_trx ct
    WHERE TO_CHAR(TO_DATE(PS.GL_DATE,'DD/MON/YY'),'MON-YYYY')
    BETWEEN TO_CHAR(TO_DATE(:P_todate,'YYYY/MM/DD'),'MON-YYYY') AND TO_CHAR(TO_DATE(:P_todate,'YYYY/MM/DD'),'MON-YYYY')
    AND ps.customer_id = cust.customer_id
    AND ps.customer_trx_id = ct.customer_trx_id
    AND ps.cust_trx_type_id = ctt.cust_trx_type_id
    AND NVL(ct.primary_salesrep_id, -3) = SALES.salesrep_id
    AND ps.customer_site_use_id+0 = site.site_use_id(+)
    AND site.address_id = addr.address_id(+)
    AND TO_CHAR(TO_DATE(PS.GL_DATE_CLOSED,'DD/MON/YY'),'MON-YYYY')
    BETWEEN TO_CHAR(TO_DATE(:P_todate,'YYYY/MM/DD'),'MON-YYYY') AND TO_CHAR(TO_DATE(:P_todate,'YYYY/MM/DD'),'MON-YYYY')
    --AND    ps.gl_date_closed > TO_DATE(:P_todate,'MON-YYYY')
    AND ct.customer_trx_id = gld.customer_trx_id
    AND gld.account_class = 'REC'
    AND gld.latest_rec_flag = 'Y'
    AND gld.code_combination_id = c.code_combination_id
    AND sales.salesrep_id is not null and sales.name is not null
    -- and ps.payment_schedule_id+0 < 9999
    -- AND SALES.salesrep_id ='1001'
    GROUP BY SALES.name,
    --ps.CLASS,
    SALES.salesrep_id

    So to_date function accepts a string as input and returns a date. When a date is input instead, it is implicity converted to the required type of the function paremeter, which is a string, so that to_date can convert it back to a date again.
    If you are lucky with the implicit conversion, you get the same date back, if you are not you might get a different date or an error.
    From your query it appears that this conversion from a date, to a string, to a date, and then back to a string using to_char this time, is being done to remove the time or day part of the date. The actual range comparison is being done on strings rather than dates, which is dangerous as strings sort differently than dates.
    In this example if I sort by date, Jan 01 comes between Dec 00 and Feb 01 as you would expect.
    SQL> select * from t order by d;
    D
    12-01-2000
    01-01-2001
    02-01-2001When converted to strings, Feb 01 comes between Dec 00 and Jan 01, which is probably not the desired result
    SQL> select * from t order by to_char(d,'DD-MON-YY');
    D
    12-01-2000
    02-01-2001
    01-01-2001If you want to remove time and day parts of dates you should use the trunc function
    trunc(d) removes the time, trunc(d,'mm') will remove the days to start of month.
    http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14200/functions201.htm#i79761

  • Non numeric value in numeric field giving error

    Hi All
    I am using BAPI for creating sales order. If user is giving non numeric value in Quantity field it is giving error. Because quantity field data type is Double.
    Please Help.
    Thanks
    Raktim

    Hi Banerjee,
                 Create a String/int/long Context variable and point it to UI Input element.Do the validation  for correct input value. once the validation is succesful assign that value to RFC BigDecimal variable by Explicit casting.
    Hope this might solve your problem .
    Thanks
    Madhan

  • At new- command - making non-numeric fields as ******* how to correct this

    Hi,
    I am using the following code.
    Tables : vbap.
    DATA: t_vbap TYPE STANDARD TABLE OF vbap,
          x_vbap TYPE vbap.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.
    SELECT-OPTIONS: s_vbeln FOR vbap-vbeln.
    SELECTION-SCREEN END OF BLOCK b1.
    START-OF-SELECTION.
      SELECT * FROM vbap
        INTO TABLE t_vbap
        WHERE vbeln IN s_vbeln.
      LOOP AT t_vbap INTO x_vbap.
        at new vbeln.
          write:'new vbeln'.
          ENDAT.
      ENDLOOP.
    In debugging mode, the non-numeric fields on x_vbap becomes ****
    I want to know whether this can be done using oops.. any methods available for at new
    Moderator message: please search for available information/documentation before asking (as you can tell from some of the replies so far)
    locked by: Thomas Zloch on Oct 1, 2010 3:25 PM

    see documentation:
    "If the INTO addition is used in the LOOP statement to assign the content of the current line to a work area wa, its content is changed upon entry into the AT-ENDAT control structure as follows:
    The components of the current control key remain unchanged.
    All components with a character-type, flat data type to the right of the current control key are set to character "*" in every position.
    All the other components to the right of the current control key are set to their initial value.
    When the AT-ENDAT control structure is exited, the content of the current table line is assigned to the entire work area wa. "

Maybe you are looking for

  • Form in Dynamic page not working when checkbox is used.

    I have created a form using dynamic page. The form most have display fields and a checkbox field. When I check a box, it assigns 'Y' value and when unclick, it assign 'N' to the database field. When I submit the form, the procedure which is supposed

  • Help for using kotoeri built-in Japanese input system

    Hi, I have been using kotoeri for a while, but I still feel I am missing a lot of useful functions. I am using a French localized version of OS X 10.7. The point is that I cannot find any help in either French or English. As soon as I switch input to

  • How to I get my custom ringtones to play again?

    Genius bar helped me restore photos and videos that didn't make it through last week's Icloud install on the new Iphone. Only my default ringtone will play, It's an Itune purchased ringtone.  All my other custom ringtones (some purchased, some that c

  • My iPhone's sound does not work except for the alarm and the volume bar is not there.

    Hi, thank you in advance if you can help. When my iphone 4 is not plugged in to headphones the sound does not work, and if I try to adjust the sound with the plus and minus buttons in the side it comes up like normal saying "Ringer" but then there is

  • Plz help me the following error on my producation DB

    db_recovery_file_dest_size of 2048 MB is 0.00% used. This is a user-specified limit on the amount of space that will be used by this database for recovery-related files, and does not reflect the amount of space available in the underlying filesystem