Query result cache with functions

Hi all,
one of my colleagues has found a little bit weird behavior of a query result cache. He has set result_cache_mode = 'FORCE' (but it can be reproduced with a result_cache hint too) and suddenly functions called from the query get executed twice (for the first time) .
An easy example:
alter session set result_cache_mode = 'FORCE';
create sequence test_seq;
create or replace function test_f(i number)
return number
is                  
begin
  dbms_output.put_line('TEST_F executed');
  --autonomous transaction or package variable can be used too
  return test_seq.nextval;
end;
prompt First call
select test_f(1) from dual;
prompt Second call
select test_f(1) from dual;
drop sequence test_seq;
drop function test_f;
First call
TEST_F(1)
         2
TEST_F executed
TEST_F executed
Second call
TEST_F(1)
         1
As you can see - for the first time the function is executed twice and return the value from the second execution. When I execute the query again it returns the value from the first execution... but it doesn't matter, problem is in the double execution. Our developers used to send emails via select (it's easier for them):
select send_mail(...) from dual;
... and now the customers complains that they get emails twice
And now the question - is there any way, hot to get rid of this behavior (without changing the parameter back or rewriting code)? I thought that the result cache is automatically disabled for non-deterministic functions...or is this an expected behavior?
Thanks,
Ivan

Interesting.. you are right:
SELECT /*+ RESULT_CACHE */ 'dog' FROM DUAL;
And at the second execution:
| Id  | Operation        | Name                       | Rows  | Cost (%CPU)| Time     |
|   0 | SELECT STATEMENT |                            |     1 |     2   (0)| 00:00:01 |
|   1 |  RESULT CACHE    | cc5k01xyqz3ypf9t0j28r5gtd1 |       |            |          |
|   2 |   FAST DUAL      |                            |     1 |     2   (0)| 00:00:01 |
Hmmm..

Similar Messages

  • Using the client result cache without the query result cache

    I have constructed a client in C# using ODP.NET to connect to an Oracle database and want to perform client result caching for some of my queries.
    This is done using a result_cache hint in the query.
    select /*+ result_cache */ * from table
    As far as I can tell query result caching on the server is done using the same hint, so I was wondering if there was any way to differentiate between the two? I want the query results to be cached on the client, but not on the server.
    The only way I have found to do this is to disable all caching on the server, but I don't want to do this as I want to use the server cache for PL/SQL function results.
    Thanks.

    e3a934c9-c4c2-4c80-b032-d61d415efd4f wrote:
    I have constructed a client in C# using ODP.NET to connect to an Oracle database and want to perform client result caching for some of my queries.
    This is done using a result_cache hint in the query.
    select /*+ result_cache */ * from table 
    As far as I can tell query result caching on the server is done using the same hint, so I was wondering if there was any way to differentiate between the two? I want the query results to be cached on the client, but not on the server.
    The only way I have found to do this is to disable all caching on the server, but I don't want to do this as I want to use the server cache for PL/SQL function results.
    Thanks.
    You haven't provided ANY information about how you configured the result cache. Different parameters are used for configuring the client versus the server result cache so you need to post what, if anything, you configured.
    Post the code you executed when you set the 'client_result_cache_lag' and 'client_result_cache_size' parameters so we can see what values you used. Also post the results of querying those parameters after you set them that show that they really are set.
    You also need to post your app code that shows that you are using the OCI statements are used when you want to use client side result cacheing.
    See the OCI dev guide
    http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#sthref1491
    Statement Caching in OCI
    Statement caching refers to the feature that provides and manages a cache of statements for each session. In the server, it means that cursors are ready to be used without the need to parse the statement again. Statement caching can be used with connection pooling and with session pooling, and will improve performance and scalability. It can be used without session pooling as well. The OCI calls that implement statement caching are:
      OCIStmtPrepare2()
      OCIStmtRelease()

  • Query result caching on oracle 9 and 10 vs indexing

    I am trying to improve performance on oracle 9i and 10g.
    We use some queries that take up to 30 minutes to execute.
    I heard that there are some products to cache query results.
    Would this have any advantage over using indexes or materialized views?
    Does anyone know any products that I can use to cache the results of this queries on disk?
    Personally I think that by using the query result caching I would reduce the cpu time needed to process the query.
    Is this true?

    Your message post pushes all the wrong buttons starting with the fact that 9i and 10g are marketing labels not version numbers.
    You don't tune queries by spending money and throwing resources at them. You tune them by identifying the problem queries, running explain plans, visualizing their output using DBMS_XPLAN, and addressing the root cause.
    If you want help post full version numbers, the SQL statements, and the DBMS_XPLAN outputs.

  • Query results cached?

    For a report region, is the query results cached?
    That is, is the report query being executed again
    in the following condition:
    * when a user navigate between pages of a report
    (from page 1 (1-100 of 1000 rows) to page 2 (101-200 of 1000 rows)
    * when a user clicks on the column heading to sort the report

    Ken,
    In both cases the query is executed again.
    Regards,
    Marc

  • Oracle 11g/R2 Query Result Cache - Incremental Update

    Hi,
    In Oracle 11g/R2, I created replica of HR.Employees table & executed the following statement (+Although using SUM() function is non-logical in this case, but just testifying the result+)
    STEP - 1
    SELECT      /+ RESULT_CACHE */ employee_id, first_name, last_name, SUM(salary)*
    FROM           HR.Employees_copy
    WHERE      department_id = 20
    GROUP BY      employee_id, first_name, last_name;
    EMPLOYEE_ID      FIRST_NAME LAST_NAME     SUM(SALARY)
    202           Pat           Fay          6000
    201           Michael           Hartstein     13000
    Elapsed: 00:00:00.01
    Execution Plan
    Plan hash value: 3837552314
    | Id | Operation           | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT      | | 2 | 130 | 4 (25)| 00:00:01 |
    | 1 | RESULT CACHE      | 3acbj133x8qkq8f8m7zm0br3mu | | | | |
    | 2 | HASH GROUP BY      | | 2 | 130 | 4 (25)| 00:00:01 |
    |* 3 | TABLE ACCESS FULL     | EMPLOYEES_COPY | 2 | 130 | 3 (0)| 00:00:01 |
    --------------------------------------------------------------------------------------------------     Statistics
    0 recursive calls
    0 db block gets
    0 consistent gets
    0 physical reads
    0 redo size
    *690* bytes sent via SQL*Net to client
    416 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    2 rows processed
    STEP - 2
    INSERT INTO HR.employees_copy
    VALUES(200, 'Dummy', 'User','[email protected]',NULL, sysdate, 'MANAGER',5000, NULL,NULL,20);
    STEP - 3
    SELECT      /*+ RESULT_CACHE */ employee_id, first_name, last_name, SUM(salary)
    FROM           HR.Employees_copy
    WHERE      department_id = 20
    GROUP BY      employee_id, first_name, last_name;
    EMPLOYEE_ID      FIRST_NAME LAST_NAME SUM(SALARY)
    202      Pat      Fay      6000
    201      Michael      Hartstein      13000
    200      Dummy User      5000
    Elapsed: 00:00:00.03
    Execution Plan
    Plan hash value: 3837552314
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT |          | 3 | 195 | 4 (25)| 00:00:01 |
    | 1 | RESULT CACHE | 3acbj133x8qkq8f8m7zm0br3mu | | | | |
    | 2 | HASH GROUP BY | | 3 | 195 | 4 (25)| 00:00:01 |
    |* 3 | TABLE ACCESS FULL| EMPLOYEES_COPY | 3 | 195 | 3 (0)| 00:00:01 |
         Statistics
    0 recursive calls
    0 db block gets
    4 consistent gets
    0 physical reads
    0 redo size
    *714* bytes sent via SQL*Net to client
    416 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    3 rows processed
    In the execution plan of STEP-3, against ID-1 the operation RESULT CACHE is shown which shows the result has been retrieved directly from Result cache. Does this mean that Oracle Server has Incrementally Retrieved the resultset?
    Because, before the execution of STEP-2, the cache contained only 2 records. Then 1 record was inserted but after STEP-3, a total of 3 records was returned from cache. Does this mean that newly inserted row is retrieved from database and merged to the cached result of STEP-1?
    If Oracle server has incrementally retrieved and merged newly inserted record, what mechanism is being used by the Oracle to do so?
    Regards,
    Wasif
    Edited by: 965300 on Oct 15, 2012 12:25 AM

    965300 wrote:
    Hi,
    In Oracle 11g/R2, I created replica of HR.Employees table & executed the following statement (+Although using SUM() function is non-logical in this case, but just testifying the result+)
    STEP - 1
    SELECT      /+ RESULT_CACHE */ employee_id, first_name, last_name, SUM(salary)*
    FROM           HR.Employees_copy
    WHERE      department_id = 20
    GROUP BY      employee_id, first_name, last_name;
    EMPLOYEE_ID      FIRST_NAME LAST_NAME     SUM(SALARY)
    202           Pat           Fay          6000
    201           Michael           Hartstein     13000
    Elapsed: 00:00:00.01
    Execution Plan
    Plan hash value: 3837552314
    | Id | Operation           | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT      | | 2 | 130 | 4 (25)| 00:00:01 |
    | 1 | RESULT CACHE      | 3acbj133x8qkq8f8m7zm0br3mu | | | | |
    | 2 | HASH GROUP BY      | | 2 | 130 | 4 (25)| 00:00:01 |
    |* 3 | TABLE ACCESS FULL     | EMPLOYEES_COPY | 2 | 130 | 3 (0)| 00:00:01 |
    --------------------------------------------------------------------------------------------------     Statistics
    0 recursive calls
    0 db block gets
    0 consistent gets
    0 physical reads
    0 redo size
    *690* bytes sent via SQL*Net to client
    416 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    2 rows processed
    STEP - 2
    INSERT INTO HR.employees_copy
    VALUES(200, 'Dummy', 'User','[email protected]',NULL, sysdate, 'MANAGER',5000, NULL,NULL,20);
    STEP - 3
    SELECT      /*+ RESULT_CACHE */ employee_id, first_name, last_name, SUM(salary)
    FROM           HR.Employees_copy
    WHERE      department_id = 20
    GROUP BY      employee_id, first_name, last_name;
    EMPLOYEE_ID      FIRST_NAME LAST_NAME SUM(SALARY)
    202      Pat      Fay      6000
    201      Michael      Hartstein      13000
    200      Dummy User      5000
    Elapsed: 00:00:00.03
    Execution Plan
    Plan hash value: 3837552314
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT |          | 3 | 195 | 4 (25)| 00:00:01 |
    | 1 | RESULT CACHE | 3acbj133x8qkq8f8m7zm0br3mu | | | | |
    | 2 | HASH GROUP BY | | 3 | 195 | 4 (25)| 00:00:01 |
    |* 3 | TABLE ACCESS FULL| EMPLOYEES_COPY | 3 | 195 | 3 (0)| 00:00:01 |
         Statistics
    0 recursive calls
    0 db block gets
    4 consistent gets
    0 physical reads
    0 redo size
    *714* bytes sent via SQL*Net to client
    416 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    3 rows processed
    In the execution plan of STEP-3, against ID-1 the operation RESULT CACHE is shown which shows the result has been retrieved directly from Result cache. Does this mean that Oracle Server has Incrementally Retrieved the resultset?
    Because, before the execution of STEP-2, the cache contained only 2 records. Then 1 record was inserted but after STEP-3, a total of 3 records was returned from cache. Does this mean that newly inserted row is retrieved from database and merged to the cached result of STEP-1?
    If Oracle server has incrementally retrieved and merged newly inserted record, what mechanism is being used by the Oracle to do so?
    Regards,
    Wasif
    Edited by: 965300 on Oct 15, 2012 12:25 AMNo, the RESULT CACHE operation doesn't necessarily mean that the results are retrieved from there. It could be being
    written to there.
    Look at the number of consistent gets: it's zero in the first step (I assume you had already run this query before) and I would
    conclude that the data is being read from the result cache.
    In the third step there are 4 consistent gets. I would conclude that the data is being written to the result cache, a fourth step repeating
    the SQL should show zero consistent gets and that would be the results being read.

  • Oracle result cache and functions

    Hi All,
    I am on 11.2 in Linux.
    I want to use Oracle's result cache to cache results of (user defined) functions, which we use in SELECT commands.
    My question is, does result caching work for deterministic and non-deterministic functions ?
    Just curious, how Oracle keeps track of changes being made which affect a function's return value?
    Thoughts please.
    Thanks in advance

    I want to ... cache results of (user defined) functions, which we use in SELECT commands.You have four choices:
    1. Subquery caching - (wrap function call in SELECT) useful for repeated function calls in a single SELECT
    2. Marking function as DETERMINISTIC - inconsistent results across versions, deterministic best reserved for function-based indexes only
    3. Result Cache
    4. Move function logic out of function and inline to the main SQL statement.
    The biggest downside of any function call that is inline to SQL is that it bypasses the read consistency mechanism, actually that's probably the second biggest downside. The biggest downside is normally that their misuse kills performance.
    If your function itself contains SQL then you should seriously reconsider whether you should be using a function.
    does result caching work for deterministic and non-deterministic functions ?Result cache knows nothing about determinism so yes it should be applied regardless.
    Oracle keeps track of changes being made which affect a function's return value?See v$result_cache_dependency.
    The mechanism is very blunt, there is no fine-grained tracking of data changes that may affect your result.
    It's as simple as function F1 relies on table T1. If the data in table T1 changes, invalidate the results in the result cache for F1.

  • RPD - Cannot obtain number of columns for the query result :Working with MS SQL 2012 schema

    Hi All,
    I have created my warehouse in MS SQL 2012.
    For management purpose, I have created different schemas in SQL database
    In RPD, Physical layer, when i view data > I get error as
    [nQSError:16002] Cannot obtain number of columns for the query result.
    [nQSError:16001] ODBC error state : S0002 code : 208 message: [Microsoft][ODBC SQL Server Driver][SQL Server] Invalid object name 'tbl'..
    [nQSError:16001] ODBC error state : S0002 code : 208 message: [Microsoft][ODBC SQL Server Driver][SQL Server] Statements could not be prepared..
    I have already browsed : OBIEE 11g Strange ODBC Driver Error with SQL Server : Total Business Intelligence ... did not help me
    please help!!!

    Hi All,
    After all R&D it is been found that Oracle business administrator( RPD) needs default dbo schema. It doesn't accept custom schema for pulling data.
    If anybody have other views please share.!!
    Thank you

  • OSB result caching with Coherence Out of process

    Existing setup:
    Oracle Fusion Middleware SOA 11g domain with
    1 weblogic cluster
    1 OSB cluster
    We have an Out of Process Coherence cluster configured with  caches defined already which is just working fine in production.
    The requirement is that development team would like to use the OSB result caching feature and we are having hard time to configure this OSB result cache join our existing cluster.
    Any suggestions on this is appreciated.

    Hi,
    You would need to override the operational configuration on OSB Server to join the cluster spawned by the Coherence dedicated servers. Also, set the flag -Dtangosol.coherence.distributed.storage=false in the ServerStart of your OSB Servers which will disable the data storage in the OSB Servers.
    HTH
    Cheers,
    _NJ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Query result different with profit and loss statement

    Hi all,
    I run query Sum(JDT1.Debit - JDT1.Credit), and then compare the query result with the profit and loss statement, and there is different.
    The difference is about 0.01.
    At SAP, the Decimal places is set to 2.
    I already checked the data, and their amount in 2 decimal.
    Do anyone know such problem and what kind of query must I use so the result can be compared with the profit and loss statement ?
    Thx.

    Riny, 
    I am glad you found the issue
    Suda

  • Query Results - failed with exclamation mark on icon

    Hi there,
    When I run a select query I now get an exclamation mark on the green arrow icon in the Query Results.  I've been able to run this query before and no changes have been made.
    In the Query Results window if I click the 'reload' icon (two blue arrows) the Output results flash up and then clear.
    Version 3.0.02   //   Build MAIN-02.37   //   Java Platform 1.6.0_11
    As far as I know I have not made any configuration or database connection changes.  This issue appears on all DB connections and all SQL I try to run.
    This appears to be the error:
    java.lang.NullPointerException
        at oracle.dbtools.worksheet.sqlhistory.db.HistoryDB2.getRowFor(HistoryDB2.java:43)
        at oracle.dbtools.worksheet.sqlhistory.SqlEditorHistory.saveSql(SqlEditorHistory.java:85)
        at oracle.dbtools.worksheet.StatementRunnerResultsPanel$4.taskFinished(StatementRunnerResultsPanel.java:287)
        at oracle.dbtools.raptor.backgroundTask.RaptorTaskAdapter.stateChanged(RaptorTaskAdapter.java:95)
        at oracle.dbtools.raptor.backgroundTask.RaptorTaskDescriptor.notifyListener(RaptorTaskDescriptor.java:143)
        at oracle.dbtools.raptor.backgroundTask.RaptorTaskDescriptor.setStatus(RaptorTaskDescriptor.java:370)
        at oracle.dbtools.raptor.backgroundTask.RaptorTaskDescriptor.setStatus(RaptorTaskDescriptor.java:352)
        at oracle.dbtools.raptor.backgroundTask.RaptorTask.setStatus(RaptorTask.java:257)
        at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.done(RaptorTaskManager.java:479)
        at java.util.concurrent.FutureTask$Sync.innerSet(FutureTask.java:251)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:500)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
    Closing/reopening SQL Developer doesn't help.  I've restarted my PC and the results do appear, but then the same error appears again.
    Any help would be much appreciated.  Thanks.

    Hi Jon_Male,
    A couple of points:
    1. Your release is a bit out-of-date, plus it seems to be an early adopter release rather than the 3.0 production release (3.0.04.34).
    2. The following old forum post discusses the same behavior occurring after an OutOfMemory error: exclamation mark on script output tab
    Regards,
    Gary
    SQL Developer Team

  • Query results varying with unused table in from clause

    Hi all,
    I have table (processing_table2) specified in the FROM clause of SQL query but I havent used any of its value in the SQL statement but it still affects the results of the query. Please help me here as i am clueless.
    Below is the query provided
    SELECT SUM((CREV.sadc_extd*CSSP.redit_pcnt)/100)
    FROM revenue_lines crev,
    sales_split cssp,
    processing_table2
    WHERE crev.order_num='7631090072'
    Results of the above query : 344028065018.359
    SELECT
    SUM((CREV.sadc_extd*CSSP.redit_pcnt)/100)
    FROM revenue_lines crev,
    sales_split cssp
    WHERE crev.order_num='7631090072'
    Results of the above query :26463697309.1046
    Some one suggest me here pls !!!!

    924804 wrote:
    Hi all,
    I have table (processing_table2) specified in the FROM clause of SQL query but I havent used any of its value in the SQL statement but it still affects the results of the query. Please help me here as i am clueless.
    Below is the query provided
    SELECT SUM((CREV.sadc_extd*CSSP.redit_pcnt)/100)
    FROM revenue_lines crev,
    sales_split cssp,
    processing_table2
    WHERE crev.order_num='7631090072'
    Results of the above query : 344028065018.359
    SELECT
    SUM((CREV.sadc_extd*CSSP.redit_pcnt)/100)
    FROM revenue_lines crev,
    sales_split cssp
    WHERE crev.order_num='7631090072'
    Results of the above query :26463697309.1046
    Some one suggest me here pls !!!!CARTESIAN PRODUCT changes result set

  • How to Prioritize the Query Result Using Analytical Functions

    hi
    Edited by: prakash on May 20, 2013 1:42 AM

    Use ROW_NUMBER
    SQL> select PRVDR_LCTN_X_SPCLTY_SID,PRVDR_LCTN_IID,PRVDR_TYPE_X_SPCLTY_SID,STATUS_CID
      2  from
      3  (
      4    select t.*,
      5      row_number() over(partition by PRVDR_TYPE_X_SPCLTY_SID
      6                        order by STATUS_CID) rn
      7    from your_table t
      8  )
      9  where rn = 1;
    PRVDR_LCTN_X_SPCLTY_SID PRVDR_LCTN_IID PRVDR_TYPE_X_SPCLTY_SID STATUS_CID
                   75292110       10153920                75004770          1
                   75291888       10153920                75004884          2
                   75292112       10153920                75004916          1
                   75292117       10153920                75004974          1

  • Numbering query results with a line number in SQL*Plus

    Doesn't it stand to reason that in SQL*Plus there would be a way to number each query results sequentially with line numbers starting at 1 to n -- something option like from a SET command? I'm not talking about linesize.

    There's a column rownum the engine adds into the result sets, just add it to the select list. Can use it to limit the result set (with some limitations) i.e.:
    select rownum, ... from ... where rownum <= 100
    Can't use ">=", that condition will never be met but a subset could be used:
    select * from ( select rownum as linenr, tab1.* from ... ) where linenr between 10 and 20

  • Does Result Cache Really Work..

    Does Result Cache Really Work..
    We have upgraded to 11.2.0.2 Theere were some corruption issue we were facing cause of using result cache..
    Still the same error after upgrade...
    Is any one here familiar with using result cache..One good thing about result cahce i found it does improve performance.
    But the problem is the datbaase crashes..after it reaches some memory limit..Does any one have good expereince using it..?

    Probably following notes on Oracle Support site can help.
    11g New Feature PL/SQL Function Result Cache [ID 430887.1]
    11g New Feature : SQL Query Result Cache [ID 453567.1]
    PL/SQL Procedures Do Not Switch Result Cache Mode Within The Same Session [ID 556035.1]
    HTH

  • Client Result Cache Question

    Hi,
    i am not sure, whether the new feature "Client Result Cache" for OCI - Connections is an enterprise only feature or not.
    The Licensing Information at http://docs.oracle.com/cd/E11882_01/license.112/e10594/editions.htm#CJACGHEB shows this three features are enterprise only:
    Client Side Query Cache
    Query Results Cache
    PL/SQL Function Result Cache
    Which of these are pointing to Client Result Cache? Is it the Query Results Cache? Or something else?
    As an Hint, i am unable to activate the feature on standard edition databases, but i am not sure, if this is the reason or if i am just making some mistakes in configuration/testing.
    Thanks in advance
    Joerg

    we stopped all tests, because it seems to be a enterprise edition only feature.

Maybe you are looking for

  • Unable to find the SID value

    Hi, While extracting the data from R/3 system, i get the error as unable to find SID value. Error message : No SID found for value u201CBTu201D of characteristic 0Sales_Unit Cheers, Kayrene

  • Free Goods Determination Procedure

    Can anyone simply tell me free goods determination procedure with an example? Thanks

  • ITunes 10.4 menubar/icons error on OS Lion

    My iTunes 10.4 looks weird. I upgraded to 10.4 just today and everything works perfect. I even loaded apps and stuffs on my iPhone. It works. The thing is with the looks. * My volume bar does not display full bar. (although it works perfect)... it lo

  • Set rating stars

    This question was posted in response to the following article: http://help.adobe.com/en_US/lightroom/using/WS11A1E98C-3D8D-47b5-8335-4B9D8C3A5D36.html

  • Group style classes

    Hi, I would like to group few style classes to one user style class. I was trying ths code: .myButton af|commandButton:hover, af|commandButton:focus:hover { background-color: transparent; and also this: .myButton af|commandButton:hover af|commandButt