MB of Pass value to bind variable Groove

Hello world. my version is 11.1.2.2

I have a bean managed on the basis that contains two components of input (ex: name of user, pswd)
I'm moving the input value to a query of VO that have variables bind with Groove. as adf.context.current...
If it is possible, what is the expression to access the value of the bean components managed?

THX

Just follow this
(1) for the vo, generate the VOImpl and when you create, select the variable bind method also
(2) has the VOimpl who take a parameter, set the varialbe bind using the method and run the query method
(3) expose this method as a customer interface
(4) in the pagedefinition file, create an action method and select this method and have a binding method
(5) of the managed bean, use the following code to execute the method

OperationBinding operation = bindings.getOperationBinding("operation_name");
         operation.getParamsMap().put("parameter_name", parameterValue); /// this will be u r bind variable parameter
         operation.execute();
         if (operation.getResult() != null) {
                  Boolean result = (Boolean) operation.getResult(); // cast to the expected result type
        }

Tags: Java

Similar Questions

  • How to pass values to a variable of the file.

    Hello

    I want to pass values in a variable to a file. For example: I want to divide the records in the source based on the region and load a region at any given time. Is there a way I can tell ODI to load only one region at a time. Currently I think I have a varibale defined, pass the value from a file and use this variable in the source filter.

    All answers are appreciated.

    Thank you
    CHikk

    Hello

    Right thinking...

    Simply use the following command, to the updating of the ODI variable tab, to get the values directly in the file:

    Select REGION_NAME
    table
    / * $$ SNPS_START_KEYSNP$ CRDWG_TABLESNP$ CRTABLE_NAME = REGIONSNP$ CRLOAD_FILE = <%=odiRef.getSchemaName("D")%> \MY_FILE. TXTSNP$CRFILE_FORMAT=DSNP$CRFILE_SEP_FIELD=09SNP$CRFILE_SEP_LINE=0D0ASNP$CRFILE_FIRST_ROW=0SNP$CRFILE_ENC_FIELD=SNP$CRFILE_DEC_SEP=SNP$CRSNP$CRDWG_COLSNP$CRCOL_NAME=REGION_NAMESNP$CRTYPE_NAME=STRINGSNP$CRORDER=1SNP$CRLINE_OFFSET=1SNP$CRLENGTH=500SNP$CRPRECISION=500SNP$CR$$SNPS_END_KEY*/

    (the command between ' / * ' and ' * / ' must be in a single line)

    Change the 'MyFile' the real file name

    This help you?

  • Comma Separated Values in Bind Variable

    Hello

    I'm on Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production.I use in query
    select * from employees where first_name in ('Ajay','Ajay5')
    It gives me two rows as it should. Now, I want to pass these values as a bind variable.
    select * from employees where first_name in :1
    Now when I run the query and make its contribution as a ('Ajay', 'Ajay5'). It gives me no line.

    Is their any way to do this. Let me know if you have any questions

    Thank you
    AJ

    Check out this link: the Blog of Tom Kyte: varying in lists...

  • How do I see the bind variable values in the output of statspack

    Hi all.

    Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64 bit Production
    PL/SQL Release 9.2.0.4.0 - Production
    CORE Production 9.2.0.3.0
    AMT for Solaris: release 9.2.0.4.0 - Production
    NLSRTL Version 9.2.0.4.0 - Production

    Run sprepsql.sql to get full sql and explain the plan of the hash value.
    SQL returns with bind variable: 1: 2: 3, etc.
    How can I know what are the values for bind variables in order to connect and run them in test db?

    Thanks for your help.

    You can't get the values to bind to StatsPack (AFAIK).

    You have to draw a session that is running this / these SQLs (s) to capture the lie.
    Or query V$ SQL_BIND_CAPTURE for the SQL when it runs.

    Hemant K Collette

  • Bind variables in Plsql

    Since plsql automatically converts the variables in the where clause and the clause values in bind variable. So what is the difference between the two statements below?


    create table t (number);

    1)
    declare
    x number: = 109;
    Start
    Insert values into t (x); - plsql will make this variable as a variable binding, and provide the value of x in run mode.
    exception when others then
    dbms_output.put_line (SQLERRM);
    end;


    2)
    declare
    x number: = 109;
    Start
    immediately execute "insert into values t (: B1)" using x. -the user has explicitly used bind variable.
    dbms_output.put_line (SQLERRM);
    end;

    [EDIT: after further testing, I redesigned my original explanation because Rahul referenced below.]

    Rahul K wrote:
    1)
    declare
    x number: = 109;
    Start
    Insert values into t (x); - plsql will make this variable as a variable binding, and provide the value of x in run mode.
    exception when others then
    dbms_output.put_line (SQLERRM);
    end;

    2)
    declare
    x number: = 109;
    Start
    immediately execute "insert into values t (: B1)" using x. -the user has explicitly used bind variable.
    dbms_output.put_line (SQLERRM);
    end;

    ((1) SQL static, 2) is the dynamic SQL code. Static SQL is parsed to less than dynamic SQL statements.

    As you make these calls in PL/SQL anonymous blocks and not in the stored procedures, there will be some analysis every time. Analysis of the static SQL will do less work than the analysis of the dynamic SQL, but both will avoid "hard" analysis which adds the execution plan to the shared pool.

    Published by: Ashton stew on January 6, 2013 10:16

  • Histograms and bind variables

    Hi guys,.
    When a SQL using bind variables histograms afftect the excution plan how?

    For example
    There is a table 'TEST' a column a number, varchar2 (100) b, c. tank (100).
    100000 rows in this table and the 90000 column rows a value is 1, the other value is 2-10 by 100rows.

    Now this column a histogram and a btree index only has on a;

    Here is sample code
    number of a_v var;
    exec: a_v: = 10;

    Select * from test where a =: a_v.

    The plan of the excution is full table scan.

    If I don't use of variable binding. It will scan the index.


    I remember that a document mentioned that "do not use histograms using bind variables.

    But why?

    I disabled same bind variable peeking?


    Thank you guys. Looking forward to your response.

    Longfei Wei says:
    Thanks Centinul this article is useful for me, but it is not explained why histograms do not work well with bind variables.

    Thanks again.

    Longfei,

    Jonathan Lewis article is very good - another look at this article. Histograms peuvent work with bind variable, but the end result is usually not the desired result. Bind variables are used to reduce the number of different execution plans. The histograms are used to find what is supposed to be the best execution plan for the predicates provided and in the case of the bind variables, those are peeked from the bind variable values. Thus, if you have a histogram on a column and for hard analysis of a SQL statement and the most common value in this column is presented in the binding variable - this execution plan is considered by the optimizer to be the 'best' execution plan for the bind variable values provided. Suppose now that instead the less popular value in the column is specified - the optimizer peut produce a very different for the same SQL statement execution plan, which is optimized for the less popular value (this can be a scan of the index systematic range, rather than a full table scan). Now suppose the execution plan may not change when change of variable values bind - if you have a single popular value and many unpopular values, if the analysis lasts is performed with the popular single value, you might find that all subsequent runs of this SQL statement to perform full table scans, even if only a few rows in the table are selected.

    Here's a quick test on the Oracle 11.2.0.2 database to demonstrate:

    CREATE TABLE T1 (
      C1 NUMBER,
      C2 NUMBER,
      C3 VARCHAR2(300));
    
    INSERT INTO
      T1
    SELECT
      *
    FROM
      (SELECT
        ROWNUM C1,
        DECODE(MOD(ROWNUM,100),99,99,1) C2,
        RPAD('A',300,'A') C3
      FROM
        DUAL
      CONNECT BY
        LEVEL <= 1000000)
    ORDER BY
      C2;
    
    CREATE INDEX IND_T1_C2 ON T1(C2);
    
    EXEC DBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>USER,TABNAME=>'T1',CASCADE=>TRUE,METHOD_OPT=>'FOR ALL INDEXED COLUMNS SIZE 254')
    

    The foregoing has created a table with 1 000 000 lines where 99% of the lines have a value of 1 in C2 and 1% have a value of 99, and lines are inserted with a perfect setting in cluster factor because of the ORDER BY clause. A histogram has been created on the indexed column.

    Let's try a test, we'll search a unpopular value 2 for the connection variable:

    VARIABLE N1 NUMBER
    EXEC :N1:=2
    
    SELECT /*+ GATHER_PLAN_STATISTICS */
      C1,
      C2
    FROM
      T1
    WHERE
      C2 = :N1;
    
    no rows selected
    
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL,'ALLSTATS LAST'));
    
    SQL_ID  c7su63uw7nch6, child number 0
    -------------------------------------
    SELECT /*+ GATHER_PLAN_STATISTICS */   C1,   C2 FROM   T1 WHERE   C2 =
    :N1
    
    Plan hash value: 236868917
    
    ------------------------------------------------------------------------------------------------------------
    | Id  | Operation                   | Name      | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |
    ------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT            |           |      1 |        |      0 |00:00:00.01 |       3 |      1 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| T1        |      1 |   5957 |      0 |00:00:00.01 |       3 |      1 |
    |*  2 |   INDEX RANGE SCAN          | IND_T1_C2 |      1 |   5957 |      0 |00:00:00.01 |       3 |      1 |
    ------------------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
       2 - access("C2"=:N1)
    

    Thus, there is no selected row, the optimizer predicts that 5 957 lines would be returned and a path to the index has been selected. Path of this index would also be appropriate for the value of the bind variable 1? We will continue the trial, this time by choosing the 99 for the binding variable value:

    EXEC :N1:=99
    SET TIMING ON
    
    SELECT /*+ GATHER_PLAN_STATISTICS */
      C1,
      C2
    FROM
      T1
    WHERE
      C2 = :N1;
    
    ...
    10000 rows selected.
    
    Elapsed: 00:00:05.35
    
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL,'ALLSTATS LAST'));
    
    SQL_ID  c7su63uw7nch6, child number 0
    -------------------------------------
    SELECT /*+ GATHER_PLAN_STATISTICS */   C1,   C2 FROM   T1 WHERE   C2 =
    :N1
    
    Plan hash value: 236868917
    
    ---------------------------------------------------------------------------------------------------
    | Id  | Operation                   | Name      | Starts | E-Rows | A-Rows |   A-Time   | Buffers |
    ---------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT            |           |      1 |        |  10000 |00:00:00.02 |    1783 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| T1        |      1 |   5957 |  10000 |00:00:00.02 |    1783 |
    |*  2 |   INDEX RANGE SCAN          | IND_T1_C2 |      1 |   5957 |  10000 |00:00:00.01 |     690 |
    ---------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
       2 - access("C2"=:N1)
    

    Once more, the optimizer predicts 5 957 lines could be found even if 10,000 rows have been retrieved. Note also that the number of children is always 0. We will continue the trial, this time with the bind variable value of 1:

    EXEC :N1:=1
    
    SET AUTOTRACE TRACEONLY STATISTICS
    
    SELECT /*+ GATHER_PLAN_STATISTICS */
      C1,
      C2
    FROM
      T1
    WHERE
      C2 = :N1;
    
    990000 rows selected.
    
    Elapsed: 00:00:18.78
    
    Statistics
    ---------------------------------------------------
              1  recursive calls
              1  db block gets
         108571  consistent gets
              0  physical reads
             96  redo size
       21958348  bytes sent via SQL*Net to client
         726508  bytes received via SQL*Net from client
          66001  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
         990000  rows processed
    
    SET AUTOTRACE OFF
    

    Because I used AUTOTRACE to prevent 990 000 lines scrolling on the screen, I have to specify the SQL_ID and CHILD_NUMBER to retrieve the execution plan:

    
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('c7su63uw7nch6',0,'ALLSTATS LAST'));
    
    SQL_ID  c7su63uw7nch6, child number 0
    -------------------------------------
    SELECT /*+ GATHER_PLAN_STATISTICS */   C1,   C2 FROM   T1 WHERE   C2 =
    :N1
    
    Plan hash value: 236868917
    
    ---------------------------------------------------------------------------------------------------
    | Id  | Operation                   | Name      | Starts | E-Rows | A-Rows |   A-Time   | Buffers |
    ---------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT            |           |      1 |        |  10000 |00:00:00.02 |    1783 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| T1        |      1 |   5957 |  10000 |00:00:00.02 |    1783 |
    |*  2 |   INDEX RANGE SCAN          | IND_T1_C2 |      1 |   5957 |  10000 |00:00:00.01 |     690 |
    ---------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
       2 - access("C2"=:N1)
    

    Who can be the execution plan that was used because it shows that 10,000 rows have been retrieved. We will try again, this time with CHILD_NUMBER 1:

    
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('c7su63uw7nch6',1,'ALLSTATS LAST'));
    
    SQL_ID  c7su63uw7nch6, child number 1
    -------------------------------------
    SELECT /*+ GATHER_PLAN_STATISTICS */   C1,   C2 FROM   T1 WHERE   C2 =
    :N1
    
    Plan hash value: 3617692013
    
    ------------------------------------------------------------------------------------
    | Id  | Operation         | Name | Starts | E-Rows | A-Rows |   A-Time   | Buffers |
    ------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT  |      |      1 |        |    990K|00:00:00.83 |     108K|
    |*  1 |  TABLE ACCESS FULL| T1   |      1 |    988K|    990K|00:00:00.83 |     108K|
    ------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
       1 - filter("C2"=:N1)
    

    The foregoing shows the actual plan that has been used. Sharing the adjustment slider (first available with Oracle Database 11.1) is reached and forced to re-evaluate the execution plan to avoid a very slow recovery through the index - which won't happen before 11.1 database Oracle.

    Just to illustrate:

    ALTER SESSION SET OPTIMIZER_FEATURES_ENABLE='10.2.0.4';
    
    VARIABLE N1 NUMBER
    EXEC :N1:=2
    
    SELECT /*+ GATHER_PLAN_STATISTICS */
      C1,
      C2
    FROM
      T1
    WHERE
      C2 = :N1;
    
    no rows selected
    
    Elapsed: 00:00:00.00
    
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL,'ALLSTATS LAST'));
    
    SQL_ID  c7su63uw7nch6, child number 2
    -------------------------------------
    SELECT /*+ GATHER_PLAN_STATISTICS */   C1,   C2 FROM   T1 WHERE   C2 =
    :N1
    
    Plan hash value: 236868917
    
    ---------------------------------------------------------------------------------------------------
    | Id  | Operation                   | Name      | Starts | E-Rows | A-Rows |   A-Time   | Buffers |
    ---------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT            |           |      1 |        |      0 |00:00:00.01 |       3 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| T1        |      1 |   5957 |      0 |00:00:00.01 |       3 |
    |*  2 |   INDEX RANGE SCAN          | IND_T1_C2 |      1 |   5957 |      0 |00:00:00.01 |       3 |
    ---------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
       2 - access("C2"=:N1)
    

    Note in the above that the CHILD_NUMBER is now 2.

    Continues:

    EXEC :N1:=99
    SET TIMING ON
    
    SELECT /*+ GATHER_PLAN_STATISTICS */
      C1,
      C2
    FROM
      T1
    WHERE
      C2 = :N1;
    
    10000 rows selected.
    
    Elapsed: 00:00:05.31
    
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL,'ALLSTATS LAST'));
    
    SQL_ID  c7su63uw7nch6, child number 2
    -------------------------------------
    SELECT /*+ GATHER_PLAN_STATISTICS */   C1,   C2 FROM   T1 WHERE   C2 =
    :N1
    
    Plan hash value: 236868917
    
    ---------------------------------------------------------------------------------------------------
    | Id  | Operation                   | Name      | Starts | E-Rows | A-Rows |   A-Time   | Buffers |
    ---------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT            |           |      1 |        |  10000 |00:00:00.02 |    1783 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| T1        |      1 |   5957 |  10000 |00:00:00.02 |    1783 |
    |*  2 |   INDEX RANGE SCAN          | IND_T1_C2 |      1 |   5957 |  10000 |00:00:00.01 |     690 |
    ---------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
       2 - access("C2"=:N1)
    

    The CHILD_NUMBER is always 2.

    Continues:

    EXEC :N1:=1
    
    SET AUTOTRACE TRACEONLY STATISTICS
    
    SELECT /*+ GATHER_PLAN_STATISTICS */
      C1,
      C2
    FROM
      T1
    WHERE
      C2 = :N1;
    
    990000 rows selected.
    
    Elapsed: 00:00:16.91
    
    Statistics
    ---------------------------------------------------
              0  recursive calls
              0  db block gets
         175927  consistent gets
              0  physical reads
              0  redo size
       21958348  bytes sent via SQL*Net to client
         726508  bytes received via SQL*Net from client
          66001  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
         990000  rows processed
    
    SET AUTOTRACE OFF
    
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('c7su63uw7nch6',2,'ALLSTATS LAST'));
    
    SQL_ID  c7su63uw7nch6, child number 2
    -------------------------------------
    SELECT /*+ GATHER_PLAN_STATISTICS */   C1,   C2 FROM   T1 WHERE   C2 =
    :N1
    
    Plan hash value: 236868917
    
    ---------------------------------------------------------------------------------------------------
    | Id  | Operation                   | Name      | Starts | E-Rows | A-Rows |   A-Time   | Buffers |
    ---------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT            |           |      1 |        |    990K|00:00:01.63 |     175K|
    |   1 |  TABLE ACCESS BY INDEX ROWID| T1        |      1 |   5957 |    990K|00:00:01.63 |     175K|
    |*  2 |   INDEX RANGE SCAN          | IND_T1_C2 |      1 |   5957 |    990K|00:00:00.68 |   67932 |
    ---------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
       2 - access("C2"=:N1)
    

    The foregoing is the execution plan for CHILD_NUMBER 2 - notice that this time he reports 990 000 recovered lines, it's the execution that was used - adaptive cursor sharing plan do not have take effect and force the re-evaluation of the implementation plan - implementation plan has NOT been changed for a full table scan. That's the risk you take if you allow histograms on columns that have an uneven distribution of values and bind variables are used in the WHERE clause that refers to the column.

    Charles Hooper
    Co-author of "Expert Oracle practices: Oracle Database Administration of the Oak Table.
    http://hoopercharles.WordPress.com/
    IT Manager/Oracle DBA
    K & M-making Machine, Inc.

  • How can I pass a value to a variable binding in a report query?

    I did a query of report to print a PDF report, with a dinamyc source query that has a connection variable, like this:

    SELECT EMPNO, EMPNAME, EMPDEPT

    FROM EMP

    WHERE EMPNO =: PARAMETER;

    I want to call the report print directly from a page, by using the url print showed by apex:

    f? p = & APP_ID.:0 : & SESSION. : PRINT_REPORT = MYREPORT

    How can I pass the value of the variable binding: PARAMETER using this URL?

    I don't think you can use the url parameter passes in a report query.

    the binding variable: PARAMETER must be a page element or an element of the application.

    use the "include session information and application" in the defination of report query to bind the value when the report is run

  • How to pass a list as a bind variable in SQL Developer?

    How can I pass a list as a bind variable in SQL Developer?

    The following query in SQL Developer so work I put ": prmRegionID = 2.

    SELECT COUNTRY_ID,
    COUNTRY_NAME
    OF HUMAN RESOURCES. COUNTRY
    WHERE IN REGION_ID (: prmRegionID);

    The problem is that I can't find how to set ": prmRegionID = 2, 3.

    I know that I can replace ": prmRegionID" by a proxy '& prmRegionID '. The above query will work well with"& prmRegionID = 2" and with "& prmRegionID = 2, 3". "

    But with this solution, I lost all the benefit of the use of bound variables (analysis hard against soft parse, possibility of SQL injection, etc.).

    I'm learning how to do this in SQL, as well as the use of UDT in this thread: How to move a list as a bind variable?

    But with this solution, I've lost nice SQL Developer user interface. In SQL developer, it is easy to test a query using the standard binding variable. When we start the application, a pop up asking for a value of the variable binding.

    With the UDT, the interface request always variable binding standard. You have an idea on how I can get a variable string binding (such as 1, 2, 10) in a set of NUMBER or VARCHAR2? This way I would be able to launch a standard query in SQL Developer to test my application.


    Can someone tell me what is the best approach to this?

    Thank you in advance,


    MB

    Hi Blais,

    Thank you for trying the SQL and PL/SQL instance before coming here - it was definitely the right approach, and you've got some very good suggestions there. Your needs for a invite only bind to the value in the clause list, I think I have a possible solution. I'll introduce you to a list of characters, so you'll have to tweak it for other types of data. First, add the following to your schema:

    create or replace
    TYPE bind_tab_typ AS TABLE OF VARCHAR2(4000);
    
    create or replace
    FUNCTION comma_to_table(iv_raw IN VARCHAR2)
    RETURN bind_tab_typ
    PIPELINED
    IS
       ltab_lname dbms_utility.lname_array;
       ln_len     BINARY_INTEGER;
    BEGIN
       dbms_utility.comma_to_table(list   => iv_raw
                                  ,tablen => ln_len
                                  ,tab    => ltab_lname);
       FOR i IN 1 .. ln_len LOOP
          PIPE ROW (ltab_lname(i));
       END LOOP;
    END;
    

    Now you can write a query, say for scott.dept, as follows, and have executed statement ask the value list in the clause as a single binding variable:

    select *
    from dept
    where dname in (
      select * from table( comma_to_table( :BNDS ))
    );
    

    When you are prompted, provide the list of values separated by a single comma without any extra spaces.

    I don't know if the Varchar2 (4000) really needs to be which is great. I use it because that's what dbms_utility.lname_array uses.

    Kind regards
    Gary
    SQL development team

  • bind variables using the values in the collection

    Hi the gems... Good afternoon...

    Can we not use plsql values in the collection in the USING clause to pass the bind variable values...

    I wrote the procedure to kill all sessions that cross the parameter OPEN_CURSORS below. the query, I found only three sessions that exceed. But when I execute my procedure so those are not removed, execution gives me an error also. He simply executed but no session has been killed.

    My part of the code is as below:
    ..........
    ..........
    ..........
    OPEN rc FOR v_sql;
        FETCH rc BULK COLLECT
            INTO v_tt_sessions;
        LOOP
            EXIT WHEN v_tt_sessions.COUNT = 0;
            FOR idx IN 1 .. v_tt_sessions.COUNT
            LOOP
                EXECUTE IMMEDIATE 'alter system kill session '':a,:b'' immediate'
                    USING v_tt_sessions(idx).sid, v_tt_sessions(idx).serial#;
            END LOOP;
        END LOOP;
    CLOSE rc;
    .........
    .........
    However, when I replace the bind variable with the values in the collection, then it works:
    ..........
    ..........
    ..........
    OPEN rc FOR v_sql;
        FETCH rc BULK COLLECT
            INTO v_tt_sessions;
        LOOP
            EXIT WHEN v_tt_sessions.COUNT = 0;
            FOR idx IN 1 .. v_tt_sessions.COUNT
            LOOP
                EXECUTE IMMEDIATE 'alter system kill session '''||v_tt_sessions(idx).sid||','||v_tt_sessions(idx).serial#||''' immediate';
            END LOOP;
        END LOOP;
    CLOSE rc;
    ..........
    ..........
    Please suggest if there is something wrong in my code first. I tried, but could not get any inadequacy.

    But the doubt is when I removed the variable of liaison with the values of the collection hard-coded (in my first post), then this process works very well. But I want to use bind variables.

    You cannot use bind variables in this situation. You can use bind variables for the DML statements.
    I'm surprised that you have no error, but I guess that this block of code explains everything:

    EXCEPTION
        WHEN OTHERS THEN
            dbms_output.put_line(SQLCODE || ' : ' || SQLERRM);
      
    

    You concatenate values to build a single command ALTER SYSTEM and run, just like your second attempt.
    You don't need to have a dynamic cursor either.

    for r in (
      select v.SID, u.serial#, count(v.sid)
      from v$open_cursor v, v$session u
      where v.CURSOR_TYPE='OPEN'
      and v.sid=u.sid group by v.sid, u.serial#
      having count(v.sid)>190
      order by count(*) desc
    )
    loop
      execute immediate 'alter system kill session '''||r.sid||','||r.serial#||''' immediate';
    end loop;
    

    And of course, I agree with the comments of Keith (assuming that this is not just an exercise).

    Published by: odie_63 on October 16, 2012 14:03

  • Trace files showing the bind variable value =""

    10g on solaris

    Hi all

    We have a problem with an informatica workflow brings an update statement in Oracle in trems of performace.

    I started using DBMS_SUPPORT tracing with lie the TRUE value. He captured the trace files accordingly against a controlled set of data. Trace TWOT files were produced.

    Trace files first shows the SELECT statement are questions that identifies the records that will be updated.

    The 2nd trace file shows the actual UPDATE statement published as a PL/SQL loop to do the update.

    There are 20 records that users have rigged last updated and the update statement lists 20 cases where updates taking place. All updates occurred successfully after reviewing the results of the post. However my question is why the trace files are showing the values of bind as the value ""?... any ideas appreciated!

    an excerpt of the file trace...
    PARSING IN CURSOR #1 len = 123 dep = uid 0 = 1482 oct = 6 lid = tim 1482 = 994827916280 = ad 3649357857 hv = "8b5b98f0."
    UPDATE / * + index (FCT_TASK IDX_FCT_TASK_CASE_SBL_ROW_ID) * / FCT_TASK SET DWH_LAST_UPD_DT = SYSDATE WHERE CASE_SBL_ROW_ID =: 1
    END OF STMT
    # 1 ANALYSIS: c = 10000, e = 980, p = 0, cr = 0, cu = 0, put = 1, r = 0, dep = 0, og = 1, tim = 994827916264
    =====================
    PARSING IN CURSOR #5 len = 227 dep = 1 uid = 0 oct = cover 3 = 0 tim = hv 994827919231 = ad 2190775527 = "8e622670".
    Select obj$ o, user$ u u.name, o.name, t.update$, t.insert$, t.delete$, t.enabled, trigger$ t where t.baseobject =: 1 and t.obj #= o.obj # and o.owner # u.user = # and bitand (property, 16) = 0 and bitand (property, 8
    ) = 0 order by o.obj #.
    END OF STMT
    ANALYSIS #5:c = 0, e = 1310, p = 0, cr = 0, cu = 0, put = 1, r = 0, dep = 1, og = 1, tim = 994827919223
    LINKS FOR #5:
    bind 0: dty = 2 mxl = 22 (22) bad = 00 scl = 00 pre = 00 = 00 = 0001 size = 24 offset = 0 oacfl2 oacflg
    BFP = bln ffffffff7c058d98 = 22 avl = flg 04 = 05
    value = 425212
    EXEC #5:c = 10000, e = 9476, p = 0, cr = 0, cu = 0, put = 1, r = 0, dep = 1, og = 4, tim = 994827928883
    FETCH #5:c = 0, e = 104, p = 0, cr = 1, cu = 0, set = 0, r = 0, dep = 1, og = 4, tim = 994827929051
    "STAT id #5 = 1 cnt = 0 pid = 0 pos = 1 obj = 0 op =' SORT ORDER BY (cr = 1 pr = 0 pw = time 0 = 172 en)"
    "STAT id #5 = 2 cnt = 0 pid = 1 pos = 1 obj = 0 op ='NESTED LOOPS (cr = 1 pr = 0 pw = time 0 = 110 US)"
    "STAT id #5 = 3 cnt = 0 pid = 2 pos = 1 obj = 0 op ='NESTED LOOPS (cr = 1 pr = 0 pw = time 0 = 105 en)"
    STAT id #5 = 4 cnt = 0 pid = 3 pos = 1 obj = op 79 ='$ TABLE ACCESS BY INDEX ROWID TRIGGER (cr = 1 pr = 0 pw = time 0 = 103 US)'
    "STAT id #5 = 5 cnt = 0 pid = 4 pos = 1 obj = 123 op ='INDEX RANGE SCAN I_TRIGGER1 (cr = 1 pr = 0 pw = time 0 = 78 US)"
    "STAT id #5 = 6 cnt = 0 pid = 3 pos = 2 obj = op 18 ='TABLE ACCESS BY INDEX ROWID OBJ$ (pr = 0 pw = time cr = 0 0 = 0 US)"
    "STAT id #5 = 7 cnt = 0 pid = 6 pos = 1 obj = op 36 ='INDEX SCAN SINGLE I_OBJ1 (cr = 0 pr = 0 pw = time 0 = 0 US)"
    "STAT id #5 = 8 cnt = 0 pid = 2 pos = 2 obj = op 22 =' CLUSTER ACCESS USER TABLE $ (pr = 0 pw = time cr = 0 0 = 0 US)"
    "STAT id #5 = 9 cnt = 0 pid = 8 pos = 1 obj = op 11 ='INDEX UNIQUE SCAN I_USER # (pr = 0 pw = time cr = 0 0 = 0 US)"
    LINKS FOR #1:
    bind 0: dty = 1 mxl = 32 (30) bad = 00 scl = 00 pre = 00 oacflg = 01 oacfl2 = 800000 size = 32 offset = 0
    BFP = bln ffffffff7c17b0a0 = 32 avl = flg 04 = 05
    value =""
    # 1 EXEC: c = 8390000, e = 8740989, p = 55593, cr = 55610, cu = 3, put = 1, r = 1, dep = 0, og = 1, tim = 994836657483
    LINKS FOR #1:
    bind 0: dty = 1 mxl = 32 (30) bad = 00 scl = 00 pre = 00 oacflg = 01 oacfl2 = 800000 size = 32 offset = 0
    BFP = bln ffffffff7c17b0a0 = 32 avl = flg 04 = 05
    value =""
    # 1 EXEC: c = 7980000, e = 7962369, p = 55591, cr = 55608, cu = 1, SIG = 0, r = 1, dep = 0, og = 1, tim = 994844621479
    LINKS FOR #1:
    bind 0: dty = 1 mxl = 32 (30) bad = 00 scl = 00 pre = 00 oacflg = 01 oacfl2 = 800000 size = 32 offset = 0
    BFP = bln ffffffff7c17b0a0 = 32 avl = flg 04 = 05
    value =""


    ect ect ect...



    Concerning
    Satnam
    BINDS #1:
    bind 0: dty=1 mxl=32(30) mal=00 scl=00 pre=00 oacflg=01 oacfl2=800000 size=32 offset=0
    bfp=ffffffff7c17b0a0 bln=32 avl=04 flg=05
    value=""
    

    'dty = 1' indicates that the data type is VARCHAR or NVARCHAR. As the timestamp data types data types BLOB, and various other, bind variables defined as NVARCHAR will not have their values dumped in a 10046 trace file. I suspect that the: 1 binding variable is passed as an a NVARCHAR2.

    Charles Hooper
    Co-author of "Expert Oracle practices: Oracle Database Administration of the Oak Table.
    http://hoopercharles.WordPress.com/
    IT Manager/Oracle DBA
    K & M-making Machine, Inc.

  • Use sessionScope as the value of the Variable binding

    Dear all,

    I have a variable in sessionScope, and I want to use it as a condition of application of a ViewObject.

    I found a thread talking about, there's only one: (Re: set the value in the global variable. )
    How to use the value in the scope of session groovy script?

    Model project:
    Set variable in the scope of the session:
    ADFContext.getCurrent () .getSessionScope () .put ("Empno", empno);

    Getting value of session scope:
    Object empno is ADFContext.getCurrent () .getSessionScope () .get ("Empno");.

    ViewProject:
    Set variable in the scope of the session:
    FacesContext.getCurrentInstance () .getExternalContext () .getSessionMap () .put ("Empno", empno);

    Getting value of session scope:
    Object empno is FacesContext.getCurrentInstance () .getExternalContext () .getSessionMap () .get ("Empno");.

    Getting value of scope jspx page session
    #{sessionScope.Empno}

    Hi Samson,.

    Here are the groovy expression to access the value of the sessionscope:

    adf.context.sessionScope.role
    

    But, as the said John instead to access the session of the model can be a method of model (whether in AMImpl or voImpl) who takes the role as a parameter value and sets the value of the variable binding of the vo, then call this AM from the bean method passing the role value by getting the scope of the session.

    Jean Lou

  • default values for VO bind variable

    Hi all

    I have a VO with bind variable year and month

    These variables have values as:


    year:

    cannot import

    DF = new SimpleDateFormat("yyyy")

    DF.format (ADF. CurrentDate)

    month:

    cannot import

    DF = new SimpleDateFormat ("MM")

    DF.format (ADF. CurrentDate)

    I have a table in my application this VO-based. I added these two variables as a counter entry number and a command button (ExecuteWithParams)

    The table is delivered with these variables dafult (2014 & 2). That's ok. Problem is that default values are not in the number of counters during the loading of the page.

    When I enter the new values (2014 & 1) and click the button, the new values to come and there is no problem...

    JDev version is 11.1.2.4

    Thank you...

    I find the solution as:

    In the pageDefinition file > binaries > ExecuteWithParams1_p_year > DefaultValue value as value: #{MyBean.year}

  • How to set the value of the variable bind in VO on page load?

    Hello, I use JDeveloper 11.1.2.3.0.

    I created a VO in my application that uses a variable binding in the where clause. I want to put the value of this variable on the loading of the page automatically.

    I read that I can do this through setNamedWhereClauseParam()... but I can't find out where and how to use it.

    Can anyone help please?

    You can put in different places:

    AppModuleImpl,

    ViewObjectImpl,

    ViewRowImpl

    Just him export the customer interface and use whenever you want

  • Get the value of the bind variable in backing bean class VO Impl

    Hello

    I have a VO that includes a bind "pOrgId" variable, the VO has a java VO Impl class that includes:

    /**
    * Returns the value of the variable to pOrgId.
    value of the variable * @return for pOrgId
    */
    public {getpOrgId() number
    return (Number) ensureVariableManager () .getVariableValue ("pOrgId");
    }

    So it is possible to obtain the value is concluded by the binding variable using this class in a backing bean? (I tried to import the VOImpl class in the bean to support, but getpOrgId is not available?).

    (JDEV 11.1.2.3.0)

    Concerning
    Carl

    Hello

    When you create a ViewObjectImpl class, none of these options is to generate the getter/setter for bind variable. Create a client class interface and expose the get method for the variable binding. Now, you can reference the method since a binding method in the ADF, which you then access a managed bean by calling

      BindingContext bctx = BindingContext.getCurrent();
      BindingContainer bindings = bctx.getCurrentBindingsEntry();
      OperationBinding oper = (OperationBinding) bindings.get("name of the method binding");
      Object returnVal = oper.execute();
    

    Frank

  • Pass the value of the variable during execution

    Hello

    I have a package with a set of interfaces and three other variables.

    I want to pass the value of the variable at runtime, based on the value passed I want to decide which interface to run then. How can I do this? I got a set variable but I want to asssign the value during execution.

    Any help is greatly appreciated.


    Thank you
    San

    You have many options to achieve this goal.

    1. keep the run settings in the database, extract the Variables in a time of refreshment and use these variables in your Interfaces to get values of execution.

    2. change the value to the variables on the outside. You can declare a variable in a package as a step of the statement, and then use the variable in your interface in a successive step in your package. Then, create a scenario of your package and creating the scenario, it will prompt you to include the variables that you want to include as a startup parameter. Choose the one (s) concerned. Citing this scenario using Java or an OdiStartScen command or by using Webservices ODI externally, you can provide values of the runtime as a result.

    I hope this helps.

    Concerning
    A

    Published by: 922636 on August 29, 2012 23:53

Maybe you are looking for