@SUBSTRING function - use with if

Hello people,

I appreciate too that can help me.

My problem: I have a lot of members on the dimension of accounts using numbers as the name. For example, Member "3100200", "3200100" and so on. I have to check with @SUBTRING using the IF function if the string account starts with "31" or "32". Follow below my test at Sample.Basic (standard Essbase database example) script, I check all the descendants of the measures dimension and if the current Member begins with SA, the number one is applied to cross.

DIFFICULTY (' real ',' New York","100-10",@IDESCENDANTS ("Measures")")
"Oct."
(IF (@SUBSTRING (@NAME (@CURRMBR ("Measures")), 0, 1) == "a"))
1;
ENDIF);
ENDFIX

Follow the error | Caution:

WARNING: 1200354 compilation error formula for [Oct] (line 4): type [NUMBER] is [STRING] ([@SUBSTRING]) expected in function [operator @EQ]

===============================================================

Second test using only an equal.

DIFFICULTY (' real ',' New York","100-10",@IDESCENDANTS ("Measures")")
"Oct."
(IF (@SUBSTRING (@NAME (@CURRMBR ("Measures")), 0, 1) = "sa")
1;
ENDIF);
ENDFIX

Follow the error | Caution:

WARNING: 1200336 parse error formula for [Oct] (line 4): [()] without [)]

====================================================

After many tests I've done, I could realize Essbase cannot 'understand' equal to compare the content of strings.

Could someone help me with this problem?

A big thank you and best regards,
Wallace Galvão
Brazil - Oracle

I have not actually tried this, but what about something like:

Oct)
IF (@ISMBR (@MATCH (measures, "his"))
1;
ENDIF;

Tags: Business Intelligence

Similar Questions

  • A question about the analytical function used with the GROUP BY clause in SHORT

    Hi all

    I created the following table named myenterprise
    CITY       STOREID    MONTH_NAME TOTAL_SALES            
    ---------- ---------- ---------- ---------------------- 
    paris      id1        January    1000                   
    paris      id1        March      7000                   
    paris      id1        April      2000                   
    paris      id2        November   2000                   
    paris      id3        January    5000                   
    london     id4        Janaury    3000                   
    london     id4        August     6000                   
    london     id5        September  500                    
    london     id5        November   1000
    If I want to find which is the total sales by city? I'll run the following query
    SELECT city, SUM(total_sales) AS TOTAL_SALES_PER_CITY
    FROM myenterprise
    GROUP BY city
    ORDER BY city, TOTAL_SALES_PER_CITY;
    that works very well and produces the expected result, i.e.
    CITY       TOTAL_SALES_PER_CITY   
    ---------- ---------------------- 
    london     10500                  
    paris      17000            
    Now in one of my books SQL (Mastering Oracle SQL) I found another method by using the SUM, but this time as an analytic function. Here's what the method of the book suggests as an alternative to the problem:
    SELECT city, 
           SUM(SUM(total_sales)) OVER (PARTITION BY city) AS TOTAL_SALES_PER_CITY
    FROM myenterprise
    GROUP BY city
    ORDER BY city, TOTAL_SALES_PER_CITY;
    I know that the analytic functions are executed after the GROUP BY clause has been transformed completely and Unlike regular aggregate functions, they return their result for each line belonging to the partitions specified in the partition clause (if there is a defined partition clause).

    Now my problem is that I do not understand what we have to use two functions SUM? If we only use one only, i.e.
    SELECT city, 
           SUM(total_sales) OVER (PARTITION BY city) AS TOTAL_SALES_PER_CITY
    FROM myenterprise
    GROUP BY city
    ORDER BY city, TOTAL_SALES_PER_CITY;
    This generates the following error:
    Error starting at line 2 in command:
    SELECT city, 
           SUM(total_sales) OVER (PARTITION BY city) AS TOTAL_SALES_PER_CITY
    FROM myenterprise
    GROUP BY city
    ORDER BY city, TOTAL_SALES_PER_CITY
    Error at Command Line:2 Column:11
    Error report:
    SQL Error: ORA-00979: not a GROUP BY expression
    00979. 00000 -  "not a GROUP BY expression"
    *Cause:    
    *Action:
    The error is generated for the line 2 column 11 which is, for the expression SUM (total_sales), well it's true that total_sales does not appear in the GROUP BY clause, but this should not be a problem, it has been used in an analytical function, so it is evaluated after the GROUP BY clause.

    So here's my question:

    Why use SUM (SUM (total_sales)) instead of SUM (total_sales)?


    Thanks in advance!
    :)





    In case you are interested, that's my definition of the table:
    DROP TABLE myenterprise;
    CREATE TABLE myenterprise(
    city VARCHAR2(10), 
    storeid VARCHAR2(10),
    month_name VARCHAR2(10),
    total_sales NUMBER);
    
    INSERT INTO myenterprise(city, storeid, month_name, total_sales)
      VALUES ('paris', 'id1', 'January', 1000);
    INSERT INTO myenterprise(city, storeid, month_name, total_sales)
      VALUES ('paris', 'id1', 'March', 7000);
    INSERT INTO myenterprise(city, storeid, month_name, total_sales)
      VALUES ('paris', 'id1', 'April', 2000);
    INSERT INTO myenterprise(city, storeid, month_name, total_sales)
      VALUES ('paris', 'id2', 'November', 2000);
    INSERT INTO myenterprise(city, storeid, month_name, total_sales)
      VALUES ('paris', 'id3', 'January', 5000);
    INSERT INTO myenterprise(city, storeid, month_name, total_sales)
      VALUES ('london', 'id4', 'Janaury', 3000);
    INSERT INTO myenterprise(city, storeid, month_name, total_sales)
      VALUES ('london', 'id4', 'August', 6000);
    INSERT INTO myenterprise(city, storeid, month_name, total_sales)
      VALUES ('london', 'id5', 'September', 500);
    INSERT INTO myenterprise(city, storeid, month_name, total_sales)
      VALUES ('london', 'id5', 'November', 1000);
    Edited by: dariyoosh on April 9, 2009 04:51

    It is clear that thet Analytics is reduntant here...
    You can even use AVG or any analytic function...

    SQL> SELECT city,
      2         avg(SUM(total_sales)) OVER (PARTITION BY city) AS TOTAL_SALES_PER_CITY
      3  FROM myenterprise
      4  GROUP BY city
      5  ORDER BY city, TOTAL_SALES_PER_CITY;
    
    CITY       TOTAL_SALES_PER_CITY
    ---------- --------------------
    london                    10500
    paris                     17000
    
  • How to use the Substring function with Case statement.

    Hi all

    I have a requirement where I have to use the substring function on the ground for the report criteria.
    FOR EXAMPLE
    I branch domain name where I have all the information of the branch names, now some of the branch names are too large with an extension after the name.
    now I want substing it, but the length of characters varies for each branch.
    so is it possible where we use a box where we can define if the character of name plug exceed a value then he substing with this length.

    Try something like this:

    LENGTH WHEN CARTER (tablename. Branch_Name) > n THEN SUBSTRING (...) Of ANOTHER tablename. Branch_Name END

    where n is the number of characters that you want to start the break.

  • WE SHOULD NOT USE SUBSTR FUNCTION...

    Hello

    ex: [email protected] , [email protected] [email protected]

    AS THIS HUNDRED PLATE IS HERE.

    QUERY:

    I DON'T WANT THAT YAHOO, GMAIL LIKE THAT... WE SHOULD NOT USE SUBSTR FUNCTION...

    THIS IS AN INTERVIEW QUESTION

    Thank you

    Try:

    Select regexp_replace (' [email protected]',' ^. * @(.*)-.) (. *)', '\1') twice;

  • How do we use the SUBSTR function in OWB

    Hello, I'm pretty new to OWB. I need to use the SUBSTR function in owb. My source table has 16 characters in length. But in my datamar,.
    the length is 14 years. I want to the substring from source to the destination. The mappings are already developed. I need to change the mapping to make sure that,
    It brings only SUBSTR (1.14) mini - DW.

    Any help is appreciated.

    Use the operator of expression between two attributes.

    OWB has already SUBSTR as a preset transformation

    Take a look at the doc below
    26.3.1 open the expression builder

    http://docs.Oracle.com/CD/E11882_01/OWB.112/e10935.PDF

  • NLSSORT function not used with CHAR and VARCHAR2 column index

    Hello!

    Create a test bench:
    CREATE TABLE scott.nls_demo
          (
          col_varchar            varchar2(4),
          col_char               char(4),
          col_varchar_NLS_GERMAN varchar2(4),
          col_char_NLS_GERMAN    char(4)
          );
     
    INSERT INTO scott.nls_demo (
          col_varchar,
          col_char,
          col_varchar_NLS_GERMAN,
          col_char_NLS_GERMAN  )
      SELECT 
             substr(object_name,1,4),
             substr(object_name,1,4),
             substr(object_name,1,4),
             substr(object_name,1,4)
      FROM all_objects where rownum<5000;
    
    COMMIT; 
    
    create index scott.i_varchar on scott.nls_demo (col_varchar);  
    create index scott.i_char    on scott.nls_demo (col_char);
    
    create index scott.i_varchar_NLS_GERMAN on scott.nls_demo ( NLSSORT(col_varchar_NLS_GERMAN,'nls_sort=''GERMAN_CI'''));  
    create index scott.i_char_NLS_GERMAN    on scott.nls_demo ( NLSSORT(col_char_NLS_GERMAN,   'nls_sort=''GERMAN_CI'''));
     
    Now "explain plan" these 8 select statements in SQL * more:
    variable c char(4);
    variable v varchar2(4);
    
    exec :c:= 'abc';
    exec :v:= 'abc';
    
    explain plan for SELECT /* 1*/ * FROM scott.nls_demo where col_varchar=:v;
    SELECT * FROM TABLE(dbms_xplan.display);
    
    explain plan for SELECT /* 2*/ * FROM scott.nls_demo where col_char=:c;
    SELECT * FROM TABLE(dbms_xplan.display);
    
    explain plan for SELECT /* 3*/ * FROM scott.nls_demo where col_varchar_NLS_GERMAN=:v;
    SELECT * FROM TABLE(dbms_xplan.display);
    
    explain plan for SELECT /* 4*/ * FROM scott.nls_demo where col_char_NLS_GERMAN=:c;
    SELECT * FROM TABLE(dbms_xplan.display);
    
    ALTER SESSION SET NLS_COMP = linguistic;
    ALTER SESSION SET NLS_SORT = german_ci;
    
    explain plan for SELECT /* 5*/ * FROM scott.nls_demo where col_varchar=:v;
    SELECT * FROM TABLE(dbms_xplan.display);
    
    explain plan for SELECT /* 6*/ * FROM scott.nls_demo where col_char=:c;
    SELECT * FROM TABLE(dbms_xplan.display);
    
    explain plan for SELECT /* 7*/ * FROM scott.nls_demo where col_varchar_NLS_GERMAN=:v;
    SELECT * FROM TABLE(dbms_xplan.display);
    
    explain plan for SELECT /* 8*/ * FROM scott.nls_demo where col_char_NLS_GERMAN=:c;
    SELECT * FROM TABLE(dbms_xplan.display);
     
    What I see on 11.2.0.2 is:

    1.) statement 1 would use the I_VARCHAR index, that is what I expected.
    2.) statement 2 would use the I_CHAR index, that is what I expected.
    3.) no clue used, because none are available right here for you. Understood.
    4.) no clue used, because none are available right here for you. Understood.

    And when define us NLS_SORT = german_ci:

    5.) no clue used, because none are available right here for you. Understood.
    6.) no clue used, because none are available right here for you. Understood.
    7.) I_VARCHAR_NLS_GERMAN we used. Large.
    8.) no index used, although I think that "i_char_NLS_GERMAN" would do the job...

    Why the index 'i_char_NLS_GERMAN' is not used with the 8 statement? Jonathan? Someone else?

    Thanks for your help!
    Marcus

    Not really a reason to not use TANK - although there are many of them.

    More than one reason to not always rely to "explain the plan for?

    All the variables passed in EXPLAINING the PLAN for are treated as VARCHAR2.
    In addition, there is no point setting the values of the variable because they will not cast a look either with MAP to EXPLAIN.

    SQL> CREATE TABLE nls_demo
      2        (
      3        col_varchar            varchar2(4),
      4        col_char               char(4),
      5        col_varchar_NLS_GERMAN varchar2(4),
      6        col_char_NLS_GERMAN    char(4)
      7        );
    
    Table created.
    
    SQL>
    SQL> INSERT INTO nls_demo (
      2        col_varchar,
      3        col_char,
      4        col_varchar_NLS_GERMAN,
      5        col_char_NLS_GERMAN  )
      6    SELECT
      7           substr(object_name,1,4),
      8           substr(object_name,1,4),
      9           substr(object_name,1,4),
     10           substr(object_name,1,4)
     11    FROM all_objects where rownum<5000;
    
    4999 rows created.
    
    SQL>
    SQL> commit; 
    
    Commit complete.
    
    SQL>
    SQL> create index i_varchar on nls_demo (col_varchar);  
    
    Index created.
    
    SQL> create index i_char    on nls_demo (col_char);
    
    Index created.
    
    SQL>
    SQL> create index i_varchar_NLS_GERMAN on nls_demo ( NLSSORT(col_varchar_NLS_GERMAN,'nls_sort=''GERM
    AN_CI'''));  
    
    Index created.
    
    SQL> create index i_char_NLS_GERMAN    on nls_demo ( NLSSORT(col_char_NLS_GERMAN,   'nls_sort=''GERM
    AN_CI'''));
    
    Index created.
    
    SQL>
    SQL> variable c char(4);
    SQL> variable v varchar2(4);
    SQL>
    SQL> exec :c:= 'abc';
    
    PL/SQL procedure successfully completed.
    
    SQL> exec :v:= 'abc';
    
    PL/SQL procedure successfully completed.
    
    SQL>
    SQL> ALTER SESSION SET NLS_COMP = linguistic;
    
    Session altered.
    
    SQL> ALTER SESSION SET NLS_SORT = german_ci;
    
    Session altered.
    
    SQL>
    SQL> SELECT /* 8*/ * FROM nls_demo where col_char_NLS_GERMAN=:c;
    
    no rows selected
    
    SQL> SELECT * FROM TABLE(dbms_xplan.display_cursor);
    
    PLAN_TABLE_OUTPUT
    ----------------------------------------------------------------------------------------------------
    SQL_ID  9su0j5vzuwzyj, child number 0
    -------------------------------------
    SELECT /* 8*/ * FROM nls_demo where col_char_NLS_GERMAN=:c
    
    Plan hash value: 2830339923
    
    -------------------------------------------------------------------------------------------------
    | Id  | Operation                   | Name              | Rows  | Bytes | Cost (%CPU)| Time     |
    -------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT            |                   |       |       |     3 (100)|          |
    |   1 |  TABLE ACCESS BY INDEX ROWID| NLS_DEMO          |    50 |  2150 |     3   (0)| 00:00:01 |
    |*  2 |   INDEX RANGE SCAN          | I_CHAR_NLS_GERMAN |    20 |       |     1   (0)| 00:00:01 |
    -------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       2 - access("NLS_DEMO"."SYS_NC00006$"=NLSSORT(:C,'nls_sort=''GERMAN_CI'''))
    
    Note
    -----
       - dynamic sampling used for this statement (level=2)
    
    23 rows selected.
    
    SQL> 
    

    Published by: Dom Brooks on February 21, 2011 15:39

  • Equivalent OBIEE TO_DATE and SUBSTR functions

    I have the formula for the next column, which works correctly:

    SUM (CASE WHEN (TimeStampDiff (SQL_TSI_month, "Registration - College". "" Effective colleges F. ((("' Program Start Date ', current_date)) / 12 < 6 THEN 1 ELSE 0 END)


    I want to replace the current_date with scope of practice. Because the scope of practice is currently not in a date format (e.g. 201213, 201314, 201415), I need to use the TO_DATE and SUBSTR functions OBIEE equivalent to convert this field into a format that can be used by the TimeStampDiff function.

    The current (outside OBIEE) SQL for the conversion of the year at a date looks like this:

    To_date (substr (Fiscal_Year, 1, 4) |) '09', "YYYYMM")


    I tried to replace current_date in the column formula above by the following, but it didn't work:

    To this day (Substring ("registration - College". "D time". " "Exercise" FROM 1 to 4) | '09', "YYYYMM")

    TO_DATETIME (LEFT ("registration - College". "D time". " ("' Exercise ', 4) | ("/ 09/01 ', ' yyyy/mm/dd')

    Good course assuming that "registration - College". "D time". " "' Exercise ' is of type varchar, otherwise you will first need to cast as varchar or LEFT won't like it (but the error will tell you what the problem is exactly).

  • find substr until ',' use instr

    Hi all

    I use the substr function in my application. In substr, I use Instr function to get the index of «,» It works very well. But the problem occurs for the last value. because the last value is not having ',' at the end.

    for example my column value is

    Text1, text2, Texte23, Rem4 Rem5

    It is to find up to 4. text, but the text 5 is missing.

    my query is like that

    Select Substr (columnValue, Instr (columnValue, Dwfstepname, 1, 1), Instr (columnValue, ',', Instr (columnValue, Dwfstepname, 1, 1), 1)) in Workflowhistory, where Docmeta

    Workflowhistory.Did = 853

    And Docmeta.Did = Workflowhistory.Did and action = "approve".

    If anyone can help with this problem

    What happened to just add to column_value

    Select Substr

    (

    columnValue

    Instr(columnValue,Dwfstepname,1,1)

    Instr(columnValue ||) (',', ',', Instr (columnValue, Dwfstepname, 1, 1), 1)

    )

    Of Workflowhistory

    Docmeta

    Where Workflowhistory.Did = 853

    And Docmeta.Did = Workflowhistory.Did

    And action = "approve".

  • To specify the SUBSTR function in SqlLdr

    Hello
    I want to clarify the SUBSTR function for that column when I use sqlldr in owb; but I didn't know where I can find this property set. everyone knows?

    Thank you
    Prabha

    Hi Prahba

    .. . If you build the map with the file as the source, add an expression that has the SUBSTR and map this output of the expression attribute to your target, the control generated for the mapping file will have the expression.

    See you soon
    David

  • What Mac Mini for use with Adobe CC?

    Hello

    I thought about getting a Mac Mini to use with a Wacom Cintiq Display(either 22HD or 27QHD) and I was wondering what would be best for the execution of the Adobe programs.

    It seems that most of the people prefer the 2012 Mac mini with the quad core as opposed to the current gen using two hearts.

    This brings me to two questions:

    I see a huge difference between the quad core and dual core in the adobe programs?

    8 GB RAM is enough or should I opt for 16 GB?

    Otherwise, the mac mini may be a poor choice for what I would do, so any feedback is appreciated!

    Thank you!

    What Adobe suggest to their CC minimum specifications in OS X, it

    should not be necessary to buy a quad-core (they say that it would use all the cores).

    A set of Photoshop CC system requirements suggest higher specs than one

    Another help page for Adobe. This page shows the highest specifications, but can

    not reflect the version that you are considering:

    •Photoshop CC 2015.x system requirements and languages

    https://helpx.Adobe.com/Photoshop/system-requirements.html

    If for some reason you happen across a 2012 end i7 2.3 or 2.6 GHz quad with

    two 1 TB hard drives, they would be more easily upgraded to run an SSD and

    keep a rotating disc; or install two SSDs. between that and 16 GB of RAM, these

    should do a quick little computer. Rotational hard drives are the bottleneck.

    But probably not necessary for Adobe photoshop CC. The graphics processor

    is a limitation if you use intense graphic applications. GPU shares

    standard memory with the system; From memory, there is little or no dedicated graphics.

    Although I have a Late 2012 Mac Mini i7 2.3 GHz quad-core (server) with double 1 TB

    5400 RPM hard drive and RAM upgraded to 16 GB total rotation. It can

    Use at least one drive upgraded to 7200 rpm or SSD drive more efficient.

    The Mac Mini which is online store (check to see if there is an official refurb)

    in the middle to upper technical version may be OK. The top level because of the upgrade

    options in the configuration page (select to buy it, then see what options exist)

    might be OK. The lower spec Mini doesn't seem to be viable for serious users.

    New versions available now, because, you choose the configuration when

    you order the computer: you buy an upgrade level you think you might need.

    Memory is affixed, then exercise your ESP skills to look ahead, before buying.

    The new Mac Mini 'top model' has better graphics than model end 2012.

    An advantage for the Mini is you can choose monitors, peripherals, etc. An old

    new stock Mini would have some OS X who was active as a base level.

    Since none of these units have a system backup media. Is online recovery there.

    My Mini comes with the Mavericks 10.9; 10.9.5 functioning properly. Partitioned,

    the discs could dualboot mulitple systems and their applications more recent specifications.

    (You can pay like nine awards for the end of 2012 Mini i7 quad, used clean-shaped).

    I had considered to be a non - retina MacBook Pro 13 inch 2.5 GHz for once.

    It was the time when they were more common in the 'special offers' Apple

    refurb store page online at decent price; then buy RAM upgrade later.

    In any case, this has become a long rant a few detours or details were

    omitted for the sake of clear path back to the main topic. Since I was late

    2012, mac Mini and it's more of the half upgraded for most all that he can do

    I would probably say try a. If you can find a new one at a fair cost.

    If the cost is too high, you can get a new Mac Mini to higher specification

    the Apple Store. They are dual-core. Adobe applications do not seem to need

    the advantage of the use of quad-core processors or. (these run virtual cores, too;)

    so if you have the appropriate application, the quad core turn eight - virtual.)

    The option AppleCare extended warranty covers to buy new equipment.

    It would have supplied with El Capitan, if the current new stock. This fall, there may be macOS

    Sierra - if you happen to get that stock again - at the end of the year. Not sure

    If or when the hardware upgrade version configurations may appear.

    Anyway, it's more a kind of letter. Sorry about that...!

  • Is it possible to pair a third-party GPS for use with Apple Watch?

    I would use one GPS other than in my iPhone connected to my watch.  For example, I would use a GPS watch instead of my iphone running the runtime (easier to transport).  Can I pair it to my Apple Watch something?  I tried several times the calibration routine on my watch and it is simply not enough precise for me without a GPS and I do not carry my big 6 + when I run.  I have an old Garmin watch... running would be great match its function GPS with the Apple Watch...

    Aside from the fact that Garmin is known for plays not well with other devices, including older devices Garmin who were ANT only, no, this is not currently an option with the Apple Watch.

  • Easy way to locate the function used on the diagram by name?

    Is there an easy way to locate the functions used in the diagram under the name of the generic function?

    I have user appears somewhat to the user on my diagram functions to help me debug a difficult sequence of agross events live multiple now that it works, I want to go back and disable most of these postings. Most of them went up to now within the layers a little structure and is not easy to find.

    So is there an easy way to get a list of where these functions are used so that I can quickly go and edit them?

    I find the function is with the display hierarchy that does just what I need.

    Thank you.

  • How to install the printer with the laptop. Printer was used with another computer.

    I wanted to use a printer with my laptop lexmark. The printer was used with another computer and it worked fine, but when I tried to use it with the laptop, I was not able find the installation disk and tried to install without it. The laptop produces a message indicating he could find the internet facility info if I accepted this. He had apparently fulfilled this function, and I tried to print a document. The document has been printed, but the result was so low, that it was not readable. I then found the installation disk and tried to restart but was confused by the messages and options. I don't have a printer that prints. Help.

    I wanted to use a printer with my laptop lexmark. The printer was used with another computer and it worked fine, but when I tried to use it with the laptop, I was not able find the installation disk and tried to install without it. The laptop produces a message indicating he could find the internet facility info if I accepted this. He had apparently fulfilled this function, and I tried to print a document. The document has been printed, but the result was so low, that it was not readable. I then found the installation disk and tried to restart but was confused by the messages and options. I don't have a printer that prints. Help.

    Unplug the printer from the laptop.  In Vista or Win 7, click Orb (Start), settings, Control Panel, printers. When the Lexmark printer is found, right-click on it and then click on remove.
     
    Equip your drive and install the drivers and programs on the disk, then when told the printer.  You should have a printer now works.
  • Function group with CLOB fields in the Select statement

    I try to query our following sql database. Remove the Clob (a.description) field I managed. But I need the Clob (a.description) field. Here is my sql class
    select  a.id_number, a.id_owner,  MAX (n.next_action_required)
                KEEP (DENSE_RANK LAST ORDER BY n.modified_date),
             MAX (n.modified_date) KEEP (DENSE_RANK LAST ORDER BY n.modified_date) 
    from table1 a, table2 n
    where a.id_number = n.id_number
    group by a.id_number, a.id_owner
    I tried the following which works sometimes, but not always because the Clob field length (a.description) varies; anywhere from 10 characters up to 12 000 characters. I get a few drafts with the following and some where the text is cut off. I can not write the correct dbms_lob.substr function.
    select  a.id_number, a.id_owner,  MAX (n.next_action_required)
                KEEP (DENSE_RANK LAST ORDER BY n.modified_date),
             MAX (n.modified_date) KEEP (DENSE_RANK LAST ORDER BY n.modified_date) , DBMS_LOB.SUBSTR (a.description, 8001, 10000)
    from table1 a, table2 n
    where a.id_number = n.id_number
    group by a.id_number, a.id_owner, DBMS_LOB.SUBSTR (a.description, 8001, 10000)
    Help, please. Thank you

    Maybe

    select id_number,
           id_owner,
           description,
           next_action_required,
           modified_date
      from (select a.id_number,
                   a.id_owner,
                   a.description,
                   n.next_action_required,
                   n.modified_date
                   row_number() over (partition by a.id_number,a.id_owner
                                          order by n.modified_date desc,n.next_action_required desc) rn
              from table1 a,
                   table2 n
             where a.id_number = n.id_number
           )
     where rn = 1
    

    Concerning

    Etbin

  • Can a DB function used between 2 pools of connections

    Hi all
    We have 2 pools of connections, 1 connected to Oracle DB Data Warehouse. The other connection pool is an Excel spreadsheet, which has projects and scheduling dates. We have modelled in MDB and her servant perfectly. Now, the question is, we have a function in Oracle DB, which works well when I use with any size of Oracle DB DW. But, when I use the same function using the dimension modeled of excel sheet it generates an error. Here, dimension sheet Excel is modeled to inculde model DW.

    Error: "A general error has occurred. [nQSError: 42015] Cannot function ship the following expression. »

    So my question is "is there no work around to use the same function when using the other connection pool size.

    Pointers for this problem is highly appreciated.

    Thank you
    Vijay

    Hi Vijay,

    I agree 100% with what Dave. The function you have in Oracle should have access to the values passed in. OBIEE has access to both DIM_DW and DIM_EXCEL, but the Oracle function has no access to DIM_EXCEL. Just to give you a high level understanding of what is happen, here's what OBIEE made to combine the two sets of data in a single report:

    Assume that your report is like so: DIM_DW. COLUMN1, DIM_EXCEL. COLUMN2, FACT_DW. MEASURE1

    To get the data OBIEE sends two separate applications: one against the DW that retrieves DIM_DW. Column1 and FACT_DW. MEASURE1 and another for DIM_EXCEL. COLUMN2.

    Once the two request to return, the OBIEE server joined data sets and then presents them in a report.

    Now, when you call your function (DIM_DW. COLUMN1, DIM_EXCEL. COLUMN2), OBIEE sends the request to just the Oracle DB. But the Oracle DB can not see the Excel data, then it fails because the DIM_EXCEL argument. Column2 is not defined to Oracle DB.

    Here are two methods you could use to make it work:
    (1) configure the Excel file as an external table in the Oracle DB. Then, the function would be aware of the values of column in Excel.
    (2) port the function to the MDB using layer logic the formula Expression. According to what is your function, it is not possible.

    Whatever it is, how you install now, you can't reach your goal. The reason why I recommended that you separate your connection pool Excel in a different database object is because the way you have it setup right now makes it appear like the Oracle DB would be aware of the Excel tables. But that's not true. Keeping them separated to avoid any future confusion.

    Good luck!

    -Joe

Maybe you are looking for