Are Joins possible with VPD predicates?

Hi everybody,
I have read the articles about VPD and row level security. What occurs to me is that all examples return predicates where the WHERE clause selects from the same table as the FROM clause. Is there a way to generate a predicate that goes to other tables as well?
Example:
table_1 holds sales records information, e.g.:
product, price, date of sale transaction.
table_2 holds information about the customers, e.g.:
customer_company, product, price, date_of_sale_transaction.
table_3 holds information about the customer account managers, e.g.:
employee_id, family_name, name, customer_company, customer_department.
Now if an account manager logs in to the database he shall only see the sold products in table_1 which were bought by the customers who he is in charge of. The select statement would something like:
select t1.product, t1.price from table_1 t1, table_2 t2, table_3 t3 where t1.product=t2.product and t2.customer_company=t3.customer_company and t3.employee_id=?
Certainly, ? would be the the id of the logged in user.
How can I realize a JOIN like this with VPD?
Thank you for every help!
Jie

Jie,
This is trivial to do in VPD. In your case, you would define a different policy on each table. For instance, the policy function for the policy on table_3 will return a preciate
employee_id = USER
or something similar. The policy function for policy on table_2 will return
customer_company in (select customer_company from table_1)
Similarly, the function for table_1 will return
product_in (select product from table_2)
However, you will note that the query containing IN quickly becomes inefficient when the data volume is high. Therefore, an alternative solution may be in order. One option is to use application contexts where you prepopulate the values when the user logs in and use that in the predicate. It's not possible to describe the whole procedure here; but youmay find the paper I presented at New York Oracle User Group helpful at my website www.proligence.com/nyoug_fgac.pdf.
Hope this helps.
Arup Nanda

Similar Messages

  • Some futures in bpel which are not possible with ESB and vice versa

    Can anyone please tell me some futures in bpel which are not possible with ESB and For some features available in ESB that are absence in BPEL?

    I think you've mistaken the meaning of both technologies. ESB actually works as a part of BPEL, for instance you can create partner link from any esb service.
    ESB service can only expose data or retrieve and process (transform) them from another service. BPEL is using services like ESB as a source and adds decision making functionality which is not present in ESB.

  • How do I avoid ORA-01473 when querying hierarchial on tables with VPD predicates

    My question is how to circumvent what seems to be a limitation i ORACLE, if at all possible. Please read on.
    When using VPD (Virtual Private Database) predictaes on a table and performing a hierarchial query on that table I get the following error message:
    ORA-01473: cannot have subqueries in CONNECT BY CLAUSE
    My query may look like the folwing:
    SELECT FIELD
    FROM TABLE
    START WITH ID = 1
    CONNECT BY PRIOR ID = PARENT
    As my predicate contains a query in it self, I suspect that the implicit augmentation of the predicate results in a query that looks like:
    SELECT FIELD
    FROM TABLE
    START WITH ID = 1
    CONNECT BY PRIOR ID = PARENT
    AND OWNER IN (SELECT OWNER FROM TABLE2 WHERE ...)
    at least, when executing a query like the one above (with the explicit predicate) I get the identical error message.
    So my question is:
    Do you know of any way to force the predicate to augment itslef onto the WHERE-clause? I would be perfectly happy with a query that looks like:
    SELECT FIELD
    FROM TABLE
    START WITH ID = 1
    CONNECT BY PRIOR ID = PARENT
    WHERE OWNER IN (SELECT OWNER FROM TABLE2 WHERE ...)
    or do you know of any fix/patch/release to ORACLE that allows you to include subqueries in the CONNECT BY-clause and eliminates the error message?

    The WHERE clause or AND clause applies to the line directly above it. Please see the examples of valid and invalid queries below, which differ only in the placement of the WHERE or AND clause. If this is not sufficient, please provide some sample data and desired output to clarify what you need.
    -- valid:
    SQL> SELECT     empno,
      2            mgr,
      3            deptno
      4  FROM     emp
      5  WHERE     deptno IN
      6            (SELECT deptno
      7             FROM     dept
      8             WHERE     dname = 'RESEARCH')
      9  START WITH mgr = 7566
    10  CONNECT BY PRIOR empno = mgr
    11  /
         EMPNO        MGR     DEPTNO                           
          7788       7566         20                           
          7876       7788         20                           
          7902       7566         20                           
           800       7902         20                           
    -- invalid:
    SQL>
    SQL> SELECT     empno,
      2            mgr,
      3            deptno
      4  FROM     emp
      5  START WITH mgr = 7566
      6  CONNECT BY PRIOR empno = mgr
      7  WHERE     deptno IN
      8            (SELECT deptno
      9             FROM     dept
    10             WHERE     dname = 'RESEARCH')
    11  /
    WHERE      deptno IN
    ERROR at line 7:
    ORA-00933: SQL command not properly ended
    -- valid:
    SQL>
    SQL> SELECT     empno,
      2            mgr,
      3            deptno
      4  FROM     emp
      5  START WITH mgr = 7566
      6  AND     deptno IN
      7            (SELECT deptno
      8             FROM     dept
      9             WHERE     dname = 'RESEARCH')
    10  CONNECT BY PRIOR empno = mgr
    11  /
         EMPNO        MGR     DEPTNO                           
          7788       7566         20                           
          7876       7788         20                           
          7902       7566         20                           
           800       7902         20                           
    -- invalid:
    SQL>
    SQL> SELECT     empno,
      2            mgr,
      3            deptno
      4  FROM     emp
      5  START WITH mgr = 7566
      6  CONNECT BY PRIOR empno = mgr
      7  AND     deptno IN
      8            (SELECT deptno
      9             FROM     dept
    10             WHERE     dname = 'RESEARCH')
    11  /
    FROM       emp
    ERROR at line 4:
    ORA-01473: cannot have subqueries in CONNECT BY clause

  • Oute Joined table with VPD

    I'm having trouble with getting my select to work correctly on a table that is outer_joined AND has a VPD policy associaed with it. Employees are set with specific departments or departments are left blank. I want the employees to see only their department records but also see the ones that are blank. I know I can use a UNION, but I want this to be in a select.
    What I am seeing is the user is getting returned all_rows (even ones that are not their department), but it's blanking out the Dept_desc value for the ones they dont have security for.
    Emp_name____________Dept_Desc
    Bob_________________Sales
    Mike_________________Sales
    Tom_________________________ *Tom's Dept_Desc is 'HR' SHOULD NOT show up in select
    Joe__________________________ * Joe's Dept_Desc is blank so this SHOULD show up in select
    My current select is:
    select Emp_name, Dept_desc
    from DEPT B, EMP A
    where B.DEPT_NO(+) = A.DEPT_NO
    My tables are like this:
    EMP
    Emp_ID
    Emp_name
    DEPT
    Dept_ID
    Dept_Name
    The VPD on my DEPT table would be set like this:
    Dept_Name = 'Sales'

    You predicate function on VPD needs to be modified. Something like
    FUNCTION the_predicate(p_schema VARCHAR2,p_name VARCHAR2)
                RETURN VARCHAR2 IS
    v_context_val VARCHAR2(100):=SYS_CONTEXT(c_context,c_attribute);
    v_restriction VARCHAR2(4000);
    BEGIN
    v_restriction:='(deptno IS NULL OR deptno='||v_context_val;
    RETURN v_restriction;
    END  the_predicate;PS: Not tested.

  • Are Forms Possible With Pages?

    I want to create a template in Pages that basically acts like a form (similar to a job application form). However, while using the template, I want to be able to leap from field to field by using a keystroke as opposed to using the mouse.
    MS Word has a similar feature wherein you press the <TAB> key to jump to the next field.
    This is a real time saver when you are entering in data on a form with lots of field (i.e. Name, Address, Soc Sec, etc.). Any help on this will be appreciated!

    As far as I know, the only way to do that is to use a table.
    Yvan KOENIG (from FRANCE samedi 7 juin 2008 16:32:59)

  • Join Num with Char, is it possible?  Any way to work around that?

    Hi there
    Is it possible to join a column (in one folder) that defined as NUM with a column (in another folder) that defined as Char? Is any way that I can convert Char to NUM (because information stores in there are number - but show as text number)?
    Here is the example, we have Order Lines Folder that has column HeaderID (NUM) and we want to join Order Lines Folder with Materials Transaction Folders on Transaction Reference column (as Char). Is it possible at all?
    Thanks!
    Nawawan

    Hello
    This is possible and done all the time. You can convert either way.
    To convert from a number to a string use the function TO_CHAR.
    To convert from a string to a number use the function TO_NUMBER.
    So in your example you could use:
    OE_ORDER_LINES_ALL.LINE_ID = TO_NUM(MTL_TRANSACTIONS_REFERENCEx) where MTL_TRANSACTIONS_REFERENCEx is the transaction reference field.
    Be careful to join at the right level. To work at the Header level use the HEADER_ID, whereas from the line you should use the LINE_ID, unless the table you are joining to is a header level table.
    Hope this helps
    Michael

  • Microsoft Excel cannot access the file "-". There are several possible reasons. Windows Server 2008 R2 with Microsoft Office 2010

    I have a problem with starting the Excel Application under a particular user (service account).
    I try to schedule this C# script through an application X (not Windows Task Scheduler. And this
    application will always use a service account to run services on the server). If I run the C# script in
    command prompt under the same user, it runs. Under the application X, which uses the exact same
    user, to initiate the C# script, it fails to open the Excel application (not sufficient permission?).
    This script calls application.Workbooks.Open(<ExcelFileName>,0,false,Type.missing....). At this line
    of code, it gives the following error:
    Microsoft Excel cannot access the file "...". There are several possible reasons:
    -The file name or path does not exist.
    -The file is being used by another program.
    -The workbook you are trying to save has the same name as a currently open workbook.
    I tried all the methods that I found online as follow:
    Create directory "C:\Windows\SysWOW64\config\systemprofile\Desktop" (for 64 bit Windows) or "C:\Windows\System32\config\systemprofile\Desktop" (for 32 bit Windows).
    Changed the DCOM config for the Microsoft Excel application to include this user for Local/Remote Launch and Access.
    Enabled all macros in Excel application and set the Trust Center.
    Add the user to have full control on all folders that contain the Excel file.
    Under DCOM
    config, Microsoft Excel Application, if I modify the Identity tab to check on "This User" and enter the username/password to let Excel always run under that user. Then the application runs perfectly. However, other users can't run the excel application
    on their own with the following error: "Cannot use object linking and embedding". If I check "Use the launching user", then Excel can't be launched. No errors in the logs or events anywhere to check.
    Yet, still the same error. I think it's permission but I am not sure where and what to do for this to work.
    Now, normally, when I run this excel report, I can double-click on the file and it'd automatically run,
    save the new parameters into the current file and generate a new excel file (with date attached to the
    file name). That means there is a change (save) to the original file.
    Environment: Windows Server 2008 R2 and running Microsoft Excel 2010.
    I appreciate all your help!

    I am wondering if this has anything to do with having the user log into Excel.
    In point #5 above: Under DCOM config, Microsoft Excel Application, if I modify the Identity tab to check on "This User" and enter the username/password to let Excel always run under that user. Then the application runs perfectly. However, other
    users can't run the excel application on their own with the following error: "Cannot use object linking and embedding". If I check "Use the launching user", then Excel can't be launched. No errors in the logs or events anywhere to check.
    Because running with the launching user proposes an user to run the Excel application. However, I do not think there is any where that we can pass in the password for this user to Excel. However, this Excel has all the permissions to Excel application as
    well as the folders that have the Excel files.
    Please help!
    Thank you!

  • Join 2 tables which are not related with any primary-foriegn key constraint

    Hello,
    How to join 2 tables which are not related with any primary key foreign key constraint.
    Ex.Consider Table A has 5 columns->A_ID,A_Name,A_Address,A_City,A_Pin(Total 10 rows)
    Table B has 5 columns->B_ID,B_Name,B_Adress,B_City,B_City(Total 30 rows)
    From both the table i want the data,which i need to use in curosr to display finally as "Address Label".
    Both the table are entirely different,but there can be some names of Table A which may come in Table B also,if the name,address and city is also same.That means same person in both the table.
    So finally i want total number of distinct records(distinct data of Table A which is not in B+all the data of table B) to come under Address Label.
    How can i write the select query for this condition?
    Thanks
    Swapna

    Hi, Swapna,
    user11018268 wrote:
    Hello,
    How to join 2 tables which are not related with any primary key foreign key constraint.
    Ex.Consider Table A has 5 columns->A_ID,A_Name,A_Address,A_City,A_Pin(Total 10 rows)
    Table B has 5 columns->B_ID,B_Name,B_Adress,B_City,B_City(Total 30 rows)
    Both the table are entirely different,but there can be some names of Table A which may come in Table B also,if the name,address and city is also same.That means same person in both the table.I think you want a UNION, not a join.
    If you have 10 rows in table_a, and 30 rows in table_b, then
    SELECT       A_ID,          A_Name,     A_Address,     A_City,     A_Pin
    FROM      table_a
    UNION
    SELECT       B_ID,          B_Name,     B_Adress,     B_City,     B_City
    FROM      table_b
    ORDER BY            2,               4          
    ;will produce up to 40 rows; 40 if there are no duplicates. (UNION implies DISTINCT.)
    The corresponding column types should be similar, if not exactly the same.
    There's no problem if A_Name is VARCHAR2 (50) and B_Name is CHAR (30).
    However, there will be a problem if A_ID is a NUMBER and B_ID is a TIMESTAMP.
    You must have the same number of columns in all branches of the UNION.
    If you want an ORDER BY clause, put it at the very end, after the last branch of the UNION.
    You can use positional notation (where 2 means the 2nd column) like I did, or you can use names from the first prong of the UNION (such as A_Name).
    From both the table i want the data,which i need to use in curosr to display finally as "Address Label".
    So finally i want total number of distinct records(distinct data of Table A which is not in B+all the data of table B) to come under Address Label.I'm not sure what your mean about "Address Label".
    Whenever you have a question, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) from all tables, and the exact results (formatted) that you want from that data.
    You can concatenate all 5 columns into one VARCHAR2 column, if you want to.
    You'll probably want to use RPAD (or simillar functions) to make the output line up nicely.
    If any of the columns are not strings, use TO_CHAR to make string versions of them.
    For example:
    SELECT  TO_CHAR (A_ID, '9999999')
         || '   '          -- leave a little space between the left-justified a_id and the right-justified a_name
         || RPAD (A_Name, 25)
         || RPAD (A_Address, 50)
         ...Edited by: Frank Kulash on Nov 14, 2009 10:11 AM

  • What are the possible reasons why I cannot reactivate using my AppleID, even though I already change its password with the help of Apple personel

    What are the possible reasons why I cannot reactivate my Iphone5 using my AppleID, even though I already change its password with the help Apple personel

    If the password for your Apple ID works at id.apple.com > Manage Apple ID, then it's likely that the Apple ID the device wants you use is not the same as the Apple ID you are using.
    Exactly what screen are you at on your iPhone?  It sounds like it is in Activation Lock.

  • We bought a $40 app this afternoon that we are NOT satisfied with!!!  Is it possible get a refund?

    We bought a $40. app this afternoon that we are not satisfied with!!!  Are we able to get a refund?

    Where did you buy it? If you bought it from the Mac App Store use the Support link through the Mac App Store or contact the developer. We are end users just like yourself, if I recall correctly the terms on the Mac App Store say all sales are final.

  • Using geocode in a map based on a view where two datasets are joined

    Hi,
    I'd like to create a map based on a view in which two datasets are joined, where one of the datasets has a geocode column.
    Unfortunately this is not working... It seems that a custom view where two datasets are joined together where one of them has a geocode column makes the geocode column invisible for the map component.
    The following cases do work but we like to combine them so that we can combine different datasets in Studio without using the Integrator:
    - I can create a custom view in which we join two datasets > the view can be used as a source for different component but not the map component (it seems that the geocode column is not found)
    - I can create a custom view with a geocode column in it and that one can be used as a source for a map
    What I'd like to show is that it is possbile to have one datasets coming from a source system and that it is easy to combine an additional excel sheet with geo-information and maybe another excel sheet with different measures. This should be possible since you can join different datasets together in a custom view.
    Thanks in advance,
    Richard

    Oh sorry, we have two base views and one custom view:
    base view TRIS_Omzet which gets it data from an OBI server and has data like revenue, customer, time, etc.
    base view Endeca_Klanten which gets it data from an excel sheet, this view contains the name of the customer and the geocode of the customer's location
    We created one custom view (Omzet_Geo) where the two base queries are joined together using the following query:
    DEFINE V1 AS SELECT
    "Endeca_Klanten.Klanten" AS Klant,
    "Endeca_Klanten.Coordinaten" AS Coordinaten
    from Endeca_Klanten;
    DEFINE V2 AS SELECT
    "TRIS_Omzet.Naam_Consultant" AS Naam_consultant,
    "TRIS_Omzet.Jaar" AS Jaar,
    "TRIS_Omzet.Jaar_week" AS Jaar_week,
    "TRIS_Omzet.Actual" AS Actual,
    "TRIS_Omzet.Omzet" AS Omzet,
    "TRIS_Omzet.Partij" AS Partij,
    "TRIS_Omzet.Uren" AS Uren
    FROM TRIS_Omzet
    DEFINE Omzet_Geo AS SELECT
    V1.Klant AS Klant,
    V1.Coordinaten AS Coordinaten,
    V2.Naam_consultant AS Naam_consultant,
    V2.Jaar AS Jaar,
    V2.Jaar_week AS Jaar_week,
    sum(V2.Actual) AS Actual,
    sum(V2.Omzet) AS Omzet,
    V2.Partij AS Partij,
    sum(V2.Uren) AS Uren
    from V1
    right join V2
    on (V1.Klant=V2.Partij)
    group by Klant, Coordinaten, Naam_consultant,Jaar,Jaar_week,Partij
    Our view definition in the GUI looks like the following, as shown in the screenshots the datatype of the coordinated column is a Geo column both in the base view and the custom view. However the view still can't be selected to be used as a source for the map component.
    The two base views:
    The custom view:
    regards,
    Richard

  • Tuning VPD predicate

    Hi,
    I'm using VPD(RLS) to filter data based.
    I have a performance issue due to the VPD predicate my VPD function generate.
    I have two tables:
    - MARKER which is the table I want to secure and contains a primary key named marker_id and a filed use by VPD name VPD_IS_PUBLIC.
    - DATASECURITY which is the table containing security information and tells to VPD wich data can be seen for a given role.
    I put the script at the end of the message.
    If you look to the code, the VPD function can return two predicates:
    VPD_IS_PUBLIC=1
    or
    VPD_IS_PUBLIC=1 or marker_id in (select field_id from datasecurity where roleid=3)
    The problem with the second query is that more I have data in my MARKER table more the query is slow.
    This is because of "VPD_IS_PUBLIC=1 or" statement.
    Is there another way to write that predicate?
    Does someone can help me?
    Cheers,
    Sebastien
    CREATE TABLE DATASECURITY
    OBJECT_DB_ID NUMBER(10),
    ROLEID NUMBER(10),
    FIELD_ID NUMBER(10),
    CREATION_DATE TIMESTAMP(6) WITH TIME ZONE DEFAULT systimestamp CONSTRAINT NN_DATASECURITY_CREATIONDATE NOT NULL,
    CONSTRAINT PK_DATASECURITY
    PRIMARY KEY
    (OBJECT_DB_ID, ROLEID, FIELD_ID)
    CREATE INDEX INDEX_DATASECURITY ON DATASECURITY
    (FIELD_ID);
    CREATE OR REPLACE TRIGGER TRG_AFT_INSERT_DATASECURITY
    AFTER INSERT
    ON DATASECURITY
    REFERENCING NEW AS New OLD AS Old
    FOR EACH ROW
    DECLARE
    BEGIN
    UPDATE marker
    SET vpd_is_public = 0
    WHERE marker_id = :new.field_id;
    END TRG_BEF_INSERT_DATASECURITY;
    CREATE TABLE MARKER
    MARKER_ID NUMBER(10) NOT NULL,
    MARKER_TYPE_ID NUMBER(10),
    MARKER_ACC VARCHAR2(50 BYTE),
    VERSION VARCHAR2(10 BYTE),
    DISPLAY_SYNONYM_ID NUMBER(10),
    SPECIES_ID NUMBER(10) NOT NULL,
    GERMPLASM_ID NUMBER(10),
    LIBRARY_ID NUMBER(10),
    DESCRIPTION VARCHAR2(2000 BYTE),
    DATE_CREATED DATE,
    DATE_UPDATED DATE,
    VPD_IS_PUBLIC NUMBER(1) DEFAULT 1 CONSTRAINT NN_MARKER_VPD_IS_PUBLIC NOT NULL,
    CONSTRAINT PK_MARKER
    PRIMARY KEY
    (MARKER_ID)
    CREATE INDEX INDEX_MARKER ON MARKER
    (VPD_IS_PUBLIC);
    -- This function return the value stored in the session client info
    CREATE OR REPLACE FUNCTION CSFDS.get_cwid
    RETURN VARCHAR2
    IS
    retval VARCHAR2 (50);
    BEGIN
    DBMS_APPLICATION_INFO.READ_CLIENT_INFO (retval);
    RETURN retval;
    EXCEPTION
    WHEN OTHERS
    THEN
    RAISE;
    END get_cwid;
    -- This function sets the value to the session client info
    CREATE OR REPLACE FUNCTION CSFDS.set_cwid (cwid IN VARCHAR2)
    RETURN NUMBER
    IS
    BEGIN
    DBMS_APPLICATION_INFO.set_client_info (cwid);
    RETURN 1;
    EXCEPTION
    WHEN OTHERS
    THEN
    RETURN 0;
    END set_cwid;
    -- This function is the vpd function.
    -- It returns differents predicate according the value in the session client info
    CREATE OR REPLACE FUNCTION CSFDS.vpd (sch_name IN VARCHAR2, tab_name IN VARCHAR2)
    RETURN VARCHAR2
    IS
    retval VARCHAR2 (500) DEFAULT '' ;
    l_roleid NUMBER DEFAULT 3 ;
    BEGIN
    IF GET_CWID = 'csfds'
    THEN
    retval := 'VPD_IS_PUBLIC=1 or ';
    retval :=
    retval
    || 'marker_id in (select field_id from datasecurity where roleid='
    || l_roleid
    || ')';
    ELSE
    retval := 'VPD_IS_PUBLIC=1';
    END IF;
    RETURN retval;
    EXCEPTION
    WHEN OTHERS
    THEN
    RAISE;
    END vpd;
    -- To create the VPD policy
    BEGIN
    SYS.DBMS_RLS.ADD_POLICY (
    object_schema => 'CSFDS'
    ,object_name => 'MARKER'
    ,policy_name => 'TEST_VPD'
    ,function_schema => 'CSFDS'
    ,policy_function => 'VPD'
    ,statement_types => 'SELECT'
    ,policy_type => dbms_rls.dynamic
    ,long_predicate => FALSE
    ,sec_relevant_cols => 'MARKER_ID,MARKER_TYPE_ID,MARKER_ACC,VERSION,DISPLAY_SYNONYM_ID,SPECIES_ID,GERMPLASM_ID,LIBRARY_ID,DESCRIPTION,DATE_CREATED,DATE_UPDATED,VPD_IS_PUBLIC'
    ,sec_relevant_cols_opt => NULL
    ,update_check => TRUE
    ,static_policy => FALSE
    ,enable => TRUE );
    END;
    Edited by: sfrade on Mar 18, 2009 2:00 PM

    Hi
    Done using the following commands:
    execute DBMS_STATS.gather_table_stats ( ownname => 'CSFDS', tabname => 'DATASECURITY', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE );
    execute DBMS_STATS.gather_table_stats ( ownname => 'CSFDS', tabname => 'MARKER', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE );
    and the plan for the following query
    SELECT COUNT ( * )
    FROM MARKER
    WHERE marker_id in (SELECT FIELD_ID
    FROM DATASECURITY
    WHERE roleid = 1)
    OR vpd_is_public = 1;
    Plan
    SELECT STATEMENT ALL_ROWSCost: 314 Bytes: 10 Cardinality: 1                          
         7 SORT AGGREGATE Bytes: 10 Cardinality: 1                     
              6 FILTER                
                   4 VIEW VIEW CSFDS.index$_join$_001 Cost: 314 Bytes: 176,780 Cardinality: 17,678           
                        3 HASH JOIN      
                             1 INDEX FAST FULL SCAN INDEX (UNIQUE) CSFDS.PK_MARKER Cost: 83 Bytes: 176,780 Cardinality: 17,678
                             2 INDEX FAST FULL SCAN INDEX CSFDS.INDEX_MARKER Cost: 89 Bytes: 176,780 Cardinality: 17,678
                   5 INDEX SKIP SCAN INDEX (UNIQUE) CSFDS.PK_DATASECURITY Cost: 2 Bytes: 10 Cardinality: 1
    By the way, how do you know that the stat were out of date?
    Edited by: sfrade on Mar 20, 2009 8:54 AM

  • Can I join Structure with Z table ?

    Can I join Structure with Z table?
    If yes...plz explain me with an example.
    PLease provide me with an example to join a structure with a Ztable...
    Any help would be appreciated...
    Regards,
    Krishna Chaitanya

    Hi Chitanya,
      It is possible to add fields in the form of structure to a Z table.it can be done in the form of Include or Append structure.There are no other ways to join structure to the table upto my knowledge.
    if it useful, reward points.
    Thank u,
    Prasad G.V.K

  • Can we join Ztables with SAP std. tables in SQVI ?

    Dear All,
    Can we join Ztables with SAP std. tables in SQVI ?
    How to use "left outer join" in SQVI ?
    What r the rules/steps to be followed for creating right SQVI/query ?
    Sometimes it gives error / we do not get any output ....
    Pl' give examples.

    hi
    good
    1- Yes
    3-Check this example for SQVI Query.
    It is possible to generate a complete list of purchase document releases with the purchase document number (requisitions and orders), releaser, release date and release time.
    First, create an Infoset using transaction SQ02 directly reading from table CDPOS and create an additional table: CDHDR. If you are releasing purchase requsitions at the item level, it is convenient to create an additional field (PURPS LIKE EBAN-BNFPO) to capture the item number. Once the field is defined add the following code to it:
    PURPS = CDPOS-TABKEY+14(5).
    Once created, make sure to assign your Infoset to the user groups.
    Second, create an SAP Query (SQ00) or QuickViewer (SQVI) based on the Infoset you created previously. Set CDPOS-OBJECTID, PURPS (additional field), CDHDR-USERNAME, CDHDR-UDATE & CDHDR-UTIME, CDPOS-TCODE, CDPOS-VALUE_NEW, and CDPOS-VALUE_OLD as list fields (display screen).
    Set CDPOS-OBJECTCLAS, CDPOS-OBJECTID, CDPOS-TABNAME, CDPOS-FNAME, CDPOS-CHANGIND, CDHDR-USERNAME, CDHDR-UDATE & CDHDR-UTIME as the selection fields (selection screen).
    Finally, execute your query. For filtering purchase requisition releases set:
    Object class='BANF'
    Table Name='EBAN'
    Field Name='FRGKZ'
    Change type='U'
    For filtering purchase order releases set:
    Object class='EINKBELEG'
    Table Name='EKKO'
    Field Name='FRGKE'
    Change type='U'
    Make sure to specify username, dates or purchase document number (object value) in order to reduce run times.
    thanks
    mrutyun^

  • How do I set up family sharing if all my family members emails are already associated with my iTunes account?

    I want to set up family sharing but it won't let me because all the emails are already associated with the one iTunes account we have.  I am afraid to delete because my children use that email address for text messaging.  How do I set up family sharing if all my family members emails are already associated with my iTunes account?

    Hey Wendaroski,
    I am not quite sure what you mean by "my family members emails are already associated with my iTunes account" but what you need for each family member is an Apple ID. Yours would be the one for your iTunes account.
    If the other members of the family already have an Apple ID you can invite them to join the family group. If not they will need to create one, using their email address. This article shows how -
    Set up an Apple ID in iTunes - Apple Support
    Thanks for using Apple Support Communities.
    Be well,
    Brett L 

Maybe you are looking for

  • My purchased movies are no longer available to stream on my Apple TV

    I purchased Apple TV (Version 3) about 3-4 weeks ago. For the first few weeks I could access and stream all of my iTunes purchased movies through my Apple TV. This week, out of the blue, when I got to Movies > Purchased I get the message "You have no

  • Three displays on 5770

    I have three displays connected to a Radeon HD 5770. Two of them connected with mini display port (1680 x 1050 @ 66 Hz). The third one (Iiyama PL2710HD) at the DVI-port. The pixel resolution is 1920 x 1080. This display is only accepted with 1600 x 1

  • Maybe i am not asking this correctly

    i manually manage my music, primarily because i don't want to have to sync my podcasts (i like to keep some of them on there forever). so when i click on a playlist and pick sync nothing happens. in the status bar at the top of itunes is says its syn

  • How to make Report for Data Forms ?

    Dears I need to make a report for specifice Data Form to show me who have access on this data form and the kind of security which took on dimensions members on the same data form. Just be note that the Security is assign on the Folders of data forms

  • ENVY 4500 CONNECTS TO WIFI, BUT WON'T PRINT

    I AM USING A MAC LAPTOP RUNNING OSX 10.7.4.  I ORIGINALLY INSTALLED THIS WIRELESS PRINTER USING THE WIZARD AND I HAD NO PROBLEMS PRINTING UNTIL I CHANGED MY ROUTER.  NOW, EVEN THOUGH I PRINTED OUT THE WIRELESS NETWORK TEST RESULTS PAGE WHICH SHOWS TH