PL/SQL - change the value of a parameter (not declared as NOCOPY)

Hi all

In the following simple example, which should be in p_invar, when it is called to dbms_output?
I'd say "BEFORE", because it is not declared as NOCOPY, but looks like I'm wrong...
On our HP - UX 11 GR 2 database, p_invar is set to "AFTER" - it is a 'feature' / bug?

declare
--
g_var VARCHAR2 (4000);
--
procedure showvar (p_invar in VARCHAR2) is
Start
--
g_var: = "AFTER";
--
dbms_output.put_line(p_invar||) e /'|| g_var);
--
end showvar;
--
Start
g_var: = "BEFORE";
showvar (p_invar = > g_var);
end;
/

Oracle® database PL/SQL language reference
* 11g Release 2 (11.2) *.
Part number E17126-04
Chapter 8

Subprogramme Aliasing parameter with the parameters passed by reference

When the compiler passes a real parameter by reference, the actual and formal parameters refer to the same memory location. Therefore, if the subroutine changes the value of the formal parameter, change immediately shows in the real setting.

The compiler always happening IN reference parameters, but the aliasing resulting cause any problems, because the subprogrammes could not assign values to the PARAMETERS.

PARAMETERS are passed by reference, so when you change the actual variable, you change even as a variable IN.

Published by: david.sweet on February 17, 2011 10:30

Published by: david.sweet on February 17, 2011 10:30, typo

Tags: Database

Similar Questions

  • Request to change the values of the parameters of the Prod DB

    Hello

    The App team wants to change the values from DB under two parameters in Prod DB. App team has mentioned that this change was done in QA and verified to work.

    I now want to make the same change in Prod.Could you please confirm if these changes can be made?

    optimizer_index_caching = 0

    OPTIMIZER_INDEX_COST_ADJ = 100

    In addition to this App team wants to rebuild indexes and collect statistics in the same PB.

    Please note that the current values set for these two parameters in the database are as below.

    * .optimizer_index_caching = 99

    * .optimizer_index_cost_adj = 1

    Oracle - 11.2.0.3.0

    OS - Linux 6.6

    It is env Prod.

    It is BONE cluster with two nodes.


    Cordially,

    Bala

    changing this setting will change the way index is used by the optimizer.

    * .optimizer_index_caching = 99--> it is to tell the optimizer that the index values are cached. To force an index scan.

    * .optimizer_index_cost_adj = 1--> the default value of this parameter is 100. If you change the value of this parameter to 1 access the index will give preference by the optimizer. This happens usually when the optimizer is unable to choose and index. To force the use of the index, this setting is changed.

  • Change the value of the DefaultTimeToWait parameter

    I need 2 change the value of the parameter DefaultTimeToWait of its current value.

    To display the parameter, in the client on the ESX VI, click the configuration-> storage adapters tab then click on ISCSI (usually vmhba33/34) map properties, then click Advanced. The value is grayed out and cannot be changed.

    Does anyone know where it is fixed?

    Madrilleno

    Madrilleno,

    I do not have a link.  Your support contact can probably provide some information.

    The description that you have obtained is accurate enough.  In some unusual cases, a frame is sent of ESX with the wrong source MAC address.  Given that the

    response to this frame is never to where it is supposed to go, it's as if the answer was abandoned.  Once a Nop come to this session, the Nop expires and the connection is reset.  (This is how the Nop should work.  The problem is the answer is to have misdirected and lost.)

    Thank you

    Andy

  • Interactive report - out has changed the value of the column selectlist

    Hello

    I try to use a selectlist in an interactive report. I used "APEX_ITEM. SELECT_LIST' for this. My interactive report request is

    SELECT APEX_ITEM.checkbox (1, CUSTOMER_ID, NULL, NULL, 'onclick = "javascript:setvalue (this.value)" ') as "-",

    CUST_FIRST_NAME,

    CUST_LAST_NAME,

    APEX_ITEM. SELECT_LIST)

    p_idx = > 2,

    p_value = > TEST.

    p_list_values = > ' Y; Y, N; NO

    ) 'test' for DEMO_CUSTOMERS

    I had a "Override" button on the page. I try to get the modified values (for the field "test") and the customer ID selected as a semicolon-separated list just by clicking on the ignore"" button. The process code on submit is

    : P8_TEST_VALUE: = NULL;

    BECAUSE me in 1... APEX_APPLICATION. G_F01. COUNTING LOOP

    : P8_TEST_VALUE: =: P8_TEST_VALUE | « ; » || APEX_APPLICATION. G_F01 (i) | APEX_APPLICATION. G_F02 (i);

    END LOOP;

    But I still get the data value, not the value for column 'test '.

    For example if I'm changing the value of "N" to 'Y' after selecting the checkbox (client code corresponds to "6") and click on 'Ignore' button. I get the value '; 6n 'instead of '; 6Y'. is it possible that I can get the value of seelectlist has changed?.

    Thank you

    JJ

    Your problem is in the values of the selection list. The element is not sent to use in PL/SQL, best way to do it is with jQuery

    try adding this to your report:

    SELECT APEX_ITEM.checkbox (1, CUSTOMER_ID, NULL, NULL, 'onclick = "javascript:setvalue (this.value)" ') as "-",

    CUST_FIRST_NAME,

    CUST_LAST_NAME,

    APEX_ITEM. SELECT_LIST)

    p_idx-online 2

    p_item_id => CUSTOMER_ID,

    p_value => TEST,

    p_list_values => ' Y; Y, N; NO

    ) 'test' for DEMO_CUSTOMERS

    and to add actions to the lick... button or other trigger.

    $x("P8_TEST_VALUE").value ="";

    $("input: checkbox[name='f01']:checked").each(function())

    {var val = $("select [id ='" + $(this) .val () + "']") .val ();}

    $x("P8_TEST_VALUE").value = $x ("P8_TEST_VALUE") .value + $(this) .val () + val + ";". " » ;

    });

    Hope that this post will be useful for you.
    Andrej Grlica

  • How to change the value of "DenyOnNotProtected" in OAM 11 g

    Hello

    I just wanted to know how we can change the value of the parameter 'DenyOnNotProtected' in OAM 11 g. In literature, it is mentioned that we cannot change the value. When I tried the console, I'm not able to. Is there another way to do this?

    Thank you

    Srikanth

    Hi Srikanth,

    I suppose that for some reason any OAM is not recognizing that this resource is not protected (or rather, protected by the anonymous system) - maybe some dissonance between the host setting preferred in the definition of Agent of the WebGate and the host identifier used in the policy.

    In addition, just to check: you use version OAM 11.1.1.5 or 11.1.2 (server)?

    Kind regards
    Colin

  • Change the value of the variable object type

    Hi all!

    I created an object using:

    CREATE or REPLACE TYPE some_object AS OBJECT
    (
    some_information NUMBER,
    Une_fonction RETURN NUMBER of MEMBER FUNCTION
    )

    and when I tried to implement the member function 'une_fonction' who need to change the value of the variable 'some_information' as:

    CREATE or REPLACE TYPE some_object AS BODY

    FUNCTION MEMBER une_fonction NUMBER IS BACK
    BEGIN
    some_information: = some_information + 5;
    RETURN some_information;
    END;

    END;

    This is for me the following error:


    TYPE BODY CMS compile errors. SOME_OBJECT

    Error: PLS-00363: expression ' SELF. SOME_INFORMATION' cannot serve a purpose of assignment
    Line: 5
    Text: some_information: = some_information + 5;

    The question is:

    How to implement my function can change the value of 'some_information '?

    Benny Lava says:

    Thank you, but I really need to change the value of this variable.

    Then the member method requires write access to the object - and not only read access. To set write access, add the auto setting which allows him to change itself.

    SQL> create or replace type TSomething as object(
      2          some_number     number,
      3          member procedure SetN( self IN OUT TSomething, n number )
      4  );
      5  /
    
    Type created.
    
    SQL>
    SQL> create or replace type body TSomething as
      2
      3          member procedure SetN( self IN OUT TSomething, n number ) is
      4          begin
      5                  self.some_number := n;
      6          end;
      7  end;
      8  /
    
    Type body created.
    
    SQL>
    SQL> declare
      2          s       TSomething;
      3  begin
      4          s := new TSomething(5);
      5          s.SetN(10);
      6          dbms_output.put_line( s.some_number );
      7  end;
      8  /
    10
    
    PL/SQL procedure successfully completed.
    
    SQL>
    
  • How to change the value of a field?

    Hello

    I am a beginner in the report and I try to change the format of a field trigger value
    by the PL/SQL code editor

    is this possible? How can I identify my field (: MONCHAMP: does not work = newvalue)

    @rosagio

    Hello

    You cannot change the value of a column, but the field display values. Do it with the built-in SRW. SET_FIELD...
    Take a look at http://www.oracle.com/webapps/online-help/reports/10.1.2?navId=3&navSetId=_&vtTopicFile=htmlhelp_rwbuild_hs/rwrefex/plsql/builtins/examps/srw_examples.htm
    It is built-ins different depending on the data type. The object_id is 0 every time for the current object.

    concerning
    Rainer

  • Cannot change the value of mousewheel scroll

    After you have reinstalled windows and all I had on my old desktop, I seem to be unable to change my amount of scrolling the mouse on firefox. I looked through all the troubleshooting questions that have already been posted, and all users have responded that I had to access about: config and change the value of mousewheel.withnokey.numlines.

    However, when you access everything: config, I discovered that not only I don't the integer specified, I don't have any integer with a preferably name that contains "withnokey", so I tried to add it in me, but not to use. Currently my parchment done on lines 6 and 7 and I would like to go down to about 3.

    Hello, Skarlath, the scrolling behavior has been overhauled in firefox 17 (see for reference https://wiki.mozilla.org/Gecko:Mouse_Wheel_Scrollingtechnical information) - the old setting longer reverberate.

    It must still be possible to set a different frame rate. You can enter about: config in the firefox address bar (confirm the message information where it appears), search preferences starting with mousewheel.default.delta_multiplier_ ..., you can double-click on these parameters and assign a different value to - then a restart of firefox is required for the changed settings is taken into account.

  • Change the value of all slides

    Hello world

    I need help today with a problem on the slide - void / knot vi and property.

    I would like to change any value of slides with a sub vi

    Any ideas?

    Thank you

    Hello

    Using the node property, you can change the value of the slide.

    Siva

  • Change the value of varying directly?

    Suppose I have a variant from an external source.

    Suppose I know the data type, but I don't know the attributes and their values (if any).

    Is it possible to directly change the value of the variant, "under the hood" so to speak and leave all attributes intact?

    I know that I can read all attributes, generate a new variant with my new data and write them all back, but that seems very inefficient.

    Casting of new data to a variant, and then using the variant of data to convert the Original variants type that seems to work as well. Once again, kludgy.

    Sting autour with «...» VI.lib\Utility\VariantDataType\*.*, but so far, not to find a method 'live '.

    Thank you!

    You can use the structure of the element inplace to set the value of a varying existing.  It retains all the existing attributes.

  • Can I change the values of the variables in the variables view control?

    I want to use the variables view control in Labview. I see only the values, but I can't change the values or create new Variables. Will there be a chance to do?
    I use Labview 8.6.1 and Teststand 4.1.1.

    You must activate the edit mode for the ApplicationMgr, by setting ApplicationMgr.IsEditor to true. Note that you must have at least the license of the custom editor for teststand so that it works (otherwise it will prompt the user to activate a license with these privileges).

    Hope this helps,

    -Doug

  • How can I change the value of the sample during my simulation period?

    I'm about to set discrete PID profile vi to specify the values of the period of sampling of the order hold block. At t = 0, I wish that the value of 0.5 and then change to 1.0 when t = 5. Currently, only 0.5 goes to the waiting order discreet block. I think it's because the block takes this value and then use it for the entire simulation, do not check to see if the value has changed. Is there a way to tell the block to check this value at each time step and then adjust if necessary sampling its period?

    See code attached for reference.

    What is your overall goal for the sampling period? You will change the value more than once? Or only from 0.5 to 1?

    The PID setpoint profile should allow you to specify a profile for the values to send to the hold. He will see property values. For example if you specify only t = 0 setpoint = 0.5 and t = 5 setpoint = 1, you'll find it ramp the setpoint in 0.5 to 1.0 for the first 5 steps of time. If you want the sampling period of stay up to t = 5 0.5 is reached you will probably want to three elements in the array. set = 0.5 point t = 0, t = 4.99 set = 0.5, 1.0 = set point t = 5.

    If you're just fill one step, (from 0.5 to 1.0) you can use the Index Timestep in the Simulation parameters to determine the sampling period. Is attached a screenshot of what I mean.

  • How can I change the value of a control on front panel?

    On the front panel, I'm doing a complex control that consists of a Slider control and control of the digital inputs. Both controls display the same information and either may be used for entry. When changing value, I want the other control to display the same value.

    How can I change the value of a control on front flap when another control changes the value? I know how to use a structure of the event to detect value has changed, but I do not know how to impose control on front panel to change its value in the block diagram.

    Why do you not use a digital display on the slider, and no code is required:

    EDIT: Yes, he said. ***

  • changing the value of the indicator

    I need to change the value of an indicator, while the program is running.

    I enclose a VI

    1. a double is given as input to find derived from ptbypt, and then I compare the derivative (threshold) to enter the value to give a Boolean result.

    I need the user to change the threshold value as required by him.

    Thanks in advance

    Well, use the property node.

    Ran

  • change the value of the button cluster

    Hi all

    I wrote a program that has 5 poles and all groups contain a STOP"" button. the program can stop when the button is pressed.

    When I press the button, the value of the button goes to False and else False. I want to come True. so I tried using the 'value' property and set the value "False".

    but it is still true.

    I use event structure to see that the value changes. and set to 'Stop the value changes' all buttons in a single event.

    How can I change the value of the false button?

    Thank you

    Ritesh


Maybe you are looking for