Passing JText to a method and returning various values

ok, I will try to keep this short.
I have 2 files ( a and b ) main file and a seperate class file. I was instructed to create a GUI interface to my main-a file and use some of the methods I created in my b file.
The program is very easy. Enter a students name and multiple scores. Thes I need to get the total, average and highest. Now the way I initially wrote this programs everything was read into a Input Dialog, but now have to enter everything into Jtext area. Now everything compiles and even runs. However, everything (totals, avg, score, etc..) comes out as a zero, it does not retain any values. I actually even had to change my while loop in b file because it would lock everything up. Anyway I hope someone could help.
here is the code.
file B (main file)
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Students extends JFrame implements ActionListener
          JPanel picture = new JPanel();
          JPanel info = new JPanel();
          JPanel buttons = new JPanel();
          JPanel btnInfo = new JPanel();
          String text = "<html>Student Grades Directions" +
          "<UL>" +
          "<LI>Enter the Students Name. " +
          "<LI>Enter the Students Grade. " +
          "<LI>Click Ok to enter another grade. " +
          "<LI>Click Submit to submit the information and retrieve breakdown. " +
          "<LI>When complete click Exit. " +
          "</UL></html>";
          JLabel pictureLabel = new JLabel( text, new ImageIcon("connexions.gif"), JLabel.LEFT);
          JLabel nameLabel = new JLabel("Enter the Students Name:");
          JTextField nameText = new JTextField(10);
          JLabel gradeLabel = new JLabel("Enter the Students Grade:");
          JTextField gradeText = new JTextField(10);
          JButton ok = new JButton("OK");
          JButton clear = new JButton("Clear");
          JButton submit = new JButton("Submit");
          JButton exit = new JButton("Exit");
          public Students(String t)
               super(t);
               WindowUtilities.setNativeLookAndFeel();
               Container c = getContentPane();
               Student s = new Student();
               StuChange sc = new StuChange();
               picture.setBorder(BorderFactory.createBevelBorder(1));
               picture.add(pictureLabel);
               btnInfo.add(picture, "North");
               info.add(nameLabel);
               info.add(nameText);
               info.add(gradeLabel);
               info.add(gradeText);               
               info.setBorder(BorderFactory.createEtchedBorder(Color.yellow, Color.black));
               btnInfo.add(info);
               c.add(btnInfo, "Center");
               buttons.add(ok);
               buttons.add(clear);
               buttons.add(submit);
               buttons.add(exit);
               ok.addActionListener(this);
               clear.addActionListener(this);
               submit.addActionListener(this);
               exit.addActionListener(this);          
               c.add(buttons, "South");
               pack();     
               addWindowListener(new ExitListener());
               setSize(650, 250);
               setVisible(true);
               Dimension screenSize =                               
Toolkit.getDefaultToolkit().getScreenSize();
               Dimension size = getSize();
               screenSize.height = screenSize.height/2;
               screenSize.width = screenSize.width/2;
               size.height = size.height/2;
               size.width = size.width/2;
               int y = screenSize.height - size.height;
               int x = screenSize.width - size.width;
               setLocation(x, y);
          public void actionPerformed(ActionEvent ae)
               Object btn = ae.getSource();
               Student s = new Student();
               if ( btn == ok )
                    s.grade = Double.parseDouble(gradeText.getText());
                    s.setGrades(gradeText);
               if ( btn == clear )
                    nameText.setText("");
                    gradeText.setText("");
               if ( btn == submit )
                    if ( nameText.getText().length() == 0 )
                         JOptionPane.showMessageDialog(null, "you must Enter a students name");
                         else
                         JOptionPane.showMessageDialog(null, "Your information has been submitted");
                         s.name = nameText.getText();
                         JOptionPane.showMessageDialog(null, s.getName());
               if ( btn == exit )
                    System.exit(0);
     public static void main(String[]args)
          Students s = new Students("Test");

file B (class file)
import javax.swing.*;
public class Student
     protected String name;
     protected int counter, answer;
     protected double avg, grade, total, temp, high;
     public Student()
          name = "";     
          total = 0;
          avg = 0;
          counter = 1;
          temp = 0;
          high = 0;
     public double getHigh()
          return high;
     public String getName()
          return name;
     public double getAvg()
          return avg;
     public double getTotal()
          return total;
     public String setName()
          while ( name.length() == 0 )
               name = JOptionPane.showInputDialog( "Enter the Students Name.");
          return name;               
     public void setGrades(double a )
          double tempgrade = 0;
          grade = a;
          //grade = Integer.parseInt(JOptionPane.showInputDialog("Please enter " + name + "'s numeric                
     //grade."));
               if ( grade == -1 )
                    JOptionPane.showMessageDialog(null, name + "'s letter grade is " + (double) getAvg() );
               else
                    if ( grade <= -2 || grade > 100 && grade != 0 )
                         JOptionPane.showMessageDialog( null, "You must enter a number between 0 -           
                         100");
                         grade = 0;
                    else
                    //grade = tempgrade;
                         total += grade;
                         high = Math.max(temp, grade);
                         temp = high;
                         avg = ( total / counter );
                         counter += 1;
                    grade = Integer.parseInt(JOptionPane.showInputDialog("Please enter " + name + "'s           
               numeric grade."));
     public void getLetterGrade( double a)
          avg = a;
          if ( avg >= 90 )
               JOptionPane.showMessageDialog(null, name + " has an A" );
          else if ( avg >= 80 )
               JOptionPane.showMessageDialog(null, name + " has a B" );
          else if ( avg >= 70 )
               JOptionPane.showMessageDialog(null, name + " has a C" );
          else if ( avg >= 60 )
               JOptionPane.showMessageDialog(null, name + " has a D" );
          else
               JOptionPane.showMessageDialog(null, name + " has an F" );
     public int Intro(int a)
          answer = a;
          answer = Integer.parseInt(JOptionPane.showInputDialog(null, "Press\n1 to enter Students with grades\n2 to      
          enter Students with extra credit (100 points)\n3 Exit"));      
               if ( answer != 1 && answer != 2 && answer != 3 )
                    JOptionPane.showMessageDialog(null, "You should have went with\n1, 2 or 3 have fun           
          reloading!");
          return answer;
}

Similar Messages

  • Mutator to compute set and return the value

    Hi
    I am having trouble working out how to do a mutator that does all three
    compute a value set the value and then return it this is what i have so far
    this example calculates and returns the value but does it set the value of totalSlices ???? this is the best option so far
    public int totalSlices (){
    int total = meatSlices + vegSlices;
    return (int) total;
    this one seems more likely to me but unsure is this a set method as well
    public insert (int fiveC)
    fiveCentCoin += fiveC;
    returne fiveCentCoin;
    this is the final example i have come up with but dont know if it sets the value as well
    public int calculateCost () {
    double cost;
    if (age==0) {
    age = 0.1;
    if (neutered) {
    cost = (100/age) + (stay * 3) + SHOTS + TAGS;
    } else {
    cost = (100/age) + (stay * 3) + SHOTS + TAGS + NEUTER;
    return (int) Math.round (cost);
    the problem i face i am not sure of how to combine a mutator calculation, set method and return it all in one i havnt done that before and cannot find an example
    thanks

    I think you're trying to take a hollistic approach to programming. That won't work.
    You need to go back and get a good understanding of exactly what each element of Java does.
    Sylvia.

  • SUBMIT and return the value of that report into internal table

    Dear all,
    I have a requirement. I want to submit a report and return the value of that report into my internal table.
    How to do this.
    Pl. guide.

    Hi Vidhya,
    Below links from SAP help will resolve your issue.
    http://help.sap.com/saphelp_nw04/Helpdata/EN/fc/eb3bde358411d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3bd1358411d1829f0000e829fbfe/content.htm
    Edited by: Harsh Bhalla on Jan 2, 2010 11:54 AM

  • How to search two columns and return a value in the same row to a cell?

    Identification
    Diameter
    Soak
    3" Tank (inches/kft)
    AWG
    mils
    Code
    Strands
    Shield
    Conductor
    Insulation
    Semi-Con
    Days
    SD
    Injection
    Soak
    Total
    2
    175
    00
    7
    External
    0.288
    0.692
    0.752
    60
    0.4
    3.6
    20.0
    23.6
    2
    220
    00
    7
    External
    0.284
    0.764
    0.864
    75
    0.4
    3.6
    20.0
    23.6
    2
    260
    00
    7
    External
    0.284
    0.844
    0.944
    90
    0.4
    3.6
    21.8
    25.4
    2
    320
    00
    7
    External
    0.288
    0.964
    1.064
    110
    0.4
    3.6
    24.3
    27.0
    2
    345
    00
    7
    External
    0.288
    1.014
    1.114
    115
    0.4
    3.6
    25.6
    29.2
    Length
    3"
    4"
    AWG
    mils
    Soak
    SD
    Injection (3")
    Injection (4")
    650
    2
    320
    I want to input two values, AWG and mils and return the value in the Days column. 
    In the instance of what I am showing ....   AWG=2 AND mils=320 so Soak=110 ....
    I want to search the columns (AWG) AND (mils) to return a value in the column (Days) for that row into cell H10 (Soak)  ...
    So far I have toyed with LOOKUP, INDEX and MATCH ....

    SCW,
    I'm sure there is a clever way to cascade functions to avoid adding an auxiliary column in your practice table, but to me it wouldn't be worth the aggravation. I would add a column that concatenates Columns A & B, AWG & mils. This column can be anywhere and would be Hidden. Let's say your new column is Column N.
    In Column N, fill the body rows with:
    =A&"-"&B
    As good Numbers programming form would indicate, let's name the Practice Table Practices and only put the practices in that table. In another table where you do the lookup, let's call it Program, we will have the calculation/lookup.
    Based on your example, I'd guess that AWG may be in Column D and mils in Column E of your Program table, and the Soak lookup in Column F. If I'm wrong, adjust the column id.
    In Column F, write:
    =OFFSET(Practices::I$1,MATCH(D&"-"&E, Practices::N,0)−1, 0)
    The hyphen in the concatenated representation of the combination of AWG and mils is just tp make it more readable.
    As I'm sure you know, you could use other approaches, but since I had you put your aux column at the end of your Practices table, OFFSET with MATCH is a clean approach. INDEX could be used too.
    Here's an illustration:
    Regards,
    Jerry

  • How crm visit the external website and return the value to crm

    how crm visit the external website and return the value to crm?
    Awen

    Can you elaborate the question? I assume that you are looking for some sort of mechanism to validate a customer's web site?
    Regardless of the scenario, the way to validate or retrieve a value from an external web site is to write a plugin that executes a WebRequest to the external site and reads the response.

  • Whats the difference between producing output and returning a value?

    I've just started learning Java. I am having difficulty understanding what it means to "return a value".
    If a method has an argument, then whenever this method is called the variable named will be used for output.
    If you create a method to return a new value rather than display it, you would exchange the 'void' for 'double' e.g. public static double predictRaise(double moneyAmount). My book states that a return statement causes a value to be sent from a called method back to the calling method. Their example is not clear to me. Here is what they show for when only 'output' is produced:
    <code>
    Public static void predictRaiseUsingRate (double money, double rate)// 2 arguments
              double newAmount;
              newAmount = money * (1 + rate);
              System.out.println (?With raise, new salary is ? + newAmount);
    </code>
    And their example of a returned value:
    <code>
    public static double predictRaise(double moneyAmount)
              double newAmount;     
              newAmount = moneyAmount * 1.10;
              return newAmount;
    </code>
    Their explanation: "This return statement causes a value to be sent from a called method back to the calling method. The value stored in newAmount is      sent back to any method that calls predictRaise() method."
    For some reason this is just not sinking in. Does anyone have a better example/explanation? I could not find anything with a better explanation in archives.
    Are they tring to tell me: "if the original method declares an argument that is declared as 257 in the method call, that when that same method is called again, it will always be 257? But if you do a return statement, any changes in the return statement will now always be used in all methods calling that method?
    Thanks for your help.
    Gizelle

    To use an older and possibly more easily understood terminology. Methods can either be "functions" almost in the mathematical sense or they can be "procedures" in the sense of a process.
    A function is a mapping between a "domain", its arguments, and a "range", its result. An example of a function in mathematics is cosine, which takes an argument in degrees or radians and returns a result between -1 and 1. In java functions are just methods that declare a result type. eg. public int foo(int arg).
    A procedure is a program that doesn't return any result, it's not something that fits well into mathematics, but it occurs all the time in real life. For example, walking the dog does not map something from a domain to a range, but it may have some side effects, which is why I always carry a plastic bag with me. Procedures in java are methods that are declared as "void". eg. public void foo(int arg).
    All the well known arithmetic operations are functions, they take one or two arguments in the domain of numbers and return a result in the same set. Eg, x = a + b, the operator + is a function that takes two numbers, calculates the arithmetic sum of them and returns a result. Functions are very handy since you can string them together, eg. z = a+foo(b)*max(c+d). This doesn't work with procedures.
    Procedures are often used for much longer and more involved operations, there is no immediate result, but a lot of things may occur while they run. Data may be printed on a screen or paper, a database or file may get updated and email messages might get send. But no other expession is waiting for a resulting value so it can carry on. Procedures may also happen asynchonously, ie. outside the timeframe of their caller, see threads. Functions cannot do this, or if they do, they turn into procedures by throwing away their result. For example, you can schedule a procedure to send an email to your friends every Friday inviting them to go out for drinks, but you don't wait around for the result.
    In a way functions are a bit like phone calls, you wait for a response, procedures are more like snail mail, you send it off and check on what happened later.
    I hope this helps.

  • How does "Unflatten From String" take a type and return a value of that type?

    http://zone.ni.com/reference/en-XX/help/371361E-01/glang/unflatten_from_string/
    How exactly does the "type" argument for "Unflatten From String" work? I need to create a VI that takes a type, passes it as an argument to several calls of the "Unflatten From String" function, and returns an array containing elements of the type originally passed. The "Unflatten From String" function seems to do some magic though, because the type of the "value" that it outputs changes depending on the type it is passed as input. How do I do the same magic in my VI?
    Ultimately, what I need to accomplish is an unflatten-list operation. Given a type T and a byte string of length L (which contains a concatenation of T elements that are flattened to their bytes), create a VI that unflattens all the types in the string and return an array of length (L / sizeof(T)) that contains each type.
    Note: performing the unflatten-list operation is trivial, but I cannot for the life of me figure out how to do it in a VI that takes a type and returns an array of the appropriate type. By the way, my data is being given to me from another source, so please don't bother suggesting that I should be flattening an array using LabVIEW's "Flatten To String" function in the first place. My data is not given in LabVIEW's array format: http://zone.ni.com/reference/en-XX/help/371361B-01/lvconcepts/flattened_data/
    Thanks a ton!
    -Wakka

    Take a look at this example:  You can see that the flattened string contains several bytes.  The first four bytes contain the length of array (number of elements).  Since the data type is U32, the next 32 bits (4 bytes) contains the value of the first element, and so on.  Could you possibly use this scheme to do what you want to do?  Other data types present different outputs.  You would have to experiment with them.
    - tbob
    Inventor of the WORM Global

  • How to call Instance Methods and set property values in BAPI?

    In Project systems, for the three business objects viz.
    Network, ProjectDefinition and WBS, there are two kinds of methods which are available : class methods and instance methods. We have tried calling some instance methods, for instance, BAPI_PROJECTDEF_GETDETAIL to get details pertaining to a project. While importing this BAPI, it shows two elements for mapping i.e. Current Internal Project(string) and Current External Project(string). We supplied these values for an existing project. Upon running this call through an XML client at our end, it
    returned an error "Module Unknown Exception". This general message is present on every instance method thus far. Upon searching in BAPI Explorer for Project System->ProjectDefinition->GetDetail, we found that this BAPI didn't take any input parameter.
    Following message was displayed in BAPI Exlorer for this BAPI:
    "... Obligatory import parameters are the external and internal keys CURRENTEXTERNALPROJE and CURRENTINTERNALPROJE of the project definition.The system reads parameters contained in the structure
    BAPI_PROJECT_DEFINITION_EX ..."
    i) How to supply the values of Obligatory import parameters.
    ii) What are the possible causes of this exception.
    iii) How to call an instance method. We are using same mechanism for calling class as well as instance methods so far, we have been to call only class level methods successfully. Is there anything special that we
    need to do to call instance methods.

    Hi,
    what version is the SAP PS running?  If WebAs or higher,  create an inbound synch interface containing your two parameters in the request structure and as many as you require in your response structure.  Generate an Inbound ABAP proxy, where you can plug in some code, i.e. create and instantiate an object of the required type and make the call to the BAPI.
    If SAP PS on lower than WebAs, then create a wrapper function module and make it RFC enabled.  Then plug your code in here and do the same thing.
    Watch out for commits!
    Cheers,
    Mark

  • Search and return multiple value.

    Hello!
    I have a little problem that I need help with. It's a little complicated so bare with me.
    I have multiple tables of Income for different people. The table is like this
    Table Name: A's Income
    Date ........ Amount
    5/1/09 .... 5.55
    5/3/09 .... 7.89
    5/3/09 .... 8.90
    5/7/09 .... 3.45
    I created a new table to log down each day income across every person's table. So it's something like this
    Table Name: Total Income by Date
    Date ....... Amount
    5/1/09 ... = Income of A + B + C, etc.
    5/2/09 ... = " "
    5/3/09 ... = etc.
    5/4/09
    5/5/09
    5/6/09
    5/7/09
    So here's the formula for the Amount under the Total Income by Date table
    =IF(Date = IFERROR(LOOKUP(Date, A's Income :: Date), 0), LOOKUP(Date,A's Income :: Date,A's Income :: Amount), 0)
    That's only for one person (A) I would add the rest into the formula, but the problem is that if Person A has multiple income logged for the same date like the first table (5/3 - 7.89 & 5/3 - 8.90) the LOOKUP(Date,A's Income :: Date,A's Income :: Amount) only return the first value it finds. Is there a function or method I could do to return both value together? I tried SUMIF(A's Income :: Date, "= Date", A's Income :: Amount)
    If there needs to be any clearing up please tell me.
    Thanks a lot.
    Message was edited by: Douten
    Message was edited by: Douten
    Message was edited by: Douten

    Wow thank you so much!! I never knew the answer was that simple. I thought that if we wanted to use SUMIF it would have to be SUMIF(A's income :: $A,"= A",A's income :: B). I never tried your solution. Thanks a lot again!
    Can you explain a little bit more on your B ("Sum") Column? I'm still new to excel programs, why did you do =SUM(OFFSET($A$1,ROW()-1,2,1,COLUMNS(2:2)-2)), instead of something like SUM(C,D)?
    Thanks

  • Linking two DCs using interface views and return the value

    Hi,
    I have two webdynpro DCs. DC1 & DC2, each contains one view.
    Point 1:  From the DC1-->DC1View1 ,when I click a button , It should call  DC2(This is happening).
    Point2: When the DC2 is executed it should return to DC1-->DC1View1, value from DC2 need to be passed to DC1 also.
    How to acheive  point2. How anyone help on this .
    Regards,
    Muhammed Nishad J.

    Hi,
    You would have created a inbound and outbound plug between DC1-->DC1View1 and DC2 ->View.
    Now you will have to create the same for DC2 ->View and DC1-->DC1View1
    1) create an inbound plug on DC1-->DC1View1 and outbound plug on DC2->view.
    2) Now create a link as you would have in the first case.
    3) create a parameter in DC2->view for outbound plug, and also the same in inbound plug of the DC1->view
    4) Now in the method that was created for the outbound(public void onPlug<name of plug> )pass the value into the parameter created
    5) in the inbound method(public void onPlug<name of inbound> get the value of the parameter in a variable.
    I hope this solves your problem.
    Thanks and Regards,
    Narayani

  • Get Variant Attribute Should Search for and return multiple values based on RegEx

    I am using Variants as lookup tables (see this article):
    Using Variant Attributes to Build a Dictionary or Look-up Table
    I would like to be able to use some sort of wildcard to return multiple results from the Get Variant Attribute VI (all results are of the same type, and I don't know the exact names of all the results - those two points make this idea distinct from this idea: Set/Get Variant Attribute for Multiple Attributes).
    Ideally the wildcard would be RegEx.  If it were, the means by which you specify what to return is standardized.
    In the above example, there would be some ambiguity in terms of whether or not you would want to return a result or an array of results given an input, and I doubt you could detect and assume RegEx is what the programmer desires to use.  So I think this means a new input would be required to specify whether or not the "name" input of the Get Variant Attribute VI should be interpreted as a RegEx query.
     

    Why RegEx? Why not SQL query? Why not filename wildcard matching?
    I don't see anything that makes RegEx special. For this kind of functionality, the code that you've written seems like exactly the right way to do it rather than bolting a RegEx parser or any other system into the primitives or clouding the palette with a bunch of primitives to support various search functions. I could see a primitive that takes a VI refnum that has a conpane of string in/boolean out that you would pass in to supply the filter functionality that you want for any given application, but even that I'd lean toward just letting that be a library that someone writes on top of the primitives. Yes, there is some memory reduction that can be done if it is internal to the primitives, no question about that. But there are so many variations in how to do that filtration/sorting/etc that I'm not confident that any prim would cover a sufficient use case to be worth it. I could be wrong here ... let's see what other comments come in.

  • EXECUTE IMMEDIATE dynamic statement and return procedure value

    Hello guys,
    How can i return values from procedure using EXECUTE IMMEDIATE statment?
    I made easy example:
    CREATE OR REPLACE PACKAGE pac_test
    IS
    PROCEDURE pro_calc_average( p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER,
    v_out OUT NUMBER);
    PROCEDURE pro_calc(p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER);
    END;
    CREATE OR REPLACE PACKAGE BODY pac_test
    IS
    PROCEDURE pro_calc_average( p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER,
    v_out OUT NUMBER)
    IS
    BEGIN
    v_out:=(p_age_1+p_age_2+p_age_3)/3;
    END pro_calc_average;
    PROCEDURE pro_calc(p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER)
    IS
    x number;
    v_sql varchar2(4000);
    BEGIN
    v_sql:='pac_test.pro_calc_average('||p_age_1||','||p_age_2||','||p_age_3||',x)';
    dbms_output.put_line(v_sql);
    EXECUTE IMMEDIATE v_sql;
    dbms_output.put_line(' ====> '||x);
    END pro_calc;
    END;
    -- Run procedures [Faild]
    EXEC pac_test.pro_calc(2,9,19);
    When i run:
    DECLARE
    x number;
    BEGIN
    pac_test.pro_calc_average(2,9,9,x);
    dbms_output.put_line(' ====> '||x);
    END;
    It's works, but this is not what i am looking for.
    Thank you guys,
    Sam.

    Hi Sam,
    Like this?
    CREATE OR REPLACE PACKAGE pac_test
    IS
    pac_var number;  /* added new*/
    PROCEDURE pro_calc_average( p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER,
    v_out OUT NUMBER);
    PROCEDURE pro_calc(p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER);
    END;
    CREATE OR REPLACE PACKAGE BODY pac_test
    IS
    PROCEDURE pro_calc_average( p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER,
    v_out OUT NUMBER)
    IS
    BEGIN
    v_out:=(p_age_1+p_age_2+p_age_3)/3;
    END pro_calc_average;
    PROCEDURE pro_calc(p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER)
    IS
    pack_local_var number;
    v_sql varchar2(4000);
    BEGIN
    --v_sql:='pac_test.pro_calc_average('||p_age_1||','||p_age_2||','||p_age_3||',x)';
    v_sql:=' declare x number; begin pac_test.pro_calc_average('||p_age_1||','||p_age_2||','||p_age_3||',x);
    dbms_output.put_line(x);
    pac_test.pac_var:=x; /* added new*/
    end;';
    dbms_output.put_line(v_sql);
    EXECUTE IMMEDIATE v_sql;
    pack_local_var:=pac_var; /* added new*/
    dbms_output.put_line(pack_local_var); /* added new*/
    END pro_calc;
    END;Declared a package variable.
    But be aware this variable is accessible to everyone and they can read or change its value if they have the right privileges.
    REgards,
    Bhushan

  • Comma separated values for input and return multiple values

    Hello everyone,
    I have this simple package. Can someone suggest a way to accept multiple empno as input (comma separated) and to return set of salary values for the set of employee numbers (compatible to work with lower Oracle versions). Thanks much!
    CREATE OR REPLACE PACKAGE test_multi IS
    FUNCTION GET_sal(P_empno IN emp.empno%TYPE) RETURN NUMBER;
    END test_multi;
    CREATE OR REPLACE PACKAGE BODY test_multi IS
    FUNCTION GET_sal(P_empno IN emp.empno%TYPE) RETURN NUMBER IS
    V_sal NUMBER(10,2);
    MSG VARCHAR2(200);
    BEGIN
    SELECT sal
    INTO V_sal
    FROM emp
    WHERE empno = p_empno;
    RETURN V_sal;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.PUT_LINE('No data found.');
    IF (V_sal IS NULL OR V_sal = 0) THEN
    V_sal := 0;
    END IF;
    RETURN V_sal;
    WHEN OTHERS THEN
    MSG := SUBSTR(SQLERRM, 1, 70);
    DBMS_OUTPUT.PUT_LINE(MSG);
    END GET_sal;
    END test_multi; -- End package

    A way to do this in 10g or above...
    SQL> ed
    Wrote file afiedt.buf
      1  with e as (select '7499,7698,7654,7902' as enos from dual)
      2  --
      3  select empno, sal
      4  from emp
      5  where empno in (select regexp_substr(enos,'[^,]+',1,rownum)
      6                  from   e
      7*                 connect by rownum <= length(regexp_replace(enos,'[^,]'))+1)
    SQL> /
         EMPNO        SAL
          7902       3000
          7698       2850
          7654       1250
          7499       1600
    SQL>As for Oracle 8, .... well.... like Oracle, I no longer use unsupported versions, so I'd recommend you upgrade to something that is supported.

  • Case to query multiple values and return single value to different table

    Hi this is my first table:
    with Table_1
    as
          select 'CAR' Object, 2000 Policy    from dual
          union all
          select 'BIKE' Object, 2000 Policy  from dual
          union all
          select 'HOUSE' Object, 2000 Policy  from dual
          union all
          select 'MOBILE' Object, 2000 Policy  from dual
          union all
          select 'MONEY' Object, 2000 Policy  from dual
          union all
          select 'CREDIT' Object, 2000 Policy  from dual
          union all
          select 'SCOOTER' Object, 2001 Policy    from dual
          union all
          select 'BIKE' Object, 2001 Policy  from dual
          union all
          select 'BEACH' Object, 2001 Policy  from dual
          union all
          select 'HOUSE' Object, 2001 Policy  from dual
          union all
          select 'MONEY' Object, 2001 Policy  from dual
          union all
          select 'CREDIT' Object, 2001 Policy  from dual
          union all
          select 'DOOR' Object, 2002 Policy    from dual
          union all
          select 'BIKE' Object, 2002 Policy  from dual
          union all
          select 'GARDEN' Object, 2002 Policy  from dual
          union all
          select 'MOBILE' Object, 2002 Policy  from dual
          union all
          select 'MONEY' Object, 2002 Policy  from dual
          union all
          select 'CREDIT' Object, 2002 Policy  from dual
    select * from Table_1I need to Query the object column of table_1 for CAR or HOUSE and if they are present then returns 'Y' otherwise 'N'. This table_1 will link to table_2 via Policy and the result will be table_3
    with Table_2
    as
          select '21' AGE, 2000 Policy  from dual
          union all
          select '22' AGE, 2001 Policy from dual
          union all
          select '27' AGE, 2002 Policy from dual
    select * from Table_2
    with Table_3
    as
          select '21' AGE, 2000 Policy, 'Y'  Many_Obj    from dual
          union all
          select '22' AGE, 2001 Policy,  'Y' Many_Obj from dual
          union all
          select '27' AGE, 2002 Policy,  'N' Many_Obj from dual
    select * from Table_3Thanks in advance
    Banner:
    Oracle Database 11g 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
    !

    Thanks for the insert statements.
    Here is one way
    with Table_1
    as
          select 'CAR' Object, 2000 Policy    from dual
          union all
          select 'BIKE' Object, 2000 Policy  from dual
          union all
          select 'HOUSE' Object, 2000 Policy  from dual
          union all
          select 'MOBILE' Object, 2000 Policy  from dual
          union all
          select 'MONEY' Object, 2000 Policy  from dual
          union all
          select 'CREDIT' Object, 2000 Policy  from dual
          union all
          select 'SCOOTER' Object, 2001 Policy    from dual
          union all
          select 'BIKE' Object, 2001 Policy  from dual
          union all
          select 'BEACH' Object, 2001 Policy  from dual
          union all
          select 'HOUSE' Object, 2001 Policy  from dual
          union all
          select 'MONEY' Object, 2001 Policy  from dual
          union all
          select 'CREDIT' Object, 2001 Policy  from dual
          union all
          select 'DOOR' Object, 2002 Policy    from dual
          union all
          select 'BIKE' Object, 2002 Policy  from dual
          union all
          select 'GARDEN' Object, 2002 Policy  from dual
          union all
          select 'MOBILE' Object, 2002 Policy  from dual
          union all
          select 'MONEY' Object, 2002 Policy  from dual
          union all
          select 'CREDIT' Object, 2002 Policy  from dual
    Table_2
    as
          select '21' AGE, 2000 Policy  from dual
          union all
          select '22' AGE, 2001 Policy from dual
          union all
          select '27' AGE, 2002 Policy from dual
    SELECT
         age,
         policy,
         Many_Obj
    from
    SELECT
         t2.age,
         t2.policy,
         CASE
              WHEN SUM(
                        CASE
                             WHEN t1.object IN ('CAR','HOUSE')
                             THEN 1
                             ELSE 0
                        END) over( PARTITION BY t2.age,t2.policy) > 0
              THEN 'Y'
              ELSE 'N'
         END Many_Obj,
         row_number() over (PARTITION BY t2.age,t2.policy order by 1) rn
    FROM
         Table_1 t1,
         Table_2 t2
    WHERE
         t1.policy = t2.policy
    where rn = 1;
    AGE POLICY                 MANY_OBJ
    21  2000                   Y       
    22  2001                   Y       
    27  2002                   N        I would advise you to spend some time learning analytic questions and using CASE expressions.

  • UPDATE statement based on query and return multiple value

    Hi everybody,
    I have two tables: temp3 and temp
    One of them (temp3) should be updated based on the query where clause (id and flag columns).
    I run this query but it updates all of the records in the temp3. I want to update only records with 'UPDATED' flag.
    update temp3 t3
    set (id,name,address) = (select t.id, t.name, t.address from temp t, temp3 t3
    where t.id = t3.id and t.flag = 'UPDATED');
    Does any body know how I can do it?
    I appreciate your help
    Thx

    Hello
    Basically you're missing a where clause on your update statement to restrict rows in t3 to the ones that have a corresponding row in t1.
    SQL> select * from dt_test_t1;
            ID NAME                 ADDRESS              ROW_STATUS
             1 Joseph Bloggs        Some street          UPDATED
             1 Joe Bloggs           Old street           OLD
             2 Fredrick Bloggs      New street           UPDATED
             2 Fred Bloggs          Some street          OLD
             3 Robert Bloggs        Better street        UPDATED
             3 Bob Bloggs           Some street          OLD
           100 Barry Bethel         Some street          UPDATED
           200 Giles Brandreth      Some street          UPDATED
    8 rows selected.
    SQL> select * from dt_test_t3;
            ID NAME                 ADDRESS              ROW_STATUS
             1 Joe Bloggs           Old street
             2 Fred Bloggs          Some street
             3 Bob Bloggs           Some street
             4 Joe Smith            Some street
             5 John Doe             Some street
    --this update as it stands does not work as it updates rows to have
    --null name and address where there is not a proper matching row in
    --t1
    SQL> UPDATE
      2     dt_test_t3 t3
      3  SET
      4     (       t3.name,
      5             t3.address,
      6             t3.row_status
      7     ) = (SELECT
      8             t1.name,
      9             t1.address,
    10             t1.row_status
    11          FROM
    12             dt_test_t1 t1
    13          WHERE
    14             t1.id = t3.id
    15          AND
    16             t1.row_status = 'UPDATED'
    17         );
    5 rows updated.
    SQL> select * from dt_test_t3;
            ID NAME                 ADDRESS              ROW_STATUS
             1 Joseph Bloggs        Some street          UPDATED
             2 Fredrick Bloggs      New street           UPDATED
             3 Robert Bloggs        Better street        UPDATED
    4
    5
    SQL> rollback;
    Rollback complete.
    --Now add in the where clause to make sure we're only updating rows in
    --t3 that have a corresponding row in t1:
    SQL> UPDATE
      2     dt_test_t3 t3
      3  SET
      4     (       t3.name,
      5             t3.address,
      6             t3.row_status
      7     ) = (SELECT
      8             t1.name,
      9             t1.address,
    10             t1.row_status
    11          FROM
    12             dt_test_t1 t1
    13          WHERE
    14             t1.id = t3.id
    15          AND
    16             t1.row_status = 'UPDATED'
    17         )
    18  WHERE
    19     EXISTS( SELECT
    20                     NULL
    21             FROM
    22                     dt_test_t1 t1
    23             WHERE
    24                     t1.id = t3.id
    25             AND
    26                     t1.row_status = 'UPDATED'
    27             );
    3 rows updated.
    SQL> select * from dt_test_t3;
            ID NAME                 ADDRESS              ROW_STATUS
             1 Joseph Bloggs        Some street          UPDATED
             2 Fredrick Bloggs      New street           UPDATED
             3 Robert Bloggs        Better street        UPDATED
             4 Joe Smith            Some street
             5 John Doe             Some streetHTH
    David

Maybe you are looking for

  • Problem in join statement

    Hi, I have the following join cond on ekko, ekpo, ekkn tables.   SELECT m~ebeln m~procstat m~rlwrt m~frgke m~bukrs          c~ebelp c~txz01 c~knttp c~netwr          c1~nplnr c1~kostl c1~anln1 c1~sakto c1~prctr c1~aufnr c1~imkey c1~ps_psp_pnr c1~zekkn

  • Regex with strings that contain non-latin chars

    I am having difficulty with a regex when testing for words that contain non-latin characters (specifcally Japanese, I haven't tested other scripts). My code: keyword = StringUtil.trim(keyword); //if(keywords.indexOf(keyword) == -1) regex = new RegExp

  • Multiple List Box showing Duplicate Options in Existing Form Library forms.

    Good day.  I currently have an InfoPath 2010 form library template that has a view containing 4 multiple selection list boxes.  These list boxes get their values from a hidden view that contains 4 repeating tables in which I've set default values for

  • JOptionPane Sizing

    Seems simple - but how do I change the size of this - my drop-down menu doesn't fit! Thanks Sam

  • Same images in LR3 and LR2.7?

    EDIT:  I just reset Camera Calibration->process back to 2003 from 2010(Current) and I get the speed. - Terje Hi, I am one of those that has been struck by the LR3 effect with a slow handling . I have to do some image prosessing and will use LR 2.7 to