Direct Database Request Error: illegal number at oci

Hello, all.
In Oracle BI Answers i get an error by building an direct database request: illegal number at oci.....
The reason of error is in expression to_char((date_1-date_2)*24, '9990.99')
The error disappears if i write expression to_char((date_1-date_2)/*24*/, '9990.99')
BI doesn`t understand multiplying in SQl request?

Hi,
Couple of suggestions :
1) Run your direct database queries in a SQL editor (SQL Developer, TOAD, SQLplus) etc to confirm the query runs OK - be carefull with Toad or SQL Dev - you want to return the entire dataset, not just the first xxxxK rows these tools tend to bring back, they sometimes hide the problem 'row' which maybe is causing the error.
2) Once the error is returned via straight up SQL , maybe try the database / SQL forum as your problem I think lies there, not with the BI Server.
3) My one stop shop for Oracle date arithmetic : http://www.akadia.com/services/ora_date_time.html
4) assuming the SQL returns correctly, report back to us so we can help with OBIEE specific issues !
what time period are you trying to bring back between your date 1 and date 2 ?
Hope this helps a little,
Alastair

Similar Messages

  • Obiee Answers Direct database request error

    Hi,
    I am learning obiee 10/g and installed 10g version on my laptop.
    when i tried to run the query in Answers through "direct database request"
    connection pool is > "SH"."Connection Pool"
    Sql statement is > Select * from Channels
    When i clicked on "validate sql and retrieve columns" button i get the below error
    error : Odbc driver returned an error (SQLExecDirectW).
    error : [nQSError: 16001] ODBC error state: S0002 code: 942 message: [Oracle][ODBC][Ora]ORA-00942: table or view does not exist. [nQSError: 16002] Cannot obtain number of columns for the query result. (HY000)
    error : SQL Issued: {call NQSGetQueryColumnInfo('EXECUTE PHYSICAL CONNECTION POOL "SH"."Connection Pool" SELECT * FROM Channels')}
    What could be the issue ... Please advise
    Thank You

    Hi,
    The channels table is in the database schema ..because i am able to drag the columns from channels table in answers and veiw the results.
    when the query runs through the RPD it works fine .
    but when i run the query using direct database request feature of answers...I see the error.

  • Error in Oracle BI EE Analytics when running a direct database request

    This is in the Oracle Answers portion of the Analytics tool. When a query is entered into the Direct Database Query text box and the "Validate SQL and Retrieve Columns" button is clicked, the columns are indeed returned (which would seem to indicate that the connection pool settings are correct etc.), but when I click on the results tab it throws an error:
    View Display Error
    Error generating view. You don't currently have the necessary privileges to execute Direct Database Requests.
    Error Details
    Error Codes: OAMP2OPY:Q4NU7XSN
    Invalid Handle Of 'class saw::NQWebView *' Exception
    I am at a loss trying to figure this error out - clearly it is connected to the DB since it can see column names, and I was able to use the Administration tool to create a repository which Analytics can use, so why can't I directly query my database? Any help would be greatly appreciated.

    It sounds like the setting has not been set to allow you to execute a direct database query.
    You can do this by logging into the Presentation services as the Administrator user. Clicking on the Settings tab and then selecting the Administration option. On the Oracle BI Presentation Services Administration window select the Manage Privileges option. This brings up the Privileges Administration window, scroll down to the Answers section (listed on the left) and check the Execute Direct Database Requests privilege setting this is defaulted to let no one execute Direct SQL request. Reset the privileges such that the group that the user trying to execute the direct database request belongs to is set to be able to execute the direct database requests. This should alleviate the error that you are getting.
    I hope that this helps.
    Tim

  • Direct Database Request Execution Error

    Hi,
    Iam working with Database Direct Request to execute a stored procedure. When I hav given the commad and clicked on 'Validate SQL and Retrieve columns' it is showing all the columns below. But when I click on "Results" tab it is giving me an error like
    "Error generating view. You don't currently have the necessary privileges to execute Direct Database Requests"
    I logged in to OBIEE (Web) as an 'Administrator'.
    What other permissions do an Administrator need in order to resolve the above issue?

    Try with Evaluate function
    http://oracle-bi.siebelunleashed.com/articles/callingdb-function-in-obiee/
    Syntax for Evaluate function in OBIEE
    Check connection pool- properties -- there you can call your procedures
    Edited by: MK on Jan 20, 2012 3:39 AM

  • Error executing Direct Database Requests through Administrator logon

    Hi,
    I am logged on through username: Administrator in BI Answer.
    Still, unable to execute Direct Database Requests in OBIEE Answer.
    I am getting the below error in Result tab:
    Error generating view. You don't currently have the necessary privileges to execute Direct Database Requests.
    Error Details
    Error Codes: OAMP2OPY:Q4NU7XSN
    Please suggest.
    Regards,
    Deeba

    Presentation Server Administrators were not having permission to execute data direct request.
    I granted permission by the following change in setting in BI Answer:
    Settings>Administration>Manage Privileges>Answers>Execute Direct Database Requests> Added Presentation Server Administrators.
    Regards.

  • Table Functions, Direct Database Requests, and NUMBER data types

    Hello. I call a number of table functions from our BI Enterprise server, and I've elected to do so using Direct Database Requests (I believe you can also call table functions in the physical layer of the repository, but that's not what I'm doing). The problem is that whenever I return any number from the table function that is not a whole number (1.23, for example), BI assigns the INTEGER datatype to the field instead of the DOUBLE datatype, thereby rounding my number to the nearest integer. Here's a concise example:
    Create these 3 database objects:
    CREATE OR REPLACE TYPE my_row AS OBJECT (my_num NUMBER);
    CREATE OR REPLACE TYPE my_tab AS TABLE OF my_row;
    CREATE OR REPLACE FUNCTION my_table_function RETURN my_tab
    PIPELINED IS
    BEGIN
    PIPE ROW(my_row(1.23));
    END;
    Then make this your query in your Direct Database Request:
    SELECT my_num FROM table(my_table_function);
    That query correctly returns "1.23" when it's called from the database. In BI, on the other hand, it returns "1" (and labels the field an INTEGER instead of DOUBLE data type). If in the Direct Database Request you change the Column Properties ->Data Format -> Decimal Places from 0 to 2, it then not surprisingly displays "1.00". I then tried changing MY_ROW.MY_NUM's datatype by explicitly specifying precision, and no luck. BI still labels this field as an INTEGER. Then I started trying to trick BI by massaging the SQL statement itself. None of the following worked:
    SELECT to_number(my_num) as my_num2 FROM table(my_table_function);
    SELECT my_num2 + 0.01 as my_num3 FROM (SELECT my_num - 0.01 AS my_num2 FROM table(my_table_function));
    SELECT to_number(to_char(my_num)) as my_num2 FROM table(my_table_function);
    SELECT to_number(substr(to_char('x'||my_num),2)) as my_num2 FROM table(my_table_function);
    Now I did find a solution, but I'm surprised that I have to resort to this:
    SELECT * FROM (SELECT /*+ NO_MERGE */ my_num FROM table(my_table_function));
    Does anyone out there know of a better way to do this? The above is a hack in my opinion. :)
    Thanks in advance for any input.
    -Jim

    Yes, it's really amazing.
    But I got it.
    CREATE OR REPLACE TYPE my_row AS OBJECT (my_num NUMBER(10,2));and in your SQL :
    SELECT cast(my_num as double precision) as my_num2 FROM table(my_table_function);I have the good result and I see the numbers after the comma.
    Very tricky !
    Edited by: gerardnico on Jul 7, 2009 2:55 PM change number(10,2) by double precision ......... pfffff

  • Unable to Schedule a Direct Database Request in OBIEE 11g.

    Hi All,
    I am trying to schedule a Report that is generated using a Direct Database Request Query.
    Whenever I try to create an Alert for this specific Report it Fails to deliver.
    I checked the Job Manager for this Alert. I found out that the Job has completed with an Exit Code = 2 and there was no other error description for the same.
    Can we not create an alert for a Direct Database Request.
    Please let me know if anyone has dealed with such an issue and if anyone has a solution for this.
    Thanks in advance.
    Dev.

    Analyses based on direct database requests and sent out through agents work just like any other analysis in terms of content, delivery etc.
    Are you sure that you're not hitting a privilege problem and that the user executing the agents isn't allowed to run direct database requests?

  • Direct database request and session variable value

    Hi,
    I have a problem by doing the following : idea is to have report with a list of all tables in user schema (which are not all in repository physical layer).
    By clicking on the name of any, should bring answer report which is done as direct database request doing basically select * from table_clicked (this will be basically the same table with sufix _err holding error rows).
    What I'm trying to do is having some kind report for error rows which can be in different tables in my database. So i had in mind to construct name of table i need , and pass it to database request through session variable. Am i doing right by doing direct database request like this :
    select * from 'VALUEOF(NQ_SESSION.TestVar2)'
    Is there another easyer way of doing this? I know this can be done by gourl by passing parameters but not sure how when i can't filter columns in direct database request (this can be different tables with different names of columns). I hope i didn't complicated this too much.
    Thnx in adwance

    Hi,
    I know this is a hack, and would be much more easy to create one table with dimension and measures, but this is intended to be used with code generator, which can produce different error tables with different column names in different time: It is not conviniet for somebody to add them to repository every 5 minutes. For example : i run my workflow and for first run I have errors in table1(let us say customer table with 30 columns) and if click on the table name in some answer report, i want to see all the bad records in the table. Tomorrow after the run, there are bad records in table1 and in table2 (lets say products) so I would have choice to pick table 1 or table2 and see al the bad records in any of these tables. This means that I can not now which tables will I have tomorrow, and as it is generic, I can manually add some tables in my model, and would have to add err table also as a possibility to have error rows?
    I saw post saying that you can pass parameter value by using go url functionality, by modifying configinstance file, but didn't suceed - http://gerardnico.com/wiki/dat/obiee/logical_sql/obiee_session_variable_go_url . Maybe some mistake or any better solution? I created session variable TestVar2, also modified instanceconfig.xml by adding this before </ServerInstance>
    <ParamList>
    <Param name="NQ_SESSION.TestVar2" source="url" nameInSource="SETVAR"/>
    </ParamList>
    and used go url in column formula : ''||"Physical Targets"."Physical Table"||''
    Can I use @1 for using first column value?
    Thnx

  • Date format in Direct database request

    I have a report with direct database request.
    I have a date prompt..I am storing the date in a Presentation Variable named pv_date.
    In the direct database request, I have a where clause:
    WHERE business_date IN ( @{pv_date}{'1/1/2013'} )
    when I run open dashboard for the first time, its throwing me an error near TIMESTAMP.
    WHERE business_date IN( TIMESTAMP ''2013-01-01 00:00:00'')
    AND ALSO When I run this report from dashboard after choosing a date say 2/20/2013, I see the query as:
    WHERE business_date IN (2013-02-20 00:00:00)
    and hence throwing error.
    Its throwing error in both the cases. How do I change the format in WHERE clause..
    Ideally, I want the query to be WHERE business_date IN ('2/20/2013') or Business_date IN ('2013-02-20')

    Thank you both.
    I am using Sybase and hence used convert function.
    But still I see the word TIMESTAMP in the query which is causing issue.
    business_date IN(CONVERT(char(10), TIMESTAMP ''2013-03-27 00:00:00'',101))
    and when I run the report by choosing any date, I see this: business_date IN(CONVERT(char(10),2013-03-27 00:00:00,101)) ; throwing error because No single quoted for the date.
    How do I remove the word TIMESTAMP?? and how do I impose single quotes..

  • Reg-Direct database request Prompt

    Hi
    I have a direct database request I kept this report on dashboard with request date as a prompt
    the filter on the report is
    TRUNC(FCR.request_date) = TO_DATE('@{Date1}{07/23/2012}','mm/dd/YYYY').(Data is coming fine)
    but
    I wanted to show the data for the current_date on the dashboard "default"
    When I try to do
    TRUNC(FCR.request_date) = TO_DATE('@{Date1}{Sysdate}','mm/dd/YYYY') Its throwing an error.
    I am not sure whether we have to use Sysdate or Current_date.Please let me know how to achieve this.
    Thanks
    Edited by: user13545914 on Jul 23, 2012 2:27 PM

    Prompt should like this:
    1) Column->Date [IF you do any formula here, you have to do every place, in this case I'm not doing any formula]
    2) Operator-> is equals to is in
    3) Control-> Calendar
    4)Default to ->SQL Results
    use query like
    SELECT Time.Date FROM "Service - CRM Service Requests" where Time.Date=current_date
    This would show default value select as todays date
    5) Set Variable -> PS
    Call the PS variable in the report without any default value. this should work fine, once you get confidence and this approach start doing what ever you want.
    if you want you can try same scenario with couple of columns.
    Just relax and read all threads and do it.

  • OBIEE 10G Direct Database Request

    Hey Everybody,
    I'm on OBIEE 10G in a solaris environment and I'm connected to Oracle 11.2 database. I'm having trouble getting the correct dataset returned from a Direct Database Request from a dashboard that users input data. I have the dashboard created and have all the dashboard prompts setup as prestentation variables. My DDR sql looks like this:
    Select from table where Batch_ID = '11' and PID = '1234' and Reported_Date = '01011900'*
    My issue is that I want the Reported Date dashboard prompt to be a optional field that user do not have to enter on the dashboard. However, if a user doesn't enter a value on the dashboard then an error is thrown because the DDR sql is expecting a value for the Reported Date.
    I've tried to enter the OBIEE standard "%" as an all choices option in the database and changed the DDR sql to look like this:
    Select from table where Batch_ID = '11' and PID = '1234' and Reported_Date like '%'*
    However, this throws an error saying an unidentified characters has been used even though if I run this above sql query directly against the database myself it gives back the wanted dataset.
    Anybody ever ran across this situation before?
    Thanks,
    Jeff

    Here is the code I used as my DDR. When I leave the @reported_date prompt empty it doesn't return anything. Thanks.
    select Batch_ID_0,
    Batch_Seq_Nbr_1,
    AC_TL_Seq_Nbr_2,
    Contributor_ID_3,
    Account_Nbr_4,
    Account_Type_5,
    Account_Status_6,
    Opened_Date_7,
    Reported_Date_8,
    Closed_Date_9,
    Current_Balance_10,
    AC_Assoc_Seq_Nbr_11,
    ECOA_Code_12,
    SSN_13,
    Phone_Nbr_14,
    Birth_Date_15,
    Last_Name_16,
    First_Name_17,
    Middle_Name_18,
    Generation_Code_19,
    Line1_of_Addr_20,
    Line2_of_Addr_21,
    City_22,
    State_23,
    Zip_24
    From (
    Select Ac_Trade.Batch_ID Batch_ID_0,
    Ac_Trade.Batch_Seq_Nbr Batch_Seq_Nbr_1,
    Ac_Trade.AC_TL_Seq_Nbr AC_TL_Seq_Nbr_2,
    Ac_Trade.Contributor_ID Contributor_Id_3,
    Ac_Trade.Account_Nbr Account_Nbr_4,
    Ac_Trade.Account_Type Account_Type_5,
    Ac_Trade.Account_Status Account_Status_6,
    Ac_Trade.Opened_Date Opened_Date_7,
    Ac_Trade.Reported_Date Reported_Date_8,
    Ac_Trade.Closed_Date Closed_Date_9,
    Ac_Trade.Current_Balance Current_Balance_10,
    Ac_Assoc.AC_Assoc_Seq_Nbr AC_Assoc_Seq_Nbr_11,
    Ac_Assoc.Ecoa_Code ECOA_Code_12,
    Ac_Assoc.SSN SSN_13,
    Ac_Assoc.Phone_Nbr Phone_Nbr_14,
    Ac_Assoc.Birth_Date Birth_Date_15,
    Ac_Assoc.Last_Name Last_Name_16,
    Ac_Assoc.First_Name First_Name_17,
    Ac_Assoc.Middle_Name Middle_Name_18,
    Ac_Assoc.Generation_Code Generation_Code_19,
    Ac_Assoc.Line1_of_Addr Line1_of_Addr_20,
    Ac_Assoc.Line2_of_Addr Line2_of_Addr_21,
    Ac_Assoc.City City_22,
    Ac_Assoc.State State_23,
    Ac_Assoc.Zip Zip_24,
    row_number() over(order by Ac_Trade.batch_id) row_limit
    From owb.Ac_Trade, owb.Ac_Assoc
    Where Ac_Trade.Batch_Id = Ac_Assoc.Batch_Id
    And Ac_Trade.Batch_Seq_Nbr = Ac_Assoc.Batch_Seq_Nbr
    And (Ac_Trade.Batch_Id = ( @{batch_id}{'1'} ))
    And (Ac_Trade.Processor_Id = ( @{processor_id}{'1'} ))
    And (Ac_Trade.Reported_Date like (CASE WHEN '@{reported_date}{}' = '' THEN '%%' ELSE '@{reported_date}' END) ))
    Where Row_Limit <= 25
    Order By Batch_ID_0,
    Batch_Seq_Nbr_1,
    AC_TL_Seq_Nbr_2,
    Contributor_ID_3,
    Account_Nbr_4,
    Account_Type_5,
    Account_Status_6,
    Opened_Date_7,
    Reported_Date_8,
    Closed_Date_9,
    Current_Balance_10,
    AC_Assoc_Seq_Nbr_11,
    ECOA_Code_12,
    SSN_13,
    Phone_Nbr_14,
    Birth_Date_15,
    Last_Name_16,
    First_Name_17,
    Middle_Name_18,
    Generation_Code_19,
    Line1_of_Addr_20,
    Line2_of_Addr_21,
    City_22,
    State_23,
    Zip_24

  • Enabling Direct Database Request for LDAP User in RPD

    Hi All,
    Can anybody help me out how to set the Direct datasbase parameter in repository for the respective LDAP User.
    Actually I am implementing PROXY USer setup, in this process im encountering the below error
    Odbc driver returned an error (SQLExecDirectW).
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred.
    [nQSError: 13017] User or group has not been granted the Direct Database Access privilege to access the database 'So n So'. Please verify the User/Group Permissions in the Oracle BI Administration Tool. (HY000)
    http://1.bp.blogspot.com/-NqzXnCsUse0/UT5D2F6SksI/AAAAAAAAA1s/SpygihX4z5A/s1600/3.PNG
    If i create the user in the repository and for him if i set "direct database Request" to "Allow" then he is able to use the PROXY functionality , but in my case i am using LDAP there are no room for the USers.
    Any assistance , greatly appreciated.
    Thank you./
    Siva Budagam.

    Hi All,
    Can anybody help me out how to set the Direct datasbase parameter in repository for the respective LDAP User.
    Actually I am implementing PROXY USer setup, in this process im encountering the below error
    Odbc driver returned an error (SQLExecDirectW).
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred.
    [nQSError: 13017] User or group has not been granted the Direct Database Access privilege to access the database 'So n So'. Please verify the User/Group Permissions in the Oracle BI Administration Tool. (HY000)
    http://1.bp.blogspot.com/-NqzXnCsUse0/UT5D2F6SksI/AAAAAAAAA1s/SpygihX4z5A/s1600/3.PNG
    If i create the user in the repository and for him if i set "direct database Request" to "Allow" then he is able to use the PROXY functionality , but in my case i am using LDAP there are no room for the USers.
    Any assistance , greatly appreciated.
    Thank you./
    Siva Budagam.

  • Ask help About Create Direct Database Request

    Hi, all.
    When I using the Create Direct Database Request, how can I specify a variable which can used to receive multiple input value?
    My SQL like this:
    select... from table t1 where t1.c1 in('@{v_c1}{001})
    where, v_c1 is the variabe name, 001 is the defaut value of the variable.
    But, it doesn' work.
    If it's the systax error, then how can I correct it?
    Thank you in advance.

    Hi katherine,
    Your connection pool should look like this "DEV_BI"."Connection Pool"
    Second thing is go to Administration/Manage privileages/Direct database privileage is there.
    If you want to use variables into your SQL query follow this link
    http://bintelligencegroup.wordpress.com/2010/08/26/how-to-use-the-presentation-variable-in-direct-database-request/
    Hope it helps you.
    By,
    KK

  • Direct Database Requests in Answers - PROBLEM

    Hello!
    I want to use
    Direct Database Requests in Answers.
    I connect as Administrator.
    I fill in Connection Pool and write a select statement. Then I validate this statement and validation returns columns (metadata).
    When I want to view the results, I get an error:
    Error generating view. You don't currently have the necessary privileges to execute Direct Database Requests.
    Error Details
    Error Codes: OAMP2OPY:Q4NU7XSN
    Invalid Handle Of 'class saw::NQWebView *' Exception
    Do I have to set some parameters somewhere in OBIEE?
    BI EE - 10.1.3.2.1
    Source: Oracle DB 10g R1
    Thanks
    Gorazd

    I have blogged about the steps that one would have to follow for making the direct database requests work. One can access them here http://oraclebizint.wordpress.com/2007/09/18/oracle-bi-ee-execute-direct-database-requests/
    Thanks,
    Venkat
    http://oraclebizint.wordpress.com

  • Obiee 11g Executing a Direct Database Request in my Dashboard

    Hi Experts,
    i want to create in my dashboard Button:
    when i presses Button message will appear with question with 2 buttons :
                  1 Ok        : will execute Direct Database procedure.
                  2 Cancel : return to source dashboard.
    what is the way to execute ?
    I would appreciate your help.
    sin

    Analyses based on direct database requests and sent out through agents work just like any other analysis in terms of content, delivery etc.
    Are you sure that you're not hitting a privilege problem and that the user executing the agents isn't allowed to run direct database requests?

Maybe you are looking for

  • ORDRSP mapping?? (accept / reject on item level... )

    Hi there, I am trying to work out what fields need to be mapped in order to get an "Order Response IDoc" into SAP so that it simple says whether an item is accepted or rejected.... I have been looking in the E1EDP01 segment - at the ACTION and ABGRU

  • Time capsule produces a signal, but won't connect or backup

    I have looked at some of the other discussions here; some are similar, but I can't find an answer. I have a TC, Macbook Pro and an iPhone 4, all between 6-10 months old.   My problems started when I turned on all my stuff after being away for 4 weeks

  • Help with white screen and thunderbolt icon!

    I have a new MBP. I was trying to transfer stuff from my iMac to the new MBP using a thunderbolt cable and pressing down the 'T' key while restarting my iMac. Long story short, there was not enough room on my MBP so I just continued on without transf

  • Internal table

    hi all, in my function module when i give the export parameter i get 2 fields in my internal table F1              F2 A                A B                A C                 A i want that if F2 has multiple values ie may be a or b or c it shuld give

  • MDW Data Collector doesn't work, meaning the custom_Snapshot table isn't created? Why? ? ?

    I think the issue is with a long query in XML. Please, how to make this work? Here are the definitions I used: STEP 1 --- Find Collecter TYPE ID from SELECT collector_type_uid ,* FROM [msdb].[dbo].[syscollector_collector_types_internal] STEP 2 -- fin