Conditions of cursor

Hello

cursor (a number) is a select statement;

Now, I want to

If a = 1 select col1, col2, col3 from table;

on the other

Select col4, col5 table;

Can anyone suggest how to achieve


Thanx

create or replace procedure cursor_proc (in number) is
the_cursor sys_refcursor;
Start
If a = 1 then
Open the the_cursor for
Select first_name, last_name from order by last_name;
/ * do it all using the_cursor * /.
close the_cursor;
elsif a = 2 then
Open the the_cursor for
Select first_name, last_name, Address1, city, state, zip from employed by last_name;
/ * do it all using the_cursor * /.
close the_cursor;
on the other
Open the the_cursor for
Select dept_cd, dept_name of service by dept_name order;
/ * do it all using the_cursor * /.
close the_cursor;
end if;
end

Published by: remy on October 6, 2008 07:37

Published by: remy on October 6, 2008 07:39

Tags: Database

Similar Questions

  • change the loop condition and cursor

    Hi all

    We have the procedure below:

    PROCEDURE ext_UPLOAD IS

    v_colname VARCHAR2 (30);

    v_tl_colname VARCHAR2 (30);

    v_stmt VARCHAR2 (32767).

    v_stmt_no NUMBER;

    CURSOR DISTINCT_COLUMN IS

    SELECT DISTINCT T_STG DB_COL;

    BEGIN

    v_stmt_no: = 5;

    FOR DBCOL IN DISTINCT_COLUMN

    LOOP

    v_colname: = DBCOL. DB_COL;

    v_stmt_no: = 10;

    v_stmt: = ' MERGE IN EXT_B ED

    WITH THE HELP OF)

    SELECT TAG_DATA,

    EQUIPMENT_FK_KEY,

    WORKORDER_FK_KEY,

    SEGMENT_FK_KEY,

    SHIFT_WORKDAY_FK_KEY,

    HOUR_FK_KEY,

    ITEM_FK_KEY,

    READ_TIME,

    ATTR_GROUP_ID,

    RECIPE_NUM,

    RECIPE_VERSION,

    NVL (FND_GLOBAL. User_Id,-1) l_updated_by,.

    NVL (FND_GLOBAL. Login_Id,-1) l_last_update_login

    OF MTH_TAG_READINGS_T_STG

    WHERE DB_COL = ' | " ' || v_colname | " ' ||') TS

    WE (';)

    v_stmt: = v_stmt | "ED. EQUIPMENT_PK_KEY = TS. EQUIPMENT_FK_KEY AND

    ED. READ_TIME = TS. READ_TIME)

    WHEN MATCHED THEN

    UPDATE

    GAME ED.'. v_colname |' = TS. TAG_DATA,

    ED. LAST_UPDATED_BY = TS.l_updated_by,';

    v_stmt: = v_stmt | "ED. LAST_UPDATE_LOGIN = TS.l_last_update_login

    WHEN NOT MATCHED THEN

    INSERT ('| v_colname |', EXTENSION_ID, EQUIPMENT_PK_KEY, WORKORDER_FK_KEY, SEGMENT_FK_KEY, SHIFT_WORKDAY_FK_KEY, HOUR_FK_KEY, ITEM_FK_KEY, READ_TIME, ATTR_GROUP_ID, LAST_UPDATE_DATE, LAST_UPDATED_BY,';)

    v_stmt: =.

    v_stmt | ("LAST_UPDATE_LOGIN, CREATED_BY, CREATION_DATE, RECIPE_NUM, RECIPE_VERSION)

    VALUES (TS. TAG_DATA, EGO_EXTFWK_S.NEXTVAL, TS. EQUIPMENT_FK_KEY, TS. WORKORDER_FK_KEY, TS. SEGMENT_FK_KEY, TS. SHIFT_WORKDAY_FK_KEY, TS. HOUR_FK_KEY, TS. ITEM_FK_KEY, TS. READ_TIME,';

    v_stmt: = v_stmt | "TS. ATTR_GROUP_ID,' | '''|| SYSDATE | "'| ', TS.l_updated_by, TS.l_last_update_login, TS.l_updated_by,'|"' | SYSDATE | " ' ||', TS. RECIPE_NUM, TS. RECIPE_VERSION)';

    mth_util_pkg.log_msg ('v_stmt: ' | v_stmt, mth_util_pkg.) G_DBG_DYN_SQL);

    -DBMS_OUTPUT. Put_line (v_stmt);

    v_stmt_no: = 20;

    EXECUTE IMMEDIATE v_stmt;

    -VALIDATION;

    END LOOP;

    EXCEPTION

    WHEN INVALID_NUMBER THEN

    RAISE_APPLICATION_ERROR (-20008,'The Data Tag you are tyring to insert the character data is.) A number should instead. ") ;

    WHILE OTHERS THEN

    RAISE_APPLICATION_ERROR (-20008, SQLERRM |' to ' | v_stmt_no);

    END;

    In above query we conduct cursor on DB_COL OF DIFFERENT T_STG, but the above query fails if we have the same db_col, but for groups of different attributes. I want the merge request and loop to work for separate but with given db_col ATTR_GROUP_ID as I have attr_group_id 10 and 20, but two of them may have db_col as n_ext_attr1 and slider should be for db_col and also take into account attr_group_id. can you be it someone please let me know how to change the cursor above and also the loop as well as db_col and attr_group_ ID the two are taken into account.

    Thanks in advance.

    Maybe you need to take a step back and explain exactly what you're trying to reach, providing tables of the example and example, the production of these data in the example data.

    No offence not intended, but your statement dynamic MERGE is not well written, completely does not use bind variables (and why you think concatenating SYSDATE in a stirng as it will work properly, I don't know), and will be a nightmare to maintain in the future.  I'll ignore for now the use of waste from other exception ONCE (even if it's really cr * p coding) you clearly bigger problems to solve first.

    Thus, in addition to providing some data and tables of the example can answer you, why you do not know the names of the columns you try to merge?

    The mention of the ATTR in your instructions seem to feel a bit as if you use a type of entity-attribute-value architecture to your database, is this true? I hope sincerely that no, since it is known to be a performance killer and a nightmare to code and maintain when it comes to relational database engines. (I have a personal experience of having been victims of such a database design, and fortunately, we managed to convince management that the product was not fit for purpose and it was abandoned within months purchased (if only we could see before purchase)!)

  • If - condition of another cursor

    Hello

    I want to write an if-else condition in cursor.i.e.
    cursor c1 is
    If by = 1 then
    Select * from tab1;
    on the other
    Select * from tab2.

    can someone help me on this?

    Published by: user12288167 on June 8, 2011 23:49

    Do not use IF-else in the cursor.
    You can use

    REF CURSOR and in PL/SQL, you open with you candition.
    Like this

     DECLARE
      CUR REF CURSOR ;
    
      BEGIN
       IF () THEN
         OPEN CUR IS 'SELECT * FROM TAB1';
       ELSE
         OPEN CUR IS 'SELECT * FORM TAB2';
     END IF ;
      END; 
    
  • How to create a value fixed for simultaneous program?

    Hi friends,
    I create a simultaneous program with a period of setting...

    In the value set for parameter period, I use the following query:
    -where application_id = 101
    and set_of_books_id =: $PROFILES$ .gl_set_of_bks_id
    and closing_status IN ('o', 'F', 'C')
    order of period_year, period_num' -.

    In my cursor, I have one condition ' where set_of_books_id = '.
    How can I switch the whole above ID of books in the cursor? It does not work when I'm defining another parameter like book and passing this value to the cursor...
    I need this period parameter to return all periods for all the books where we run the concurrent application of... I also need to get all of the books for my cursor IDs...

    I hope I'm making sense... What I'm trying must have the period setting and also an OB id in condition of cursor...
    Rgds,

    Please use the following example

    Start
    FND_GLOBAL. APPS_INITIALIZE (user_id-online-1, resp_id-online 51901, resp_appl_id-online 222);
    end;

    DECLARE
    SET_BKS VARCHAR2 (20);
    BEGIN
    FND_PROFILE. GET ('GL_SET_OF_BKS_ID', SET_BKS);
    DBMS_OUTPUT. PUT_LINE (SET_BKS);
    END;

    Maybe this will help you

    Concerning
    Nitin

  • two cursors at the same time move under a certain condition

    I'm trying to move the two sliders at the same time under a given the conditions. I have my program set up as follows:

    When 1st setting on "Continuous", all output values 4.

    When the 1st setting on "Pulse", values output based on ' 'Send the Signal' button support according to the following below:

    1 1 shows the value of cursor 1 and 2 slider when the switch is on "simultaneous."

    2. the cursor 1 and 2 output the value of cursor 1 and 2 slider when the value of "independent".

    My question is based on 1 above. I basically have a hard time trying to figure out when the condition is set to "Simultaneous" be able to see cursor 2 movement.

    Can anyone help? A large part would be appreciated.

    NOTE: The output is correct how I want it. I want just the cursor 2 move when cursor 1 must move under a certain condition.

    All I needed was to move the Slider 2 property node before the total multiplcation.

    Thanks again James.Morris for your help!

  • Hi Expert, please tell me that how can I recover a recording of a cursor based on a condition

    There is a slider. Where can be one or more folder shows.

    I need to choose Next.

    1. If it is displays multiple records that choose this record where a field is showing not null

    2. If only one record in slider that choose this one (donot penalty on this field shows null or not null)

    Please tell me what I have to do it in.

    Thank you

    You do it in your query SELECT itself. CURSOR is nothing more than a set of instructions to execute the SQL statement. So, unless you get all records you do not know how many records in the cursor.

    Your selection would be something like that.

    Select

    BeO

    Select

    count (*) over() num_rows

    Of

    where

    )

    where num_rows = 1

    (or)

    Num_Rows > 1 and is not null

    )

  • How to get the cursor of the keyboard on a specific area with a condition

    I use forms6i. I have two fields and Field2 1 field1. I want that when field1 = 'A' and slider keyboard then go into Field2 else it needs automatically the Field2. How is that possible?

    Hello

    Please post this question in the appropriate forum.
    This forum is intended for Oracle Application Express.
    The forum for Oracle Forms is:

    {forum: id = 82}

    Please do not post duplicate questions!

    Kind regards
    Kiran

  • HP pavilion g6 stuck on the black screen with cursor 8 windows

    Hello.

    I used windows 8 perfectly... but today when I rebooted my laptop I don't have the 'Press esc to access the configuration menu"and once loaded in the windows icon. It got stuck on the black screen...

    Any ideas or suggestions? How can we get? Icannot go to the start menu cannot load the... Task Manager what can I do? Also the battery also affects bones

    "It was a moment cartoonic, when gravity stops for coyote to make him realize that he was wrong from the beginning."

    Hi, I did a hard job looking for a solution, and after a while, I found a solution. The solution to the problem was a little easy, but at the same time a bit funny too, hehehe.

    The solution was, when I removed the battery, then did what you told me, I even! Even the black of the same screen cursor. Then I tried power the computer nothing do but simply by pressing the power button without the battery in it. The laptop ran using cable ca, and then I was able to use the windows. Its perfect work. Now I have piles in too and its still in good condition.

    Now what do me? Should I replace the battery, I get error 601 (main battery) too. So should I replace it with a new one? I hope that it will be more preferable.

  • The mouse cursor/pointer is a dotted line

    I have a very strange problem that I can't seem to understand.  My mouse cursor (arrow) is essentially an image of an arrow dotted and is VERY difficult to see.  I tried to change the pointer to another through the mouse control panel, but it does not help.  Even more strange, I tried to screen capture the cursor so I could provide an image here, but it seems very well in perforated Cap!  My profession is in it and I'm completely stumped!

    I use a HP laptop with Synaptics touchpad.  I tried to reinstall the driver, but that did not help either.

    The slider looks exactly like it's supposed to look like when you type if you have the option Hide under this condition.  I checked for stuck keys and have rebooted several times.

    Hi golfercor,

    Thank you for using Vista answers Forum.

    "The only way I can get it to look normal is turn on pointer trails."  Then, for some strange reason, the pointer/cursor lines become completely solid, even when the pointer is at rest! »

    This really looks like a video card driver problem.

    When you updated the video card driver did you get it on the manufacturer's website?
    Is this a Vista 32-bit or 64-bit?

    Variable monitor refresh rate are common enough, according to the material.

    Impatience back on your part.

    Chris
    Microsoft Answers Support Engineer
    Visit our Microsoft answers feedback Forum and let us know what you think.

  • cursor jumps around phrases & sometimes disappers completely

    When you type in ANY format, cursor will not be held.  She constantly back and inserts into phrases previously typed, etc and add newly

    characters typed in the areas previously typed sentences.  Sometimes it disappears completely.  Ask me now if there is a problem with the

    mouse?  Just switched to the 'old' style mouse and it seems to be okay.  Any ideas on this page or how to correct the operation of the electronic mouse?  It is a Dell Inspiron 15, Windows Vista system (7).

    Dianne,

    Control Panel > hardware & audio > mouse > pointer and unchecked Options "Hide pointer while typing".

    The current time and the date now in Oregon, United States

    11:21
    Friday, may 3, 2013
    The time Pacific daylight time (PDT)-0700 UTC
     
    UTC/GMT is 18:21 Friday, may 3, 2013
                
    Current weather conditions in Portland

    Just54 ° F / 12 ° C
  • Irregular cursor jumping problem

    My cursor jumps while I type. The problem is very irregular.  There will be approximately 5 - 10 times a minute when I'm on Word or writing emails.  This can last for a week, and then the problem will completely disappear for a week or even a month.  It happened, on and out, since I got my computer in August, 09.

    I tried the slider deactivation of the techniques that have been proposed on this forum.  They do not work in my case.

    I wonder if the touchpad is being physically affected by the way I manage the laptop.  Every day, I put my computer in the protection of my bag sleeve back and cram manual heavy beside her.  Maybe the portable compression inside the bag.  There are actually marks on the screen, I can say are impressions from the keyboard.

    Is it possible to create a condition of jumping cursor simply by compressing a laptop this way?  I would be interested to know if the people with this problem carry their computers under similar conditions.  If so, I will rethink my next purchase and my transport technology.

    Any help is appreciated.

    I can't say with certainty. I can only "speculate", at best.
    1. your used to typing. You might, without realizing it, touched the touchpad that you type.
    2 your sensitivity of the touchpad is too high.
    I can't tell you exactly how to adjust sensitivity touch because mine is Dell and the options I have are not all the same as other brands.

    Right-click on an open office space > Personalize > mouse pointers (Yes, mouse pointers) > from there, you have to look for yourself...
    Look for the Settings of Touchpad > if you find it, one of the options issensitivitysetting.
    Light sensitive to light touch =.
    Heavy = touch sensitive in lourdes.
    Adjustment should come like a slide. Move the slide and experiment.

    I'm talking about mouse, because I guess that you only use touchpad.

    t-4-2

  • Is there a public api Api to check that the cursor is open or close for blackberry 6.0?

    Hi all

    is there an api to check the slider is open or close for Blackberry JDE 6.0.

    Thank you

    Navneet Gupta.

    Hi you

    First of all "accept the solution please...." »

    See this link for more information...

    http://www.BlackBerry.com/developers/docs/4.6.0api/NET/rim/device/API/system/sensor.html

    Net.rim.device.api.system import. *;
    Import net.rim.device.api.ui.UiApplication;
    Import net.rim.device.api.ui.component.RichTextField;
    Import net.rim.device.api.ui.container.MainScreen;

    SerializableAttribute public class SensorDemo extends UiApplication
    {
    public SensorDemo()
    {
    Screen SensorDemoScreen = new SensorDemoScreen();
    pushScreen (screen);
    }
    Public Shared Sub main (String [] args)
    {
    SensorDemo app = new SensorDemo();
    app.enterEventDispatcher ();
    }
    class SensorDemoScreen extends screen implements the SensorListener
    {
    private RichTextField statusField1;
    private RichTextField statusField2;

    public SensorDemoScreen()
    {
    setTitle ("sensor Demo");
    statusField1 = new RichTextField();
    statusField2 = new RichTextField();
    Add (statusField1);
    Add (statusField2);

    Check for the presence of a sensor
    Boolean hasFlipSensor, hasHolsterSensor, hasSliderSensor;
    hasFlipSensor = Sensor.isSupported (Sensor.FLIP);
    hasHolsterSensor = Sensor.isSupported (Sensor.HOLSTER);
    hasSliderSensor = Sensor.isSupported (Sensor.SLIDE);
    statusField1.setText ("Flip:" + hasFlipSensor + "\nHolster:")
    + hasHolsterSensor + "\nSlider:" + hasSliderSensor + "\n"); "."
    Check the status of a sensor
    If (Sensor.isSupported (Sensor.SLIDE))
    {
    int sliderState = Sensor.getState (Sensor.SLIDE);
    Switch (sliderState)
    {
    case Sensor.STATE_SLIDE_CLOSED:
    do something if the cursor is closed
    statusField2.setText ("cursor is closed.");
    break;
    case Sensor.STATE_SLIDE_IN_TRANSITION:
    do something about cursor in transition
    statusField2.setText ("Slider is between open and closed.");
    break;
    case Sensor.STATE_SLIDE_OPEN:
    do something if the cursor is open
    statusField2.setText ("slider is open.");
    break;
    by default:
    statusField2.setText ("cannot determine the State of the cursor from.");
    }
    }
    Listening to changes to a sensor
    Sensor.addListener (Application.getApplication (),)
    Sensor.SLIDE);
    }

    implementation of the SensorListener.onSensorUpdate)
    change cursor only checks
    ' public void onSensorUpdate (int sensorID, int update)
    {
    If (sensorID is Sensor.SLIDE)
    {
    If (update is Sensor.STATE_SLIDE_OPEN)
    {
    do something if the cursor is now open
    statusField2.setText ("Slider is now open.");
    }
    ElseIf (update == Sensor.STATE_SLIDE_IN_TRANSITION)
    {
    do something if the cursor is now transitioning
    statusField2.setText ("Slider condition changes.");
    }
    ElseIf (update == Sensor.STATE_SLIDE_CLOSED)
    {
    do something if the cursor is now closed
    statusField2.setText ("Slider is now closed.");
    }
    }
    }
    }
    }

    .................

    Manoj Kumar bakkar

  • Autofocus TextField when the user presses the keys (and possible race condition)

    Someone tried to implement a device by which a TextField (or text box, I guess) automatically gets the focus when a user starts to type anything? It is very convenient to have something, at least with a phone model Qwerty, in certain situations. (A use case is where a list that is too long for the useful shortcuts, but the TextField object is used to implement a filtering mechanism that can reduce the data set to a reasonable size, and the user can then scroll just to find a target element).

    I've set up something using a KeyListener (calling requestFocus() for the TextField object) attached to the container Page, but there are problems with it.

    It's a question that the first keystroke does not render in the TextField object, since it has not a focus when the key was first struck.

    To solve that you can enter the key (event.unicode) and that insert into the TextField object, and then the following keys go on the field you want... but there is also a problem with that.

    If you type two or three buttons in quick succession, probably less than 50ms between them, you can see that even if the KeyListener gets each of them, the TextField object receives the second or, sometimes, the third, even if you can check that by the time second keyPressed/output signal arrives in your earpiece the TextField claims to have developed (TextField.focused is true).

    This seems like a bug, but maybe it's just a case of corner cascading who is inevitable, given its design... I'm not sure.

    If anyone can reproduce it, thanks for posting here. I'll do a test case to prove and will report it as a bug if you do.

    If anyone has a reliable and quality approach, please post here too! :-)

    P.S. for a good laugh, a code here that I did for my particular case, which seeks to avoid the race condition. As you can see, this is a great hack, but it works 100% reliable for me so far with a fairly comprehensive test (including the tests with the movement of the cursor, copy/paste, etc.). It's too complicated to analyze and ensure that it is really robust, however, but feel free to use... If you care enough. ;-)  http://pastebin.com/r2VUtPJC

    Have you tried setting the primaryKeyTarget it's inputRoute?

    https://developer.BlackBerry.com/native/reference/Cascades/bb__cascades__inputrouteproperties.html

    Has been added to the 10.1, which should do what you want.

    You can also achieve the same messing around with pre FocusPolicy 10.1, but it is much simpler.

  • Desktop does not - black screen with the cursor and access to Task Manager

    Well, I played recent MMO and to do this, I had to update my sound drivers and graphics. I managed to finish my first uninstall all the old drivers-flawless and it worked perfectly thereafter with no video issues (that I had before the uninstall, but nothing harmful to the system). Eventually however, I started to get some pop ups Windows 2008 C++ REDIS saying that atieclxx.exe had asked to be terminated in an unusual way. No problem, I close the error message and everything always works as it should. No random crashes.

    My problem is that wermgr.exe (I am fairly certain that this is the title, but I did not work right now), began leaving me with a black screen and the cursor when I connect. In most cases, I can open the Task Manager by pressing Ctrl + Alt + Delete, however, it sometimes won't start, and when I start to kill unnecessary tasks, they take some time to die. I know that black screens are often a defective start of explorer.exe, which manages office and file, browsers so I use the Task Manager to run it and it dies or continues to do nothing without making the office. Whenever this happens, wermgr.exe was running (Windows error handler). When I kill this task, which often has duplicates, I can finally get explorer.exe to load. I have the same problem with safe mode, except that the display shows the version of windows and the details in each corner until explorer.exe load finally. I've also had freezing issues long whenever Werfault.exe jump upward and the only thing that those fixed has been disable Werfault.exe in the services menu.
    It is clear to me that the windows error reporting programs consume a lot of the capacity of the CPU of my computer and they are probably the source of the biggest problems I'm having. I should stop start, or they are just neutral, awakened by a bigger problem?
    On a smaller note, C++ error is probably due to me not having is not the correct edition of the redistributable C++ installed, or perhaps too many distributions. The last edition, I have installed is 10.0.40219 of the x 86 and x 64 redistributable and runtimes (2010). Are the oldest, I installed some updates ATL and 5 2005 Redistributable (2 x 64 versions). Atieclxx.exe is the program having the pop-ups demand 'unusual termination. " The version of my ATI Radeon drivers are included in Version 2012.1116.1515.27190 of the AMD VISION Engine Control Center.
    Now, finally, I think it's useless, I'll give you my specs:
    OS: Windows 7 Home Premium, 64-bit
    Processor: AMD Athlon TF-20, 1.60 GHz
    RAM: 3.00 GB
    Model: Acer Aspire 5534
    BIOS: InsydeH2O V1.12
    Graphics card: ATI Radeon HD 3200, using aticfx64.dll and aticfx32.dll
    I do not believe that a reinstallation is necessary, because I got my computer in good enough condition that I can write this message and use it as usual, however, it's a nuisance to do, because it requires waiting a few minutes while the wermgr.exe process is stopped by the Task Manager.

    HiJack This help "fix selected", I removed the SmartShopper and BHO entry no name, as well as a few more suspicious looking files and those to the left of the old installs (windowblinds). I also deleted all entries in ø16 because I didn't need them and didn't like their operation. Then, I deleted two mistakes of R3, who looked extremely suspicious.

    IT'S FIXED NOW!
    I restarted and connected to be greeted with my office. The second csrss.exe is still underway, and atieclxx.exe works well as well. Although they appear to be the cause of the problem, because I am intimately familiar with the process of my computer, it is also clear that many of the comes from problems of registry and the programs that I have only half managed to uninstall. I hope this helps people to the problem in the future, and if my problem recur soon, I will return to this article with more information.
    As a final note, I was extremely impressed with HiJack this, because I used it for the first time in order to solve this problem. He kindly explained to me why he alerted me and what kind of problems listed that would cause a lot of things helped me to decide what to remove. Now I know why divert this is recommended everywhere on the internet as a diagnostic tool.
    To not appear as an advertising bot, but it's the tool that solved my problem for this, I have it suggests. in any case, good luck and I hope you can fix this problem yourself. With the help of google, an open mind and careful decision making, it is possible to solve anything. I do not recommend using a shotgun to do so ;)
  • Touchpad on my HP Mini 110-1125NR is locked and the cursor does not move

    I've never locked my computer.  Everything has been implemented in the store where it was purchased about 4 years ago.  I put my computer in sleep mode yesterday afternoon and just tried to use this evening... somehow, the touchpad is inadmissible and the cursor does not move.  He remains in the middle condition of the screen.  I turned off the computer and restarted, nothing done.  Can anyone provide a solution?

    Hello

    Shut down the laptop, unplug the AC adapter and then remove the battery.  Press and hold the Power button for 30 seconds.  Reinsert the battery and plug in the AC adapter.

    Robinet tap away at the key esc that you start the computer to launch the Start Menu, and then select f10 to open the bios menu.  Press f5 to load the default values (sometimes it's f9, but the menu below indicates the correct key), use the arrow keys to select 'Yes' and press ENTER.  Press f10 to save the setting and still use the arrow keys to select 'Yes' and press on enter.

    If the pointer is still frozen, try double clicking the top left of the button.

    Kind regards

    DP - K

Maybe you are looking for