Evaluating a char variable which contains a Expression

Hi,
I am creating a function ,which has got three parametrers and it should return a numeric value.
I will write down the function
create function fun1(expr varchar,res1 number,res2 number)return number
begin
if expr then
return res1;
else
return res2;
end if;
end;
This is my logic, expr parameter can have any expressions,eg: CTC+basic+hra>5000
my function should evaluate this and return the respective values.
Anybody please help me out for this issue.If you have some other logic to implement the same please do replay.
Regards
Rupesh

Here's a function (It can cause too many hard parses, I don't know any other solution for 9i)
declare
  function fun1(
    expr  varchar2,
    res1  number,
    res2  number)
    return number
  is
    res  number;
  begin
    execute immediate 'select :res1 from dual where ' || expr ||
                      ' union select :res2 from dual where not ' || expr
                 into res
                using res1, res2;
    return res;
  end;
begin
  DBMS_OUTPUT.put_line(fun1('1+1>1', 1, 2));
end;

Similar Messages

  • How to load file thru reader which contains non-english char in file name

    Hi ,
    I want to know how to load file in english machine thru reader which contains non-english chars in file names (eg. 置顶.pdf)
    as LoadFile gives error while passing unicode converted file name.
    Regards,
    Arvind

    You don't mention what version of Reader?  And you are using the AcroPDF.dll, yes?
    Sent from my iPad

  • Find out queries which contain user-exit variable

    Hello.
    I want to get a list of BEX queries, which contain my user-exit variable, defined in ZXRSRU01. Could anybody tell me how I can achieve this?

    Hello, Konstantin.
    You can use differnet methods to do this.
    Method №1.
    You can open one (any) query, that uses your variable in Metadata repository (active objects). If you don't know such  query - you can create it.
    In the description of your query you can find which variable is used by this query.
    Open your variable.
    There you can find all queries, that uses you variable.
    Method №2.
    Open SE11.  Choose table RSZELTDIR.
    Determine ELTUID of your variable (OBJVERS='A',MAPNAME=Variable ID).
    Open SE11.  Choose table RSZELTXREF.
    Select ALL SELTUID with OBJVERS='A', TELTUID=ELTUID (see above), LAYTP=VAR
    Open SE11.  Choose table RSZELTDIR.
    Select all MAPNAME with OBJVERS='A', ELTUID=lists of SELTUID (see above)
    You can take texts from table RSZELTTXT.
    Best regards,
    Alexander Kuzmich

  • Reuse a variable in OSB XPATH expression editor

    I have a problem with replacing activity in Oracle Service Bus.
    I created a variable with the follow content
    <response>
    <operationResponse name="OPERATION1" result=""/>
    <operationResponse name="OPERATION2" result=""/>
    <operationResponse name="OPERATION3" result=""/>
    <operationResponse name="OPERATION4" result=""/>
    </response>
    For each operationResponse I call a businessProxy that invokes an external webservice. If this call is made with success, I replace `result=""` with `result="1"`.
    I have created a replace activity like this:
    <con3:replace contents-only="true" varName="responseElement"> <!-- var responseElement = <response>.*</response> -->
    <con2:id>_ActionId-3886365367816551561--27a55993.13f0a38ab8f.-7c95</con2:id>
    <con3:location>
    <con2:xpathText>./operationResponse/@result</con2:xpathText>
    </con3:location>
    <con3:expr>
    <con2:xqueryText>"1"</con2:xqueryText>
    </con3:expr>
    </con3:replace>
    After running this program, all the attributes "results" are replaced by "1", if the businessService is called successfully.
    The problems is that I need to replace the attribute "result" only for the element operationResponse that have the attribute "name" equal to the operationResponse that invokes the businessService.
    I have created a variable called operationName that contains the current response/operationResponse. I used ./operationResponse[@name=$operationName]/@result.
    The OSB XPATH expression editor is throwing the follow error:
    Variable "$operationName" used but not declared for expression
    Can anyone help with this?

    Hi, XPath and XQuery are conceptually different. XPath expression can not have variables while an XQuery expression can have a variable inside the XPath when the expression is bound to a variable.
    To work around the issue, instead of using the condition in XPath expression inside replace you should write the XQuery expression of REplace in such a way that it results in what you need.
    For ex. if I take the example above:
    say the content of $body is as below:
    <soap-env:Body>
    <aaa>
    <bbb>
    <ccc>A</ccc>
    <key>1</key>
    </bbb>
    <bbb>
    <ccc>B</ccc>
    <key>2</key>
    </bbb>
    </aaa>
    </soap-env:Body>
    and you wanted to replace values of ccc to X for any bbb elements which have key=1(and you have saved a variable called keyCheck with value '1' earlier in the flow), then you could do the following:
    Replace contents of  . in body with
    <aaa>
    for $bbb in $body/aaa/bbb
    if ($bbb/key/text() = $keyCheck)
    then
    <bbb>
    <ccc>X</ccc>
    <key>{$bbb/key/text()}</key>
    </bbb>
    else
    $bbb
    </aaa>

  • HOW TO CREATE A VIEW WHICH CONTAINS A PARAMETER

    Hi all
    I am trying to create a view which contains paramaters.
    Lets assume that the view may look like this:
    STEP 1:
    CREATE OR REPLACE procedure Myproc(v_count in NUMBER) as
    BEGIN
    EXECUTE IMMEDIATE
    'CREATE OR REPLACE VIEW myview AS
    SELECT COUNT(*) FROM DUAL WHERE ROWNUM like '''||v_count||'%'' ';
    END myproc;
    SHOW ERRORS;
    Procedure created.
    Elapsed: 00:00:00.31
    SQL&gt; SHOW ERRORS;
    No errors.
    STEP 2:
    SQL&gt; EXEC Myproc(2);
    BEGIN Myproc(2); END;
    ERROR at line 1:
    ORA-00998: must name this expression with a column alias
    ORA-06512: at "MYUSERNAME.MYPROC", line 3
    ORA-06512: at line 1
    Elapsed: 00:00:00.16
    It seems that doesn't really likes the third line: "EXECUTE IMMEDIATE".
    Can I get any help with this one ?
    Thank-you
    Robert

    Bear in mind that VIEWs are not supposed to be parameterised. That is why Nature gave us a WHERE clause. However, there is one, albeit slightly clunky, way of doing it....
    SQL> CREATE OR REPLACE VIEW emp_view AS
      2  SELECT * FROM scott.emp
      3  WHERE deptno = sys_context('userenv','client_info')
      4  /
    View created.
    SQL>
    SQL>
    SQL> exec dbms_application_info.set_client_info(10)
    PL/SQL procedure successfully completed.
    SQL> SELECT * FROM emp_view
      2  /
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM
        DEPTNO
          7782 CLARK      MANAGER         7839 09-JUN-81       2450
            10
          7839 KING       PRESIDENT            17-NOV-81       5000
            10
          7934 MILLER     CLERK           7782 23-JAN-82       1300
            10
    SQL> Cheers, APC

  • Apply conditional formatting for a textbox in a matrix that contains an expression

    I have a matrix that contains one row, and one of the columns in this row (a field ) contains an expression. I know this field is "Textbox24" but anyway, I have created a placeholder for this field and in Placeholder Properties I have given the
    label "PD". Note that the Value in this placeholder shows "Expr" because it contains an expression.
    I don't think this is relevant, but just in case, the expression is:
    =Code.GetPercentageDifferenceBetweenCurrentAndPreviousValue()
    where GetPercentageDifferenceBetweenCurrentAndPreviousValue is custom code for the report which returns a decimal value. This works correctly in Preview mode.
    I now want to apply conditional formatting on this field so the colour of the font changes depending on the value of the expression. I clicked on the text box of that field, and in Properties > Color > Expression > I entered
    =IIF(Fields!PD.Value >= 50,"Green","Black")
    When I go to Preview mode I get the error "The Color expression for the text box 'Textbox24' refers to the field 'PD'. Report item expression can only refer to fields within the current dataset scope or, if inside an aggregate, the specified
    data set."
    I have tried a couple of other forms of the sytax for Fields!PD.Value but it doesn't work. Is my problem a syntax problem or a scope problem, and how do I solve it?
    Thank you

    From your description, PD is not a field so you cannot reference it as a field. You can do what you want by referring to the textbox:
    =IIf(ReportItems!Textbox24.Value >= 50."Green","Black")
    "You will find a fortune, though it will not be the one you seek." -
    Blind Seer, O Brother Where Art Thou
    Please Mark posts as answers or helpful so that others may find the fortune they seek.

  • How to store serval char variables into a string variable?

    I have serval char variables, but i don't know how to put them together (without using arrays). I am thinking to store these char variables into a string variable but i don't know how to do it. For example,
    char letter1 = 'a', letter2 = 'b', letter3 = 'c';
    String letters;
    then how can i do to make letters = "abc" from using letter1,2,3?
    I am just a beginner of Java, if anyone can help me, i will appreciate that very much!!!

    String letters=""+leter1+letter2+letter3;is fine and dandy. What it actually compiles to is
    String letters = new StringBuffer().append(letter1).append(letter2).append(letter3).toString();Which ofcourse is much more code to write, but still good to know.
    So do see the API for java.lang.StringBuffer.
    Heikki

  • Time Variable in Container Operation in BPM

    hi,
    how can we add a time variable in container operation in BPM?
    Say i want to increment the time upto 5 hours and see if it has reached in my loop.
    how can we achieve this?
    Tiru

    henrique -
    I have a block with a timeout defined.
    Within the block i have the deadline with control step which triggers the exception
    I have the exception handler which has a send step which sends the actual error message.
    I have a send step which polls the http receiver and is in a infinite loop.
    Now the first time i receive an error message i get an email which is good and should work that way.
    Next time if it errors out it should continue until a deadline of 8 hours and then should send out an error email.
    What happens is i get the second error message immediately without the deadline getting exceeded.
    When i look at the workflow log the exception handler gets executed but i don't see a sign of the deadline getting executed?
    Any reasons why its behaving this way?
    Thanks,
    Tiru

  • How to read a line from a file which contains 45000 characters?

    Hi all,
         Iam a receiving a .CSV file which contains n number of rows ,each row has a data seperated with delimiter.
    These values based on delimiter it is seperated and certain validations are handled.
    Iam using UTL_FILE.GET_LINE operator to read the value and store it in a variable which is declared as l_text VARCHAR2(30000).
    when we receive a line which contains huge characters say 45000 then it throws an error(Unable to read the file).
    Only on rare cases we used to receive these kind of files with huge size.
    Kindly help to solve this issues.
    Database details.
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    PL/SQL Release 11.2.0.2.0 - Production
    CORE 11.2.0.2.0 Production
    TNS for Linux: Version 11.2.0.2.0 - Production
    NLSRTL Version 11.2.0.2.0 - Production
    Hereby i have tried with long Raw data type but still same error unable to read the file.pls find the sample code below,
    declare
    l_text             LONG RAW;
    l_importTypeFile   UTL_FILE.FILE_TYPE ;
    begin
         PKG_COMMON.PROC_FOPEN(g_Directory, P_FILENAME,    'RB',l_importTypeFile,    p_error_cd, p_error_msg) ;
    UTL_FILE.GET_RAW(l_ImportTypeFile,l_Text);
    End;
    Thanks in Advance
    Siva

    Hi Siva,
    Are you trying to use data from this .csv file into your realtion tables. If yes and If you are using 11g Oracle database. I would suggest you create External Tables using the below query,
    http://www.oracle.com/technetwork/issue-archive/2011/11-mar/o21nanda-312277.html
    STEP1: You need a Directory where your SCHEMA has read/write access. Store the csv file in that directory.
    STEP2: Create an EXTERNAL Table script. Please refer the above URL. Examples are for coma delimiter (,); replace it with your pipe (|) in the code
    STEP: Once your external table is created you can simply create a relational table as below:
    CREATE  TABLE relation_table
      AS
    SELECT * FROM external_table;
    Regards,
    RaviR

  • How to get a "char variable" with presentation variable???

    I want to pass a char variable with presentation variable, I don't have problems if I pass "int".
    For example in answers page I add a column that contains years of my dimension. 2000 until 2012 and prompted my presentation variable "year" (from my dashboard prompt) and when I go to dashboard if I choose in my prompt 2006 in my report appear 2006...any problem and easy. But my problem is if I would pass a char variable, in my prompt also I have months but not numbers else names: January, February, March...and a presentation variable that name is "month". If I do the same report but change column year to month (name) I don't have any results and I have an error.
    How can I solucionate this???
    Thank you!!

    Alex,
    Do you have separate columns for Year and Month Name. If Yes, Then why it is so confusing?
    1. create a dashboard prompt with month name column
    2. Assign it to monthname variable
    3. In your report use above variable any where.., but what ever you are doing should be logical and valid to get some data.
    In general above approach will work.
    You said, "No! I don't want to do a filter with month! I would like to pass this variable, in this example don't make sense but I need to pass a char variable with presentation variable to do another things..."
    what does that mean, what you are trying to do with the variable in your report. If you give a example that would be better.
    - Madan

  • In ALV I want to align Top-Of-Page in Center which contains some TEXT

    Hi Abap Gurus',
                          In ALV's i want to align TOP-OF-PAGE in center.
    Which contains some TEXT.
    Can you please help me out.
    Points will be Given.
    Many thanks
    Anil Roy.

    hi anil
    The header line is always left-justified .
    We basically have three options for formatting :
    S , A and H.
    every line in Alv top-of-page is of 60 char length(slis_listheader-info).so i think the only option we have is to add required spaces to the left and display the required string
    regards
    navjot
    reward if helpfull

  • Formula date variable ,which is processing by 'Customer exit' with ready in

    Hi ,
    I need to create 1 variable which takes date from user and do some calculation.irrespective of any date char.
    so I have created Formula date variable ,which is processing by 'Customer exit' with ready input .
    But when selection screen pop up date formula variable comes with the format yyyymmdd.
    but i need dd.mm.yyyy. i have checked my profile and it is dd.mm.yyyy.
    Waitin for reply

    Hi Babu
    Did you get the answer to the query....if yes please drop me a mail on this as I have the same requirement and thanks in advance...
    my id   [email protected]
    REgards
    Amit

  • Conditional Processing: Request is Contained within Expression 1

    I believe I have found a bug with the Process Conditional Processing logic, where "Request is Contained within Expression 1" is used.
    Here are three of the buttons that I have on my page:
    GET_RES_CIVIC_ADDR - This button is displayed among the Region Items (Region 2)
    CRE_RES_CIVIC_ADDR - This button is displayed among the Region Items (Region 2)
    ADD - Automatically created as part of a Tabular Form (Region 3 - Updateable Report).
    I have a process that is conditional on either GET_RES_CIVIC_ADDR or CRE_RES_CIVIC_ADDR being run (meaning the Process has its "Conditional Processing" "Condition Type" set to "Request Is Contained within Expression 1" and where "Expression 1" is set to "GET_RES_CIVIC_ADDR,CRE_RES_CIVIC_ADDR" (without the quotes).
    The problem I have encountered is that this Conditional Process also gets run if I submit the ADD Button. The reason being is that the word "ADD" is contained within the Expression 1 string "GET_RES_CIVIC_ADDR,CRE_RES_CIVIC_ADDR".
    Note that if I change the REQUEST value for these two Item Level Buttons to names that do not contain the word ADD, the problem is fixed.
    Is this a known bug? Or do I have to edit the value of Expression 1, so that each Button Name/Request Value is enclosed in quotes or the like?

    Scott,
    I was under the impression that the values in Expression 1 would be a list of comma delimited values (e.g. A,B,C and not ABC) and would be evaluated individually. However, you are correct. It is being evaluated as advertised.
    A note for others that have this problem - the evaluation of :REQUEST is Case Sensitive, so if the Item Level Button had been named 'Get_Res_Civic_Addr' (using Camel Case) instead of 'GET_RES_CIVIC_ADDR', (Upper Case), there would not have been a match with the 'ADD' Request and therefore the After-Submit process would not have been run by the ADD button.
    To prevent this in the future, we are going to standarise using the PL/SQL Expression Condition (checking :REQUEST) and also ensure that our Item Level Buttons "Request Value" is Camel Case (just an extra precaution).

  • Dynamic Action Set Value - PLSQL Error - cannot contain an expression

    I am trying to use below in a Dynamic Action to Set Value with PL/SQL Function. The dynamic action does not update the item appropriately. I tried to run the below directly in SQL Workshop but received the error "PLS-00372: In a procedure, RETURN statement cannot contain an expression". How can I get below to return the value needed?
    DECLARE
    rqstdaloe number;
    rqstdeloe number;
    devpercent number;
    rqsttarget date;
    timeleft number;
    PSPTime number;
    DevTime number;
    DevPer number;
    BEGIN
    SELECT SUM("TRACK_TIME_SPENT") INTO rqstdaloe
    FROM "TIME_TRACKER"
    LEFT JOIN "TBL_R66_TASK_TYPE" ON "TASK_TYPE_ID" = "TRACK_TYPE"
    WHERE "TRACK_REQUEST_ID" = :P2_REQUEST_ID AND "TASK_TYPE_TYPE" = 'DEV';
    rqstdeloe := :P2_REQUEST_ELOE;
    SELECT SUM(TT1."TRACK_TIME_SPENT") INTO DevTime
    FROM "TIME_TRACKER" TT1
    LEFT JOIN "TBL_R66_TASK_TYPE" TT2 ON TT1."TRACK_TYPE" = TT2."TASK_TYPE_ID"
    WHERE TT1."TRACK_USER" = :P2_PSP_ASSIGNED_PRIMARY AND TT2."TASK_TYPE_TYPE" = 'DEV';
    SELECT SUM(TT1."TRACK_TIME_SPENT") INTO PSPTime
    FROM "TIME_TRACKER" TT1
    WHERE TT1."TRACK_USER" = :P2_PSP_ASSIGNED_PRIMARY;
    DevPer := ROUND(DevTime/PSPTime,2)*8;
    timeleft := TRUNC(((NVL(rqstdeloe,0) - NVL(rqstdaloe,0))/DevPer)+.99999,0);
    rqsttarget := to_date(sysdate,'mm/dd/yyyy') + timeleft;
    RETURN rqsttarget;
    END;

    Hi Dave,
    just a quick hint. If you just want to have the time part of a date/sysdate, you can use TRUNC to do that. So your existing code
    rqsttarget := to_date(sysdate,'mm/dd/yyyy') + timeleft;could be changed to
    rqsttarget := trunc(sysdate) + timeleft;If you perform a TO_DATE on a date variable, the PL/SQL engine will first convert that date variable with an implicit type conversion to a VARCHAR2, because the TO_DATE interface only supports VARCHAR2's and NUMBER's.
    But implicit type conversions are always dangerous, because if your default date format mask isn't mm/dd/yyyy your TO_DATE will fail.
    Regards
    Patrick
    My Blog: http://www.inside-oracle-apex.com
    APEX Plug-Ins: http://apex.oracle.com/plugins
    Twitter: http://www.twitter.com/patrickwolf

  • Need a "display filter" to find http packet which contains a specific word

    hi friends
    in my test lab, i have deployed a web server.
    in default website folder (wwwroot) i have a text file named myfile.txt within which i have written some words, for example the word "computer".
    i started capturing traffic via Microsoft network monitor
    now via my client's browser, i browse this address   http://myserver/myfile.txt & my text file contents are shown within IE.
    now i need a display filter in Microsoft network monitor which find this packet for me ( i meani need to find the single http packet which contains the word "computer".
    i spent a lot of times but it didn't result.
    any help please?
    thanks in advance

    You can use the ContainsBin plugin and there's an example in the library under Search Frame.  For example the following looks for the word FONT.
    ContainsBin(FrameData, ASCII, "FONT")
    Also, just to let you know, we released Message Analyzer (http://blogs.technet.com/MessageAnalyzer), which also has this capability and a lot of other things that might help, such as regex expressions.
    Paul

Maybe you are looking for

  • Analysis of Workload Statistics through ST03n

    Hello All, I am monitoring performance of transaction Vl01n. The workload  table access statistics(St03n) for this transaction shows 0 modificatios, 0 direct reads, 0 sequential reads on table LTAK and has the top access time for the transaction (alm

  • Issue with RN messages between 10g and 11g

    Hi All, We are facing some issues for RN messages; We have configured Rosettanet Actions on both 10G and 11G . In 11G we have the RNTP (remote trading partner) in 10G we have host. The messages posted from host(10g) are not reaching the 11g remote TP

  • X201 Wireless Card not detectable (Centrino Ultimate-N 6300 AGN) (Windows 7 64 bit)

    Hey! I have a slight problem here. We have 5 machines that got shipped with Windows 7 32 bit versions for two weeks ago, I tested all of them to make sure nothing was defect or such things but everything was fine (The wireless network card was clearl

  • Actionscript image gallery doesn't recognize load request

    Hi, I'm trying to create a five image gallery, and when I try to add the load request for the 3rd, 4th, and 5th images I get an error message that says it doesn't recognize that request: see code below: stop(); //turn on buttonMode for mc's so mouse

  • Converting to DNG - is it safer?

    I know this have probably been covered many times before, so please go easy on me... plus sorry if I'm talking crap!!! I'm always worried about getting a corrupting database again... I've set LR to always back up the database on each launch... but th