OID function in DB

Hi Experts,
i have query in DB, we are using 11g database;
i have install oracle 11g in my Aix server,I had excuted DBMS_LDAP package also in my user.
I try to create below function but it's thorws error.
CREATE OR REPLACE FUNCTION GETGROUP(Username IN VARCHAR2,ldaphost VARCHAR2,ldapport number,ldapuser VARCHAR2,ldap_pwd VARCHAR2) RETURN ARRAY PIPELINED AS
2 ldap_host VARCHAR2(256);
3 ldap_port PLS_INTEGER;
4 ldap_user VARCHAR2(256);
5 ldap_passwd VARCHAR2(256);
6 ldap_base VARCHAR2(256);
7 retval PLS_INTEGER;
8 my_session DBMS_LDAP.session;
9 subscriber_handle DBMS_LDAP_UTL.HANDLE;
10 sub_type PLS_INTEGER;
11 subscriber_id VARCHAR2(2000);
12 my_pset_coll DBMS_LDAP_UTL.PROPERTY_SET_COLLECTION;
13 my_property_names DBMS_LDAP.STRING_COLLECTION;
14 my_property_values DBMS_LDAP.STRING_COLLECTION;
15 group_handle DBMS_LDAP_UTL.HANDLE;
16 group_id VARCHAR2(2000);
17 group_type PLS_INTEGER;
18 user_handle DBMS_LDAP_UTL.HANDLE;
19 user_id VARCHAR2(2000);
20 user_type PLS_INTEGER;
21 my_mod_pset DBMS_LDAP_UTL.MOD_PROPERTY_SET;
22 my_attrs DBMS_LDAP.STRING_COLLECTION;
23 group_string varchar2(32767);
24 BEGIN
25 – Please customize the following variables as needed
26 ldap_host := x.x.x.x' ;
27 ldap_port := x;
28 ldap_user := ‘cn=x,cn=x,dc=x,dc=x;
29 ldap_passwd := ‘xxx;
30 sub_type := DBMS_LDAP_UTL.TYPE_DN;
31 subscriber_id := ‘dc=x,dc=x;
32 user_type := DBMS_LDAP_UTL.TYPE_DN;
33 user_id := ‘cn=’||Username||’,cn=Users,dc=x,dc=x;
34 group_type := DBMS_LDAP_UTL.TYPE_DN;
35 group_id := ‘cn=Groups, dc=x,dc=x;
36 – Choosing exceptions to be raised by DBMS_LDAP library.
37 DBMS_LDAP.USE_EXCEPTION := TRUE;
38 ———————————————–
39 – Connect to the LDAP server
40 – and obtain and ld session.
41 ———————————————–
42 my_session := DBMS_LDAP.init(ldap_host,ldap_port);
43 ———————————————–
44 – Bind to the directory
45 –
46 ———————————————–
47 retval := DBMS_LDAP.simple_bind_s(my_session,
48 ldap_user,
49 ldap_passwd);
50 ———————————————————————
51 – Create User Handle
52 –
53 ———————————————————————
54 retval := DBMS_LDAP_UTL.create_user_handle(user_handle,user_type,user_id);
55 IF retval != DBMS_LDAP_UTL.SUCCESS THEN
56 DBMS_OUTPUT.PUT_LINE(‘create_user_handle returns : ‘ || TO_CHAR(retval));
57 END IF;
58 —————————————
59 – Get Group Membership
60 —————————————
61 my_attrs.delete();
62 my_attrs(1) := ‘cn’;
63 retval := DBMS_LDAP_UTL.get_group_membership ( my_session,
64 user_handle,
65 DBMS_LDAP_UTL.DIRECT_MEMBERSHIP,
66 my_attrs,
67 my_pset_coll );
68
69 – Handle Errors
70
71 IF retval != DBMS_LDAP_UTL.SUCCESS THEN
72
73 DBMS_OUTPUT.PUT_LINE(‘get_group_membership returns : ‘ || TO_CHAR(retval));
74 END IF;
75 IF my_pset_coll.count > 0 THEN
76 group_string := NULL;
77 FOR i in my_pset_coll.first .. my_pset_coll.last LOOP
78 retval := DBMS_LDAP_UTL.get_property_names(my_pset_coll(i),
79 my_property_names);
80 IF my_property_names.count > 0 THEN
81 FOR j in my_property_names.first .. my_property_names.last LOOP
82 retval := DBMS_LDAP_UTL.get_property_values(my_pset_coll(i),
83 my_property_names(j),
84 my_property_values);
85 IF my_property_values.COUNT > 0 THEN
86 FOR k in my_property_values.FIRST..my_property_values.LAST LOOP
87 DBMS_OUTPUT.PUT_LINE( my_property_names(j) || ‘ : ‘ ||
88 my_property_values(k));
89 IF my_property_names(j) = ‘cn’ THEN
90 PIPE ROW(my_property_values(k));
91 END IF;
92 END LOOP;
93 END IF;
94 END LOOP;
95 END IF; — IF my_property_names.count > 0
96 END LOOP;
97 END IF; — If my_pset_coll.count > 0
98 ———————————————————————
99 – Free handle
100 –
101 ———————————————————————
102 DBMS_LDAP_UTL.free_handle(user_handle);
103 – unbind from the directory
104 retval := DBMS_LDAP.unbind_s(my_session);
105 IF retval != DBMS_LDAP_UTL.SUCCESS THEN
106 – Handle Errors
107 DBMS_OUTPUT.PUT_LINE(‘unbind_s returns : ‘ || TO_CHAR(retval));
108 END IF;
109 – Handle Exceptions
110 EXCEPTION
111 WHEN OTHERS THEN
112 DBMS_OUTPUT.PUT_LINE(‘ Error code : ‘ || TO_CHAR(SQLCODE));
113 DBMS_OUTPUT.PUT_LINE(‘ Error Message : ‘ || SQLERRM);
114 DBMS_OUTPUT.PUT_LINE(‘ Exception encountered .. exiting’);
115 END GETUSERGROUP;
116 /
Warning: Function created with compilation errors
SQL> show error
Errors for FUNCTION UAT_SEC.GETGROUP:
LINE/COL ERROR-------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
25/3 PLS-00103: Encountered the symbol "–" when expecting one of the following: ( begin case declare exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge
It's throw above error .
Please tell me what's wrong in this function.
Its very urgent help me pz.
Thanks
satya

No - you can not access routines in modules. I believe you
can use queries (as stored procedures). My suggestion would be to
write a cfc to handle this.

Similar Messages

  • Oracle Service taking memory more than 50MB. Why?

    We are using Oracle 8i and having One Database and 5 tablespaces. Will these effect the memory occupied by Service?

    Well, the problem is: as for me it's 14 uselessly consumed MiB.. the instance is not even in nomount status, so I would guess it'd take 14MiB plus 80MiB for the S.G.A. but I did not checked. I won't play too much with the monitorring computer ;)
    The sole principle of needing a service for the Instance to run on Win* is weird, but I think mandatory because of the O.S.'s stange design.
    There is no Java Pool, nor is Java installed in my OID database. I just don't need it to have the OID functionning. In fact, the only database in which it is installed is my HTMLDB database. 80MiB is the most reasonable S.G.A. size I've found for running this OID. Using this memory size I don't have to bother with the OID perf. It's running smooooooothly :-)
    Yoann.

  • "Forgot my password" functionality with OID

    We would like to implement "Forgot my password" functionality with a J2EE web app that authenticates against OID. This feature would allow the user to enter their email address, click a button and the system would send the user their password via email, if it could find the matching OID entry.
    Has anyone done this without using cleartext passwords in OID?
    Thanks,
    Bill

    Hi Bill
    Check out the "Password Reset Validation" option. I think it is a safer solution than sending users clear text passwords.
    http://www.oracle.com/technology/products/oid/oidhtml/sec_idm_training/html_masters/c_page07.htm
    Jay

  • OID-Query Entry Return Limit not functioning for OIM

    Hi,
    I have connected Thor Xellerate (Oracle Identity Manager is the new name) to OID 9i and reconciled users from OID. The Query Entry Return Limit set on OID by default is 1000 and I have 1100 hundred users in OID.
    I am able to get all users (means all 1100 users are reconciled) without any problem. I would like to know the significance of this Query Entry Return Limit in this context and whether my understanding is correct or not. Can anybody help me in this regard?
    Thanks & Regards,
    Krishna

    Krishna,
    it's interesting that despite the fact that the OID entry return size limit is set to 1000 the reconcile can retrieve 1100 entries. The default behaviour should be that you should see an error msg stating "size limit exceeded". Anyway set the size limit in OID to a higher value just to be on the save side.
    regards,
    --Olaf                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Decode help in SQL function

    Hi,
    I'm writing an HTMLDB application that we will be using to track the number of hours that we put into a project (all projects), and I've got a routine that returns the number of hours that are possible within a given month M-F 8 hours a day. I use this value returned to indicate how many hours have been enterered.
    SELECT null link, 'Still Unrecorded' itsrdescr,trueworkdays(:P80_START,:P80_END)*8-(select sum(hoursworked) ihoursworked from workdetail wd, breakdowns b
    WHERE wd.workdetailid = b.itsrnum and b.oid = upper(:P80_DEVELOPER) and dateworked between :P80_START and :P80_END) hoursworked
    from dual
    UNION
    SELECT null link, wd.itsrdescr,sum(b.hoursworked) hoursworked
    FROM workdetail wd, breakdowns b
    WHERE wd.workdetailid = b.itsrnum and b.oid = upper(:P80_DEVELOPER) and dateworked between :P80_START and :P80_END
    GROUP by wd.itsrdescr
    ORDER by hoursworked desc
    What I'm wanting is something along the lines of this:
    SELECT null link, 'Still Unrecorded' itsrdescr,decode((trueworkdays(:P80_START,:P80_END)*8-(select sum(hoursworked) ihoursworked from workdetail wd, breakdowns b
    WHERE wd.workdetailid = b.itsrnum and b.oid = upper(:P80_DEVELOPER) and dateworked between :P80_START and :P80_END)),<0,0,?????????) hoursworked
    from dual
    UNION
    SELECT null link, wd.itsrdescr,sum(b.hoursworked) hoursworked
    FROM workdetail wd, breakdowns b
    WHERE wd.workdetailid = b.itsrnum and b.oid = upper(:P80_DEVELOPER) and dateworked between :P80_START and :P80_END
    GROUP by wd.itsrdescr
    ORDER by hoursworked desc
    which will include a decode statement to let me know when the value getting returned into hoursworked on that first column is less than zero which throws off the chart. In this particular case, it has a value of -6 which makes all my percentages go haywire. How would one code this statement to include a decode statement to find out if that sum is returning a negative number?
    Hope this made sense,
    TIA,
    cliff

    Hey Tyler,
    Actually.... It kinda killed the server. I'm trying to figure out a way to get the following functionality in a different way. Here is the way that the query turned out using the case statement.
    SELECT null link, '<b><font color="red">Still Unrecorded</font></b>' itsrdescr,
    (case
    when (trueworkdays(:P80_START,:P80_END)*8-(select sum(hoursworked) ihoursworked from workdetail wd, breakdowns b
    WHERE wd.workdetailid = b.itsrnum and b.oid = upper(:P80_DEVELOPER) and dateworked between :P80_START and :P80_END)) < 0 then 0
    else
    (trueworkdays(:P80_START,:P80_END)*8-(select sum(hoursworked) ihoursworked from workdetail wd, breakdowns b
    WHERE wd.workdetailid = b.itsrnum and b.oid = upper(:P80_DEVELOPER) and dateworked between :P80_START and :P80_END))
    end) hoursworked
    from dual
    UNION
    SELECT null link, wd.itsrdescr,sum(b.hoursworked) hoursworked
    FROM workdetail wd, breakdowns b
    WHERE wd.workdetailid = b.itsrnum and b.oid = upper(:P80_DEVELOPER) and dateworked between :P80_START and :P80_END
    GROUP by wd.itsrdescr
    ORDER by hoursworked desc
    Any tips on what I could do to get the above functionality without killing my server.
    Thx for the input
    cliff

  • OID SSO Logout issue from the partner application

    As per the below link I am trying the logout functionality from the partner application,
    http://download.oracle.com/docs/cd/B14099_19/idmanage.1012/b14078/tpsso.htm#i1011555
    The article talks about a logout url pattern, I am trying to execute the below from the partner application.
    https://single_sign-on_host:single_sign-on_ssl_port/pls/orasso/orasso.wwsso_app_admin.ls_logout?p_done_url=done_url
    The issue I got is OID server is not redirecting to the p_done_url, it just stays in the same OID logout page, Do I have to create any configuration entry to get the redirection working?
    Thanks

    Hi All,
    Providing more information,
    What I get is the OID logout screen with two return buttons on top and bottom of the page.
    If I found is when I click any of those it goes to the p_done_url but What I want is
    instead of stopping in the OID logout page, auto redirection to the p_done_url,
    Can this be done.
    Thanks

  • HTMLDB as Partner Application to TWO OID instances - Authentication Schemes

    For reasons I won't go into here, we have TWO Oracle OID/SSO instances running - independently.
    I am interested in having HTMLDB / APEX applications capable of authenticate against either one. (one at a time, but on the same engine installation)
    We have done the PARTNER APPLICATION registration which works well against one of the OID instances. Records have been entered into the WWSEC_ENABLER_CONFIG_INFO$ table and everything works as expected.
    What option do I have to register the HTMLDB engine with a SECOND OID/SSO as a partner application and then allow the developers the ability to choose which authentication scheme applies?
    What I have observed is that the package given (custom_auth_sso) has built in
    g_partner_app_name varchar2(2000) := 'HTML_DB';
    Is it possible to duplicate that type of functionality, or is there something deeper ingrained into the engine that I do not understand?
    Regards,
    Tim

    Scott,
    I am working under a model similar to your case number two.
    Application 1 – uses OID A
    Application 2 – uses OID B
    I am going under the assumption that if there were two records in the config_info$ table, that I would need some type of ability to inform the WWV_FLOW_CUSTOM_AUTH_SSO package to switch between them.
    I guess what I am missing is the mechanics. I am trying to avoid having to re-write the WWV_FLOW_CUSTOM_AUTH_SSO package by hand. Besides the package body being compiled, I do not know how that authentication scheme is called by HTMLDB/APEX. I have been using the “Oracle Application Server Single Sign-On (HTML DB Engine as Partner App)” scheme. This leaves most of the Authentication scheme pretty blank with the exception of the Session Not Valid URL ( populated with –PORTAL_SSO-) and the logout URL. Magically it works though.
    If I had TWO schemes registered in the config_info$, how would I indicate which scheme to use?
    Do I have the capability of working with what has already been provided, or am I destined to writing a custom scheme because of the decision which needs to be made?
    Many thanks
    --Tim                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • How to get All Users from OID LDAP

    Hi all,
    I have Oracle Internet Directory(OID) and have created the users in it manually.
    Now I want to extract all the users from OID. How can I get Users from OID??
    Any response will be appritiated. If some one could show me demo code for that I shall be greatful to you.
    Thanks and reagards
    Pravy

    hi,
    the notes from metalink:
    bgards
    elvis
    Doc ID: Note:276688.1
    Subject: How to copy (export/import) the Portal database schemas of IAS 9.0.4 to another database
    Type: BULLETIN
    Status: PUBLISHED
    Content Type: TEXT/X-HTML
    Creation Date: 18-JUN-2004
    Last Revision Date: 05-AUG-2005
    How to copy (export/import) Portal database schemas of IAS 9.0.4 to another database
    Note 276688.1
    Download scripts Unix: Attachment 276688.1:1
    Download Perl scripts (Unix/NT) :Attachment 276688.1:2
    This article is being delivered in Draft form and may contain errors. Please use the MetaLink "Feedback" button to advise Oracle of any issues related to this article.
    HISTORY
    Version 1.0 : 24-JUN-2004: creation
    Version 1.1 : 25-JUN-2004: added a link to download the scripts from Metalink
    Version 1.2 : 29-JUN-2004: Import script: Intermedia indexes are recreated. Imported jobs are reassigned to Portal. ptlconfig replaces ptlasst.
    Version 1.3 : 09-JUL-2004: Additional updates. Usage of iasconfig.xml. Need only 3 environment variables to import.
    Version 1.4 : 18-AUG-2004: Remark about 9.2.0.5 and 10.1.0.2 database
    Version 1.5 : 26-AUG-2004: Duplicate job id
    Version 1.6 : 29-NOV-2004: Remark about WWC-44131 and WWSBR_DOC_CTX_54
    Version 1.7 : 07-JAN-2005: Attached perl scripts (for NT/Unix) at the end of the note
    Version 1.8 : 12-MAY-2005: added a work-around for the WWSTO_SESS_FK1 issue
    Version 1.9 : 07-JUL-2005: logoff trigger and 9.0.1 database export, import in 10g database
    Version 1.10: 05-AUG-2005: reference to the 10.1.2 note
    PURPOSE
    This document explains how to copy a Portal database schema from a database to another database.
    It allows restoring the Portal repository and the OID security associated with Portal.
    It can be used to go in production by copying physically a database from a development portal to a production environment and avoid to use the export/import utilities of Portal.
    This note:
    uses the export/import on the database level
    allows the export/import to be done between different platforms
    The script are Unix based and for the BASH shell. They can be adapted for other platforms.
    For the persons familiar with this technics in Portal 9.0.2, there is a list of the main differences with Portal 9.0.2 at the end of the note.
    These scripts are based on the experience of a lot of persons in Portal 902.
    The scripts are attached to the note. Download them here: Attachment 276688.1:1 : exp_schema_904.zip
    A new version of the script was written in Perl. You can also download them, here: Attachment 276688.1:2 : exp_schema_904_v2.zip. They do exactly the same than the bash ones. But they have the advantage of working on all platforms.
    SCOPE & APPLICATION
    This document is intented for Portal administrators. For using this note, you need basic DBA skills.
    This notes is for Portal 9.0.4.x only. The notes for Portal 9.0.2 are :
    Note 228516.1 : How to copy (export/import) Portal database schemas of IAS 9.0.2 to another database
    Note 217187.1 : How to restore a cold backup of a Portal IAS 9.0.2 on another machine
    The note for Portal 10.1.2 is:
    Note 330391.1 : How to copy (export/import) Portal database schemas of IAS 10.1.2 to another databaseMethod
    The method that we will follow in the document is the following one:
    Export:
    - export of the 4 portal schemas of a database (DEV / development)
    - export the LDAP OID users and groups (optional)
    Install a new machine with fresh IAS installation (PROD / production)
    Import:
    - delete the new and empty portal schema on PROD
    - import the schemas in the production database in place of the deleted schemas
    - import the LDAP OID users and groups (optional)
    - modify the configuration such that the infrastructure uses the portal repository of the backup
    - modify the configuration such that the portal repository uses the OID, webcache and SSO of the new infrastructure
    The export and the import are divided in several steps. All of these steps are included in 2 sample scripts:
    export : exp_portal_schema.sh
    import : imp_portal_schema.sh
    In the 2 scripts, all the steps are runned in one shot. It is just an example. Depending of the configuration and circonstance, all the steps can be runned independently.
    Convention
    Development (DEV) is the name of the machine where resides the copied database
    Production (PROD) is the name of the machine where the database is copied
    Prerequisite
    Some prerequisite first.
    A. Environment variables
    To run the import/export, you will need 3 environment variables. In the given scripts, they are defined in 'portal_env.sh'
    SYS_PASSWORD - the password of user sys in the Portal database
    IAS_PASSWORD - the password of IAS
    ORACLE_HOME - the ORACLE_HOME of the midtier
    The rest of the settings are found automatically by reading the iasconfig.xml file and querying the OID. It is done in 'portal_automatic_env.sh'. I wish to write a note on iasconfig.xml and the way to transform it in usefull environment variables. But it is not done yet. In the meanwhile, you can read the old 902 doc, that explains the meaning of most variables :
    < Note 223438.1 : Shell script to find your portal passwords, settings and place them in environment variables on Unix >
    B. Definition: Cutter database
    A 'Cutter Database' is the term used to designate a Database created by RepCA or OUI and that contains all the schemas used by a IAS 9.0.4 infrastructure. Even if in most cases, several schemas are not used.
    In Portal 9.0.4, the option to install only the portal repository in an empty database has been removed. It has been replaced by RepCA, a tool that creates an infrastructure database. Inside all the infrastucture database schemas, there are the portal schemas.
    This does not stop people to use 2 databases for running portal. One for OID and one for Portal. But in comparison with Portal 9.0.2, all schemas exist in both databases even if some are not used.
    The main idea of Cutter database is to have only 1 database type. And in the future, simplify the upgrades of customer installation
    For an installation where Portal and OID/SSO are in 2 separate databases, it looks like this
    Portal 9.0.2 Portal 9.0.4
    Infrastructure database
    (INFRA_SID)
    The infrastructure contains:
    - OID (used)
    - OEM (used)
    - Single Sign-on / orasso (used)
    - Portal (not used)
    The infrastructure contains:
    - OID (used)
    - OEM (used)
    - Single Sign-on / orasso (used)
    - Portal (not used)
    Portal database
    (PORTAL_SID)
    The custom Portal database contains:
    - Portal (used)
    The custom Portal database (is also an infrastructure):
    - OID (not used)
    - OEM (not used)
    - Single Sign-on / orasso (not used)
    - Portal (used)
    Whatever, the note will suppose there is only one single database. But it works also for 2 databases installation like the one explained above.
    C. Directory structure.
    The sample scripts given inside this note will be explained in the next paragraphs. But first, the scripts are done to use a directory structure that helps to classify the files.
    Here is a list of important files used during the process of export/import:
    File Name
    Description
    exp_portal_schema.sh
    Sample script that exports all the data needed from a development machine
    imp_portal_schema.sh
    Sample script that import all the data into a production machine
    portal_env.sh
    Script that defines the env variable specific to your system (to configure)
    portal_automatic_env.sh
    Helper script to get all the rest of the Portal settings automatically
    xsl
    Directory containing all the XSL files (helper scripts)
    del_authpassword.xsl
    Helper script to remove the authpassword tags in the DSML files
    portal_env_unix.sql
    Helper script to get Portal settings from the iasconfig.xml file
    exp_data
    Directory containing all the exported data
    portal_exp.dmp
    export on the database level of the portal, portal_app, ... database schemas
    iasconfig.xml
    copy the name of iasconfig.xml of the midtier of DEV. Used to get the hostname and port of Webcache
    portal_users.xml
    export from LDAP of the OID users used by Portal (optional)
    portal_groups.xml export from LDAP of the OID groups used by Portal (optional)
    imp_log
    Directory containing several spool and logs files generated during the import
    import.log Log file generated when running the imp command
    ptlconfig.log
    Log generated by ptlconfig when rewiring portal to the infrastructure.
    Some other spool files.
    D. Known limitations
    The scripts given in this note have the following known limitations:
    It does not copy the data stored in the SSO schema: external applications definitions and the passwords stored for them.
    See in the post steps: SSO migration to know how to do.
    The ssomig command resides in the Infrastructure Oracle home. And all commands of Portal in the Midtier home. And practically, these 2 Oracle homes are most of the time not on the same machine. This is the reason.
    The export of the users in OID exports from the default user location:
    ldapsearch .... -b "cn=users,dc=domain,dc=com"
    This is not 100% correct. The users are by default stored in something like "cn=users,dc=domain,dc=com". So, if the users are stored in the default location, it works. But if this location (user install base) is customized, it does not work.
    The reason is that such settings means that the LDAP most of the time highly customized. And I prefer that the administrator to copy the real LDAP himself. The right command will probably depend of the customer case. So, I prefered not to take the risk..
    orclCommonNicknameAttribute must match in the Target and Source OID .
    The orclCommonNicknameAttribute must match on both the source and target OID. By default this attribute is set to "uid", so if this has been changed, it must be changed in both systems.
    Reference Note 282698.1
    Migration of custom Java portlets.
    The script migrates all the data of Portal stored in the database. If you have custom java portlet deployed in your development machine, you will need to copy them in the production system.
    Step 1 - Export in Development (DEV)
    To export a full Portal installation to another machine, you need to follow 3 steps:
    Export at the database level the portal schemas + related schemas
    Get the midtier hostname and port of DEV
    Export of the users and groups with LDAPSEARCH in 2 XML files
    A script combining all the steps is available here.
    A. Export the 4 portals schemas (DEV)
    You need to export 3 types of database schemas:
    The 4 portal schemas created by default by the portal installation :
    portal,
    portal_app,
    portal_demo,
    portal_public
    The schemas where your custom database portlets / providers resides (if any)
    - The custom schemas you have created for storing your portlet / provider code
    The schemas where your custom tables resides. (if any)
    - Your custom schemas accessed by portal and containing only data (tables, views ...)
    You can get an approximate list of the schemas: default portal schemas (1) and database portlets schemas (2) with this query.
    SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE
    FROM DBA_USERS
    WHERE USERNAME IN (user, user||'_PUBLIC', user||'_DEMO', user||'_APP')
    OR USERNAME IN (SELECT DISTINCT OWNER FROM WWAPP_APPLICATION$ WHERE NAME != 'WWV_SYSTEM');
    It still misses your custom schemas containing data only (3).
    We will export the 4 schemas and your custom ones in an export file with the user sys.
    Please, use a command like this one
    exp userid="'sys/change_on_install@dev as sysdba'" file=portal_exp.dmp grants=y log=portal_exp.log owner=(portal,portal_app,portal_demo,portal_public)The result is a dump file: 'portal_exp.dmp'. If you are using a database 9.2.0.5 or 10.1.0.2, the database of the exp/imp dump file has changed. Please read this.
    B. Hostname and port
    For the URL to access the portal, you need the 2 following infos to run the script 'imp_portal_schema.sh below :
    Webcache hostname
    Webcache listen port
    These values are contained in the iasconfig.xml file of the midtier.
    iasconfig.xml
    <IASConfig XSDVersion="1.0">
    <IASInstance Name="ias904.dev.dev_domain.com" Host="dev.dev_domain.com" Version="9.0.4">
    <OIDComponent AdminPassword="@BfgIaXrX1jYsifcgEhwxciglM+pXod0dNw==" AdminDN="cn=orcladmin" SSLEnabled="false" LDAPPort="3060"/>
    <WebCacheComponent AdminPort="4037" ListenPort="7782" InvalidationPort="4038" InvalidationUsername="invalidator" InvalidationPassword="@BR9LXXoXbvW1iH/IEFb2rqBrxSu11LuSdg==" SSLEnabled="false"/>
    <EMComponent ConsoleHTTPPort="1813" SSLEnabled="false"/>
    </IASInstance>
    <PortalInstance DADLocation="/pls/portal" SchemaUsername="portal" SchemaPassword="@BR9LXXoXbvW1c5ZkK8t3KJJivRb0Uus9og==" ConnectString="cn=asdb,cn=oraclecontext">
    <WebCacheDependency ContainerType="IASInstance" Name="ias904.dev.dev_domain.com"/>
    <OIDDependency ContainerType="IASInstance" Name="ias904.dev.dev_domain.com"/>
    <EMDependency ContainerType="IASInstance" Name="ias904.dev.dev_domain.com"/>
    </PortalInstance>
    </IASConfig>
    It corresponds to a portal URL like this:
    http://dev.dev_domain.com:7782/pls/portalThe script exp_portal_schema.sh copy the iasconfig.xml file in the exp_data directory.
    C. Export the security: users and groups (optional)
    If you use other Single Sing-On uses than the portal user, you probably need to restore the full security, the users and groups stored in OID on the production machine. 5 steps need to be executed for this operation:
    Export the OID entries with LDAPSEARCH
    Before to import, change the domain in the generated file (optional)
    Before to import, remove the 'authpassword' attributes from the generated files
    Import them with LDAPADD
    Update the GUID/DN of the groups in portal tables
    Part 1 - LDAPSEARCH
    The typical commands to do this operation look like this:
    ldapsearch -h $OID_HOSTNAME -p $OID_PORT -X -b "cn=portal.040127.1384,cn=groups,dc=dev_domain,dc=com" -s sub "objectclass=*" > portal_group.xml
    ldapsearch -h $OID_HOSTNAME -p $OID_PORT -X -D "cn=orcladmin" -w $IAS_PASSWORD -b "cn=users,dc=dev_domain,dc=com" -s sub "objectclass=inetorgperson" > portal_users.xmlTake care about the following points
    The groups are stored in a LDAP directory containing the date of installation
    ( in this example: portal.040127.1384,cn=groups,dc=dev_domain,dc=com )
    If the domain of dev and prod is different, the exported files contains the name of the development domain in the form of 'dc=dev_domain,dc=com' in a lot of place. The domain name needs to be replaced by the production domain name everywhere in the files.
    Ldapsearch uses the option '- X '. It it to export to DSML files (XML). It avoids a problem related with common LDAP files, LDIF files. LDIF files are wrapped at 78 characters. The wrapping to 78 characters make difficult to change the domain name contained in the LDIF files. XML files are not wrapped and do not have this problem.
    A sample script to export the 2 XML files is given here in : step 3 - export the users and groups (optional) of the export script.
    Part 2 : change the domain in the DSML files
    If the domain of dev and prod is different, the exported files contains the name of the development domain in the form of 'dc=dev_domain,dc=com' in a lot of place. The domain name need to be replaced by the production domain name everywhere in the files.
    To do this, we can use these commands:
    cat exp_data/portal_groups.xml | sed -e "s/$DEV_DN/$PROD_DN/" > imp_log/portal_groups.xml
    cat exp_data/portal_users.xml | sed -e "s/$DEV_DN/$PROD_DN/" > imp_log/temp_users.xml
    Part 3 : Remove the authpassword attribute
    The export of all attributes from the all users has also exported an automatically generated attribute in OID called 'authpassword'.
    'authpassword' is a list automatically generated passwords for several types of application. But mostly, it can not be imported. Also, there is no option in ldapsearch (that I know) that allows removing an attribute. In place of giving to the ldapsearch command the list of all the attributes that is very long, without 'authpassword', we will remove the attribute after the export.
    For that we will use the fact that the DSML files are XML files. There is a XSLT in the Oracle IAS, in the executable '$ORACLE_HOME/bin/xml'. XSLT is a standard specification of the internet consortium W3C to transform a XML file with the help of a XSL file.
    Here is the XSL file to remove the authpassword tag.
    del_autpassword.xsl
    <!--
    File : del_authpassword.xsl
    Version : 1.0
    Author : mgueury
    Description:
    Remove the authpassword from the DSML files
    -->
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xml:output method="xml"/>
    <xsl:template match="*|@*|node()">
    <xsl:copy>
    <xsl:apply-templates select="*|@*|node()"/>
    </xsl:copy>
    </xsl:template>
    <xsl:template match="attr">
    <xsl:choose>
    <xsl:when test="@name='authpassword;oid'">
    </xsl:when>
    <xsl:when test="@name='authpassword;orclcommonpwd'">
    </xsl:when>
    <xsl:otherwise>
    <xsl:copy>
    <xsl:apply-templates select="*|@*|node()"/>
    </xsl:copy>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:template>
    </xsl:stylesheet>
    And the command to make the transfomation:
    xml -f -s del_authpassword.xsl -o imp_log/portal_users.xml imp_log/temp_users.xmlWhere :
    imp_log/portal_users.xml is the final file without authpassword tags
    imp_log/temp_users.xml is the input file with the authpassword tags that can not be imported.
    Part 4 : LDAPADD
    The typical commands to do this operation look like this:
    ldapadd -h $OID_HOSTNAME -p $OID_PORT -D "cn=orcladmin" -w $IAS_PASSWORD -c -X portal_group.xml
    ldapadd -h $OID_HOSTNAME -p $OID_PORT -D "cn=orcladmin" -w $IAS_PASSWORD -c -X portal_users.xmlTake care about the following points
    Ldapadd uses the option ' -c '. Existing users/groups are generating an error. The option -c allows continuing and ignoring these errors. Whatever, the errors should be checked to see if it is just existing entries.
    A sample script to import the 2 XML files given in the step 5 - import the users and groups (optional) of the import script.
    Part 5 : Update the GUID/DN
    In Portal 9.0.4, the update of the GUID is taken care by PTLCONFIG during the import. (Import step 7)
    D. Example script for export
    Here is a example script that combines the 3 steps.
    Depending of you need, you will :
    or execute all the steps
    or just execute the 1rst one (export of the database users). It will be enough you just want to login with the portal user on the production instance.
    if your portal repository resides in a database 9.2.0.5 or 10.1.0.2, please read this
    you can download all the scripts here, Attachment 276688.1:1
    Do not forget to modify the script to your need and mostly add the list of users like explained in point A above.
    exp_portal_schema.sh
    # BASH Script : exp_portal_schema.sh
    # Version : 1.3
    # Portal : 9.0.4.0
    # History :
    # mgueury - creation
    # Description:
    # This script export a portal dump file from a dev instance
    # -------------------------- Environment variables --------------------------
    . portal_env.sh
    # In case you do not use portal_env.sh you have to define all the variables
    # For exporting the dump file only.
    # export SYS_PASSWORD=change_on_install
    # export PORTAL_TNS=asdb
    # For the security (optional)
    # export IAS_PASSWORD=welcome1
    # export PORTAL_USER=portal
    # export PORTAL_PASSWORD=A1b2c3de
    # export OID_HOSTNAME=development.domain.com
    # export OID_PORT=3060
    # export OID_DOMAIN_DN=dc=`echo $OID_HOSTNAME | cut -d '.' -f2,3,4,5,6 --output-delimiter=',dc='`
    # ------------------------------ Help function -----------------------------------
    function press_any_key() {
    if [ $PRESS_ANY_KEY_AFTER_EACH_STEP = "Y" ]; then
    echo
    echo Press enter to continue
    read $ANY_KEY
    else
    echo
    fi
    echo "------------------------------- Export ------------------------------------"
    # create a directory for the export
    mkdir exp_data
    # copy the env variables in the log just in case
    export > exp_data/exp_env_variable.txt
    echo "--------------------- step 1 - export"
    # export the portal users, but take care to add:
    # - your users containing DB providers
    # - your users containing data (tables)
    exp userid="'sys/$SYS_PASSWORD@$PORTAL_TNS as sysdba'" file=exp_data/portal_exp.dmp grants=y log=exp_data/portal_exp.log owner=(portal,portal_app,portal_demo,portal_public)
    press_any_key
    echo "--------------------- step 2 - store iasconfig.xml file of the MIDTIER"
    cp $MIDTIER_ORACLE_HOME/portal/conf/iasconfig.xml exp_data
    press_any_key
    echo "--------------------- step 3 - export the users and groups (optional)"
    # Export the groups and users from OID in 2 XML files (not LDIF)
    # The OID groups of portal are stored in GROUP_INSTALL_BASE that depends
    # of the installation date.
    # For the user, I use the default place. If it does not work,
    # you can find the user place with:
    # > exec dbms_output.put_line(wwsec_oid.get_user_search_base);
    # Get the GROUP_INSTALL_BASE used in security export
    sqlplus $PORTAL_USER/$PORTAL_PASSWORD@$PORTAL_TNS <<IASDB
    set serveroutput on
    spool exp_data/group_base.log
    begin
    dbms_output.put_line(wwsec_oid.get_group_install_base);
    end;
    IASDB
    export GROUP_INSTALL_BASE=`grep cn= exp_data/group_base.log`
    echo '--- Exporting Groups'
    echo 'creating portal_groups.xml'
    ldapsearch -h $OID_HOSTNAME -p $OID_PORT -X -s sub -b "$GROUP_INSTALL_BASE" -s sub "objectclass=*" > exp_data/portal_groups.xml
    echo '--- Exporting Users'
    echo 'creating portal_users.xml'
    ldapsearch -h $OID_HOSTNAME -p $OID_PORT -D "cn=orcladmin" -w $IAS_PASSWORD -X -s sub -b "cn=users,$OID_DOMAIN_DN" -s sub "objectclass=inetorgperson" > exp_data/portal_users.xml
    The script is done to run from the midtier.
    Step 2 - Install IAS in a new machine (PROD)
    A. Installation
    This note does not distinguish if Portal is sharing the same database than Single-Sign On and OID. For simplicity, I will speak only about 1 database. But I could also create a second infrastructure database just for the portal repository. This way is better for production system, because the Portal repository is only product used in the 2nd database. Having 2 separate databases allows taking easily backup of the portal repository.
    On the production machine, you need to install a fresh install of IAS 9.0.4. Take care to use :
    the same IAS patchset 9.0.4.1, 9.0.4.2, ...on the middle-tier and infrastruture than in development
    and same characterset than in development (or UTF8)
    The result will be 2 ORACLE_HOMES and 1 infrastructure database:
    the ORACLE_HOME of the infrastructure (SID:infra904)
    the ORACLE_HOME of the midtier (SID:ias904)
    an infrastructure database (SID:asdb)
    The empty new Portal install should work fine before to go to the next step.
    B. About tablespaces (optional)
    The size of the tablespace of the production should match the one of the Developement machine. If not, the tablespace will autoextend. It is not really a concern, but it is slow. You should modify the tablespaces for to have as much space on prod and dev.
    Also, it is safer to check that there is enough free space on the hard disk to import in the database.
    To modify the tablespace size, you can use Oracle Entreprise Manager console,
    On Unix, . oraenv
    infra904oemapp dbastudio
    On NT Start/ Programs/ Oracle Application server - infra904 / Enterprise Manager Console
    Launch standalone
    Choose the portal database (typically asdb.domain.com)
    Connect with a DBA user, sys or system
    Click Storage/Tablespaces
    Change the size of the PORTAL, PORTAL_DOC, PORTAL_LOGS, PORTAL_IDX tablespaces
    C. Backup
    It could be a good idea to take a backup of the MIDTIER and INFRASTRUCTURE Oracle Homes at that point to allow retesting the import process if it fails for any reason as much as you want without needing to reinstall everything.
    Step 3 - Import in production (on PROD)
    The following script is a sample of an Unix script that combines all the steps to import a portal repository to the production machine.
    To import a portal reporistory and his users and group in OID, you need to do 8 things:
    Stop the midtier to avoid errors while dropping the portal schema
    SQL*Plus with Portal
    Drop the 4 default portal schemas
    Create the portal users with the same passwords than the just deleted users and give them grants (you need to create your own custom shemas too if you have some).
    Import the dump file
    Import the users and groups into OID (optional)
    SQL*Plus with SYS : Post import changes
    Recompile everything in the database
    Reassign the imported jobs to portal
    SQL*Plus with Portal : Post import changes
    Recreate the Portal intermedia indexes
    Correct an import errror on wwsrc_preference$
    Make additional post import changes, by updating some portal tables, and replacing the development hostname, port or domain by the production ones.
    Rewire the portal repository with ptlconfig -dad portal
    Restart the midtier
    Here is a sample script to do this on Unix. You will need to adapt the script to your needs.
    imp_portal_schema.sh
    # BASH Script : imp_portal_schema.sh
    # Version : 1.3
    # Portal : 9.0.4.0
    # History :
    # mgueury - creation
    # Description:
    # This script import a portal dump file and relink it with an
    # infrastructure.
    # Script to be started from the MIDTIER
    # -------------------------- Environment variables --------------------------
    . portal_env.sh
    # Development and Production machine hostname and port
    # Example
    # .._HOSTNAME machine.domain.com (name of the MIDTIER)
    # .._PORT 7782 (http port of the MIDTIER)
    # .._DN dc=domain,dc=com (domain name in a LDAP way)
    # These values can be determined automatically with the iasconfig.xml file of dev
    # and prod. But if you do not know or remember the dev hostname and port, this
    # query should find it.
    # > select name, http_url from wwpro_providers$ where http_url like 'http%'
    # These variables are used in the
    # > step 4 - security / import OID users and groups
    # > step 6 - post import changes (PORTAL)
    # Set the env variables of the DEV instance
    rm /tmp/iasconfig_env.sh
    xml -f -s xsl/portal_env_unix.xsl -o /tmp/iasconfig_env.sh exp_data/iasconfig.xml
    . /tmp/iasconfig_env.sh
    export DEV_HOSTNAME=$WEBCACHE_HOSTNAME
    export DEV_PORT=$WEBCACHE_LISTEN_PORT
    export DEV_DN=dc=`echo $OID_HOSTNAME | cut -d '.' -f2,3,4,5,6 --output-delimiter=',dc='`
    # Set the env variables of the PROD instance
    . portal_env.sh
    export PROD_HOSTNAME=$WEBCACHE_HOSTNAME
    export PROD_PORT=$WEBCACHE_LISTEN_PORT
    export PROD_DN=dc=`echo $OID_HOSTNAME | cut -d '.' -f2,3,4,5,6 --output-delimiter=',dc='`
    # ------------------------------ Help function -----------------------------------
    function press_any_key() {
    if [ $PRESS_ANY_KEY_AFTER_EACH_STEP = "Y" ]; then
    echo
    echo Press enter to continue
    read $ANY_KEY
    else
    echo
    fi
    echo "------------------------------- Import ------------------------------------"
    # create a directory for the logs
    mkdir imp_log
    # copy the env variables in the log just in case
    export > imp_log/imp_env_variable.txt
    echo "--------------------- step 1 - stop the midtier"
    # This step is needed to avoid most case of ORA-01940: user connected
    # when dropping the portal user
    $MIDTIER_ORACLE_HOME/opmn/bin/opmnctl stopall
    press_any_key
    echo "--------------------- step 2 - drop and create empty users"
    sqlplus "sys/$SYS_PASSWORD@$PORTAL_TNS as sysdba" <<IASDB
    spool imp_log/drop_create_user.log
    ---- Drop users
    -- Warning: You need to stop all SQL*Plus connection to the
    -- portal schema before that else the drop will give an
    -- ORA-01940: cannot drop a user that is currently connected
    drop user portal_public cascade;
    drop user portal_app cascade;
    drop user portal_demo cascade;
    drop user portal cascade;
    ---- Recreate the users and give them grants"
    -- The new users will have the same passwords as the users we just dropped
    -- above. Do not forget to add your exported custom users
    create user portal identified by $PORTAL_PASSWORD default tablespace portal;
    grant connect,resource,dba to portal;
    create user portal_app identified by $PORTAL_APP_PASSWORD default tablespace portal;
    grant connect,resource to portal_app;
    create user portal_demo identified by $PORTAL_DEMO_PASSWORD default tablespace portal;
    grant connect,resource to portal_demo;
    create user portal_public identified by $PORTAL_PUBLIC_PASSWORD default tablespace portal;
    grant connect,resource to portal_public;
    alter user portal_public grant connect through portal;
    start $MIDTIER_ORACLE_HOME/portal/admin/plsql/wwv/wdbigra.sql portal
    exit
    IASDB
    press_any_key
    echo "--------------------- step 3 - import"
    imp userid="'sys/$SYS_PASSWORD@$PORTAL_TNS as sysdba'" file=exp_data/portal_exp.dmp grants=y log=imp_log/import.log full=y
    press_any_key
    echo "--------------------- step 4 - import the OID users and groups (optional)"
    # Some errors will be raised when running the ldapadd because at least the
    # default entries will not be able to be inserted. Remove them from the
    # ldif file if you want to avoid them. Due to the flag '-c', ldapadd ignores
    # duplicate entries. Another more radical solution is to erase all the entries
    # of the users and groups in OID before to run the import.
    # Replace the domain name in the XML files.
    cat exp_data/portal_groups.xml | sed -e "s/$DEV_DN/$PROD_DN/" > imp_log/portal_groups.xml
    cat exp_data/portal_users.xml | sed -e "s/$DEV_DN/$PROD_DN/" > imp_log/temp_users.xml
    # Remove the authpassword attributes with a XSL stylesheet
    xml -f -s xsl/del_authpassword.xsl -o imp_log/portal_users.xml imp_log/temp_users.xml
    echo '--- Importing Groups'
    ldapadd -h $OID_HOSTNAME -p $OID_PORT -D "cn=orcladmin" -w $IAS_PASSWORD -c -X imp_log/portal_groups.xml -v
    echo '--- Importing Users'
    ldapadd -h $OID_HOSTNAME -p $OID_PORT -D "cn=orcladmin" -w $IAS_PASSWORD -c -X imp_log/portal_users.xml -v
    press_any_key
    echo "--------------------- step 5 - post import changes (SYS)"
    sqlplus "sys/$SYS_PASSWORD@$PORTAL_TNS as sysdba" <<IASDB
    spool imp_log/sys_post_changes.log
    ---- Recompile the invalid packages"
    -- On the midtier, the script utlrp is not present. This step
    -- uses a copy of it stored in patch/utlrp.sql
    select count(*) INVALID_OBJECT_BEFORE from all_objects where status='INVALID';
    start patch/utlrp.sql
    set lines 999
    select count(*) INVALID_OBJECT_AFTER from all_objects where status='INVALID';
    ---- Jobs
    -- Reassign the JOBS imported to PORTAL. After the import, they belong
    -- incorrectly to the user SYS.
    update dba_jobs set LOG_USER='PORTAL', PRIV_USER='PORTAL' where schema_user='PORTAL';
    commit;
    exit
    IASDB
    press_any_key
    echo "--------------------- step 6 - post import changes (PORTAL)"
    sqlplus $PORTAL_USER/$PORTAL_PASSWORD@$PORTAL_TNS <<IASDB
    set serveroutput on
    spool imp_log/portal_post_changes.log
    ---- Intermedia
    -- Recreate the portal indexes.
    -- inctxgrn.sql is missing from the 9040 CD-ROMS. This is the bug 3536937.
    -- Fixed in 9041. The missing script is contained in the downloadable zip file.
    start patch/inctxgrn.sql
    start $MIDTIER_ORACLE_HOME/portal/admin/plsql/wws/ctxcrind.sql
    ---- Import error
    alter table "WWSRC_PREFERENCE$" add constraint wwsrc_preference_pk
    primary key (subscriber_id, id)
    using index wwsrc_preference_idx1
    begin
    DBMS_RLS.ADD_POLICY ('', 'WWSRC_PREFERENCE$', 'WEBDB_VPD_POLICY',
    '', 'webdb_vpd_sec', 'select, insert, update, delete', TRUE,
    static_policy=>true);
    end ;
    ---- Modify tables with full URLs
    -- If the domain name of prod and dev are different, this step is really important.
    -- It modifies the portal tables that contains reference to the hostname or port
    -- of the development machine. (For more explanation: see Addional steps in the note)
    -- groups (dn)
    update wwsec_group$
    set dn=replace( dn, '$DEV_DN', '$PROD_DN' )
    update wwsec_group$
    set dn_hash = wwsec_api_private.get_dn_hash( dn )
    -- users (dn)
    update wwsec_person$
    set dn=replace( dn, '$DEV_DN', '$PROD_DN' )
    update wwsec_person$
    set dn_hash = wwsec_api_private.get_dn_hash( dn)
    -- subscriber
    update wwsub_model$
    set dn=replace( dn, '$DEV_DN', '$PROD_DN' ), GUID=':1'
    where dn like '%$DEV_DN%'
    -- preferences
    update wwpre_value$
    set varchar2_value=replace( varchar2_value, '$DEV_DN', '$PROD_DN' )
    where varchar2_value like '%$DEV_DN%'
    update wwpre_value$
    set varchar2_value=replace( varchar2_value, '$DEV_HOSTNAME:$DEV_PORT', '$PROD_HOSTNAME:$PROD_PORT' )
    where varchar2_value like '%$DEV_HOSTNAME:$DEV_PORT%'
    -- page url items
    update wwv_things
    set title_link=replace( title_link, '$DEV_HOSTNAME:$DEV_PORT', '$PROD_HOSTNAME:$PROD_PORT' )
    where title_link like '%$DEV_HOSTNAME:$DEV_PORT%'
    -- web providers
    update wwpro_providers$
    set http_url=replace( http_url, '$DEV_HOSTNAME:$DEV_PORT', '$PROD_HOSTNAME:$PROD_PORT' )
    where http_url like '%$DEV_HOSTNAME:$DEV_PORT%'
    -- html links created by the RTF editor inside text items
    update wwv_text
    set text=replace( text, '$DEV_HOSTNAME:$DEV_PORT', '$PROD_HOSTNAME:$PROD_PORT' )
    where text like '%$DEV_HOSTNAME:$DEV_PORT%'
    -- Portlet metadata nls: help URL
    update wwpro_portlet_metadata_nls$
    set help_url=replace( help_url, '$DEV_HOSTNAME:$DEV_PORT', '$PROD_HOSTNAME:$PROD_PORT' )
    where help_url like '%$DEV_HOSTNAME:$DEV_PORT%'
    -- URL items (There is a trigger on this table building absolute_url automatically)
    update wwsbr_url$
    set absolute_url=replace( absolute_url, '$DEV_HOSTNAME:$DEV_PORT', '$PROD_HOSTNAME:$PROD_PORT' )
    where absolute_url like '%$DEV_HOSTNAME:$DEV_PORT%'
    -- Things attributes
    update wwv_thingattributes
    set value=replace( value, '$DEV_HOSTNAME:$DEV_PORT', '$PROD_HOSTNAME:$PROD_PORT' )
    where value like '%$DEV_HOSTNAME:$DEV_PORT%'
    commit;
    exit
    IASDB
    press_any_key
    echo "--------------------- step 7 - ptlconfig"
    # Configure portal such that portal uses the infrastructure database
    cd $MIDTIER_ORACLE_HOME/portal/conf/
    ./ptlconfig -dad portal
    cd -
    mv $MIDTIER_ORACLE_HOME/portal/logs/ptlconfig.log imp_log
    press_any_key
    echo "--------------------- step 8 - restart the midtier"
    $MIDTIER_ORACLE_HOME/opmn/bin/opmnctl startall
    date
    Each step can generate his own errors due to a lot of factors. It is better to run the import step by step the first time.
    Do not forget to check the output of log files created during the various steps of the import:
    imp_log/drop_create_user.log
    Spool when dropping and recreating the portal users
    imp_log/import.log Import log file when importing the portal_exp.dmp file
    imp_log/sys_post_changes.log
    Spool when making post changes with SYS
    imp_log/portal_post_changes.log
    Spool when making post changes with PORTAL
    imp_log/ptlconfig.log
    Log file of ptconfig when rewiring the midtier
    Step 4 - Test
    A. Check the log files
    B. Test the website and see if it works fine.
    Step 5 - take a backup
    Take a backup of all ORACLE_HOME and DATABASES to prevent all hardware problems. You need to copy:
    All the files of the 2 ORACLE_HOME
    And all the database files.
    Step 6 - Additional steps
    Here are some additional steps.
    SSO external application ( that are part of the orasso schema and not imported yet )
    Page URL items ( they seems to store the full URL ) - included in imp_portal_schema.sh
    Web Providers ( the URL needs to be changed ) - included in imp_portal_schema.sh
    Text items edited with the RTF editor in IE and containing links - included in imp_portal_schema.sh
    Most of them are taken care by the "step 8 - post import changes". Except the first one.
    1. SSO import
    This script imports only Portal and the users/groups of OID. Not the list of the external application contained in the orasso user.
    In Portal 9.0.4, there is a script called SSOMIG that resides in $INFRA_ORACLE_HOME/sso/bin and allows to move :
    Definitions and user data for external applications
    Registration URLs and tokens for partner applications
    Connection information used by OracleAS Discoverer to access various data sources
    See:
    Oracle® Application Server Single Sign-On Administrator's Guide 10g (9.0.4) Part Number B10851-01
    14. Exporting and Importing Data
    2. Page items: the page URL items store the full URL.
    This is Bug 2661805 fixed in Portal 9.0.2.6.
    This following work-around is implemented in post import step of imp_portal_schema.sh
    -- page url items
    update wwv_things
    set title_link=replace( title_link, 'dev.dev_domain.com:7778', 'prod.prod_domain.com:7778' )
    where title_link like '%$DEV_HOSTNAME:$DEV_PORT%'
    2. Web Providers
    The URL to the Web providers needs also change. Like for the Page items, they contain the full path of the webserver.
    Or you can get the list of the URLs to change with this query
    select name, http_url from PORTAL.WWPRO_PROVIDERS$ where http_url like '%';
    This following work-around is implemented in post import step of imp_portal_schema.sh
    -- web providers
    update wwpro_providers$
    set http_url=replace( http_url, 'dev.dev_domain.com:7778', 'prod.prod_domain.com:7778' )
    where http_url like '%$DEV_HOSTNAME:$DEV_PORT%'
    4. The production and development machine do not share the same domain
    If the domain of the production and the development are not the same, the DN (name in LDAP) of all users needs to change.
    Let's say from
    dc=dev_domain,dc=com -> dc=prod_domain,dc=com
    1. before to upload the ldif files. All the strings in the 2 ldifs files that contain 'dc=dev_domain,dc=com', have to be replaced by 'dc=prod_domain,dc=com'
    2. in the wwsec_group$ and wwsec_person$ tables in portal, the DN need to change too.
    This following work-around is implemented in post import step of imp_portal_schema.sh
    -- groups (dn)
    update wwsec_group$
    set dn=replace( dn, 'dc=dev_domain,dc=com', 'dc=prod_domain,dc=com' )
    update wwsec_group$
    set dn_hash = wwsec_api_private.get_dn_hash( dn )
    -- users (dn)
    update wwsec_person$
    set dn=replace( dn, 'dc=dev_domain,dc=com', 'dc=prod_domain,dc=com' )
    update wwsec_person$
    set dn_hash = wwsec_api_private.get_dn_hash( dn)
    5. Text items with HTML links
    Sometimes people stores full URL inside their text items, it happens mostly when they use link with the RichText Editor in IE .
    This following work-around is implemented in post import step in imp_portal_schema.sh
    -- html links created by the RTF editor inside text items
    update wwv_text
    set text=replace( text, 'dev.dev_domain.com:7778', 'prod.prod_domain.com:7778' )
    where text like '%$DEV_HOSTNAME:$DEV_PORT%'
    6. OID Custom password policy
    It happens quite often that the people change the password policy of the OID server. The reason is that with the default policy, the password expires after 60 days. If so, do not forget to make the same changes in the new installation.
    PROBLEMS
    1. Import log has some errors
    A. EXP-00091 -Exporting questionable statistics
    You can ignore this error.
    B. IMP-00017 - WWSRC_PREFERENCE$
    When importing, there is one import error:
    IMP-00017: following statement failed with ORACLE error 921:
    "ALTER TABLE "WWSRC_PREFERENCE$" ADD "
    IMP-00003: ORACLE error 921 encountered
    ORA-00921: unexpected end of SQL commandThe primary key is not created. You can create it with this commmand
    in SQL*Plus with the user portal.. Then readd the missing VPD policy.
    alter table "WWSRC_PREFERENCE$" add constraint wwsrc_preference_pk
    primary key (subscriber_id, id)
    using index wwsrc_preference_idx1
    begin
    DBMS_RLS.ADD_POLICY ('', 'WWSRC_PREFERENCE$', 'WEBDB_VPD_POLICY',
    '', 'webdb_vpd_sec', 'select, insert, update, delete', TRUE,
    static_policy=>true);
    end ;
    Step 8 in the script "imp_portal_schema.sh" take care of this. This can also possibly be solved by the
    C. IMP-00017 - WWDAV$ASL
    . importing table "WWDAV$ASL"
    Note: table contains ROWID column, values may be obsolete 113 rows importedThis error is normal, the table really contains a ROWID column.
    D. IMP-00041 - Warning: object created with compilation warnings
    This error is normal too. The packages giving these error have
    dependencies on package not yet imported. A recompilation is done
    after the import.
    E. ldapadd error 'cannot add add entries containing authpasswords'
    # ldap_add: DSA is unwilling to perform
    # ldap_add: additional info: You cannot add entries containing authpasswords.
    "authpasswords" are automatically generated values from the real password of the user stored in userpassword. These values do not have to be exported from ldap.
    In the import script, I remove the additional tag with a XSL stylesheet 'del_authpassword.xsl'. See above.
    F. IMP-00017: WWSTO_SESSION$
    IMP-00017: following statement failed with ORACLE error 2298:
    "ALTER TABLE "WWSTO_SESSION$" ENABLE CONSTRAINT "WWSTO_SESS_FK1""
    IMP-00003: ORACLE error 2298 encountered
    ORA-02298: cannot validate (PORTAL.WWSTO_SESS_FK1) - parent keys not found
    Here is a work-around for the problem. I will normally integrate it in a next version of the scripts.
    SQL> delete from WWSTO_SESSION_DATA$;
    7690 rows deleted.
    SQL> delete from WWSTO_SESSION$;
    1073 rows deleted.
    SQL> commit;
    Commit complete.
    SQL> ALTER TABLE "WWSTO_SESSION$" ENABLE CONSTRAINT "WWSTO_SESS_FK1";
    Table altered.
    G. IMP-00017 - ORACLE error 1 - DBMS_JOB.ISUBMIT
    This error can appear during the import when the import database is not empty and is already customized for some reasons. For example, you export from an infrastructure and you import in a database with a lot of other programs that uses jobs. And unhappily the same job id.
    Due to the way the export/import of jobs is done, the jobs keeps their id after the import. And they may conflict.
    IMP-00017: following statement failed with ORACLE error 1: "BEGIN DBMS_JOB.ISUBMIT(JOB=>42,WHAT=>'begin execute immediate " "''begin wwutl_cache_sys.process_background_inval; end;'' ; exc" "eption when others then wwlog_api.log(p_domain=> ''utl'', " " p_subdomain=>''cache'', p_name=>''background'', " " p_action=>''process_background_inval'', p_information => ''E" "rror in process_background_inval ''|| sqlerrm);end;', NEXT_DATE=" ">TO_DATE('2004-08-19:17:32:16','YYYY-MM-DD:HH24:MI:SS'),INTERVAL=>'SYSDATE " "+ 60/(24*60)',NO_PARSE=>TRUE); END;"
    IMP-00003: ORACLE error 1 encountered ORA-00001: unique constraint (SYS.I_JOB_JOB) violated
    ORA-06512: at "SYS.DBMS_JOB", line 97 ORA-06512: at line 1
    Solutions:
    1. use a fresh installed database,
    2. Due that the jobs conflicting are different because it happens only in custom installation, there is no clear rule. But you can
    recreate the jobs lost after the import with other_ids
    and/or change the job id of the other program before to import. This type of commands can help you (you need to do it with SYS)
    select * from dba_jobs;
    update dba_jobs set job=99 where job=52;
    commit
    2. Import in a RAC environment
    Be aware of the Bug 2479882 when the portal database is in a RAC database.
    Bug 2479882 : NEEDED TO BOUNCE DB NODES AFTER INSTALLING PORTAL 9.0.2 IN RAC NODE3. Intermedia
    After importing a environment, the intermedia indexes are invalid. To correct the error you need to run in SQL*Plus with Portal
    start $MIDTIER_ORACLE_HOME/portal/admin/plsql/wws/inctxgrn.sql
    start $MIDTIER_ORACLE_HOME/portal/admin/plsql/wws/ctxcrind.sql
    But $MIDTIER_ORACLE_HOME/portal/admin/plsql/wws/inctxgrn.sql is missing in IAS 9.0.4.0. This is Bug 3536937. Fixed in 9041. The missing scripts are contained in the downloadable zip file (exp_schema904.zip : Attachment 276688.1:1 ), directory sql. This means that practically in 9040, you have to run
    start sql/inctxgrn.sql
    start $MIDTIER_ORACLE_HOME/portal/admin/plsql/wws/ctxcrind.sql
    In the import script, it is done in the step 6 - recreate Portal Intermedia indexes.
    You can not WA the problem without the scripts. Running ctxcrind.sql alone does not work. You will have this error:
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-06512: at "PORTAL.WWERR_API_EXCEPTION", line 164
    ORA-06512: at "PORTAL.WWV_CONTEXT", line 1035
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-06512: at "PORTAL.WWERR_API_EXCEPTION", line 164
    ORA-06512: at "PORTAL.WWV_CONTEXT", line 476
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-20000: Oracle Text error:
    DRG-12603: CTXSYS does not own user datastore procedure: WWSBR_THING_CTX_69
    ORA-06512: at line 13
    4. ptlconfig
    If you try to run ptlconfig simply after an import you will get an error:
    Problem processing Portal instance: Configuring HTTP server settings : Installing cache data : SQL exception: ERROR: ORA-23421: job number 32 is not a job in the job queue
    This is because the import done by user SYS has imported the PORTAL jobs to the SYS schema in place of portal. The solution is to run
    update dba_jobs set LOG_USER='PORTAL', PRIV_USER='PORTAL' where schema_user='PORTAL';
    In the import script, it is done in the step 8 - post import changes.
    5. WWC-41417 - invalid credentials.
    When you try to login you get:
    Unexpected error encountered in wwsec_app_priv.process_signon (User-Defined Exception) (WWC-41417)
    An exception was raised when accessing the Oracle Internet Directory: 49: Invalid credentials
    Details
    Error:Operation: dbms_ldap.simple_bind_s
    OID host: machine.domain.com
    OID port number: 4032
    Entry DN: orclApplicationCommonName=PORTAL,cn=Portal,cn=Products,cn=OracleContext. (WWC-41743)Solution:
    - run secupoid.sql
    - rerun ptlconfig
    This problem has been seen after using ptlasst in place of ptlconfig.
    6. EXP-003 with a database 9.2.0.5 or 10.1.0.2
    In fact, the DB format of imp/exp has changed in 9.2.0.5 or 10.1.0.2. The EXP-3 error only occurs when the export from the 9.2.0.5.0 or 10.1.0.2.0 database is done with a lower release export utility, e.g. 9.2.0.4.0.
    Due to the way this note is written, the imp/exp utility used is the one of the midtier (9014), if your portal resides in a 9.2.0.5 database, it will not work. To work-around the problem, there are 2 solutions:
    Change the script so that it uses the exp and imp command of database.
    Make a change to the 9.2.0.5 or 10.1.0.2 database to make them compatible with previous version. The change is to modify a database internal view before to export/import the data.
    A work-around is given in Bug 3784697
    1. Make a note of the export definition of exu9tne from
    $OH/rdbms/admin/catexp.sql
    2. Copy this to a new file and add "UNION ALL select * from sys.exu9tneb" to the end of the definition
    3. Run this as sys against the DB to be exported.
    4. Export as required
    5. Put back the original definition of exu9tne
    eg: For 9204 the workaround view would be:
    CREATE OR REPLACE VIEW exu9tne (
    tsno, fileno, blockno, length) AS
    SELECT ts#, segfile#, segblock#, length
    FROM sys.uet$
    WHERE ext# = 1
    UNION ALL
    select * from sys.exu9tneb
    7. EXP-00006: INTERNAL INCONSISTENCY ERROR
    This is Bug 2906613.
    The work-around given in this bug is the following:
    - create the following view, connected as sys, before running export:
    CREATE OR REPLACE VIEW exu8con (
    objid, owner, ownerid, tname, type, cname,
    cno, condition, condlength, enabled, defer,
    sqlver, iname) AS
    SELECT o.obj#, u.name, c.owner#, o.name,
    decode(cd.type#, 11, 7, cd.type#),
    c.name, c.con#, cd.condition, cd.condlength,
    NVL(cd.enabled, 0), NVL(cd.defer, 0),
    sv.sql_version, NVL(oi.name, '')
    FROM sys.obj$ o, sys.user$ u, sys.con$ c,
    sys.cdef$ cd, sys.exu816sqv sv, sys.obj$ oi
    WHERE u.user# = c.owner# AND
    o.obj# = cd.obj# AND
    cd.con# = c.con# AND
    cd.spare1 = sv.version# (+) AND
    cd.enabled = oi.obj# (+) AND
    NOT EXISTS (
    SELECT owner, name
    FROM sys.noexp$ ne
    WHERE ne.owner = u.name AND
    ne.name = o.name AND
    ne.obj_type = 2)
    The modification of exu8con simply adds support for a constraint type that had not previously been supported by this view. There is no negative impact.
    8. WWSBR_DOC_CTX_54 is invalid
    After the recompilation of the package, one package remains invalid (in sys_post_changes.log):
    INVALID_OBJECT_AFTER
    1
    select owner, object_name from all_objects where status='INVALID'
    CTXSYS WWSBR_DOC_CTX_54
    CREATE OR REPLACE procedure WWSBR_DOC_CTX_54
    (rid in rowid, bilob in out NOCOPY blob)
    is begin PORTAL.WWSBR_CTX_PROCS.DOC_CTX(rid,bilob);end;
    This object is not used anymore by portal. The error can be ignored. The procedure can be removed too. This is Bug 3559731.
    9. You do not have permission to perform this operation. (WWC-44131)
    It seems that there are problems if
    - groups on the production machine are not residing in the default place in OID,
    - and that the group creation base and group search base where changed.
    After this, the cloning of the repository work without problem. But it seems that the command 'ptlconfig -dad portal' does not reset the GUID and DN of the groups correctly. I have not checked this yet.
    The solution seems to use the script given in the 9.0.2 Note 228516.1. And run group_sec.sql to reset all the DN and GUID in the copied instance.
    10. Invalid Java objects when exporting from a 9.x database and importing in a 10g database
    If you export from a 9.x database and import in a 10g database, after running utlrp.sql, 18 Java objects will be invalid.
    select object_name, object_type from user_objects where status='INVALID'
    SQL> /
    OBJECT_NAME OBJECT_TYPE
    /556ab159_Handler JAVA CLASS
    /41bf3951_HttpsURLConnection JAVA CLASS
    /ce2fa28e_ProviderManagerClien JAVA CLASS
    /c5b98d35_ServiceManagerClient JAVA CLASS
    /d77cf2ab_SOAPServlet JAVA CLASS
    /649bf254_JavaProvider JAVA CLASS
    /a9164b8b_SpProvider JAVA CLASS
    /2ee43ac9_StatefulEJBProvider JAVA CLASS
    /ad45acec_StatelessEJBProvider JAVA CLASS
    /da1c4a59_EntityEJBProvider JAVA CLASS
    /66fdac3e_OracleSOAPHTTPConnec JAVA CLASS
    /939c36f5_OracleSOAPHTTPConnec JAVA CLASS
    org/apache/soap/rpc/Call JAVA CLASS
    org/apache/soap/rpc/RPCMessage JAVA CLASS
    org/apache/soap/rpc/Response JAVA CLASS
    /198a7089_Message JAVA CLASS
    /2cffd799_ProviderGroupUtils JAVA CLASS
    /32ebb779_ProviderGroupMgrProx JAVA CLASS
    18 rows selected.
    This is a known issue. This can be solved by applying patch one of the following patch depending of your IAS version.
    Bug 3405173 - PORTAL 9.0.4.0.0 PATCH FOR 10G DB UPGRADE (FROM 9.0.X AND 9.2.X)
    Bug 4100409 - PORTAL 9.0.4.1.0 PATCH FOR 10G DB UPGRADE (FROM 9.0.X AND 9.2.X)
    Bug 4100417 - PORTAL 9.0.4.2.0 PATCH FOR 10G DB UPGRADE (FROM 9.0.X AND 9.2.X)
    11. Import : IMP-00003: ORACLE error 30510 encountered
    When importing Portal 9.0.4.x, it could be that the import of the database side produces an error ORA-30510.The new perl script work-around the issue in the portal_post_import.sql script. But not the BASH scripts. If you use the BASH scripts, after the import, please run this command manually in SQL*Plus logged as portal.
    ---- Import error 2 - ORA-30510 when importing
    CREATE OR REPLACE TRIGGER logoff_trigger
    before logoff on schema
    begin
    -- Call wwsec_oid.unbind to close open OID connections if any.
    wwsec_oid.unbind;
    exception
    when others then
    -- Ignore all the errors encountered while unbinding.
    null;
    end logoff_trigger;
    This is logged as <Bug;4458413>.
    12. Exporting from a 9.0.1 database and import in a 9.2.0.5+ or 10g DB
    It could be that when exporting from a 9.0.1 database to a 10g database that the java classes do not get compiled correctly. The following errors are seen
    ORA-29534: referenced object PORTAL.oracle/net/www/proto/https/HttpsURLConnection could not be resolved
    errors:: class oracle/net/www/proto/https/HttpsURLConnection
    ORA-29521: referenced name oracle/security/ssl/OracleSSLSocketFactoryImpl could not be found
    ORA-29521: referenced name oracle/security/ssl/OracleSSLSocketFactory could not be found
    In such a case, please apply the following patches after the import in the 10g database.
    Bug 3405173 PORTAL REPOS DB UPGRADE TO 10G: for Portal 9.0.4.0
    Bug 4100409 PORTAL REPOS DB UPGRADE TO 10G: for Portal 9.0.4.1
    Main Differences with Portal 9.0.2
    For the persons used to this technics in Portal 9.0.2, you could be interested to read the main differences with the same note for Portal 9.0.2
    Portal 9.0.2
    Portal 9.0.4
    Cutter database
    Portal 9.0.2 can be part of an infrastructure database or in a custom external database.
    In Portal 9.0.2, the portal schema is imported in an empty database.
    Portal 9.0.4 can only be installed in a 'Cutter database', a database created with RepCA or OUI containing always OID, DCM and so on...
    In Portal 9.0.4, the portal schema is imported in an 'Cutter database' (new)
    group_sec.sql
    group_sec.sql is used to correct the GUIDs of OID stored in Portal
    ptlconfig -dad portal -oid is used to correct the GUIDs of OID stored in Portal (new)
    1 script
    The import / export are divided by several steps with several scripts
    The import script is done in one step
    Additional steps are included in the script
    This requires to know the hostname and port of the original development machine. (new)
    Import
    The steps are:
    creation of an empty database
    creation of the users with password=username
    import
    The steps are:
    creation of an IAS 10g infrastructure DB (repca or OUI)
    deletion of new portal schemas (new)
    creation of the users with the same password than the schemas just dropped.
    import
    DAD
    The dad needed to be changed
    The passwords are not changed, the dad does not need to be changed.
    Bugs
    In portal 9.0.2, 2 bugs were workarounded by change_host.sh
    In Portal 9.0.4, some tables additional tables needs to be updated manually before to run ptlasst. This is #Bug:3762961#.
    export of LDAP
    The export is done in LDIF files. If the prod and the dev have different domain, it is quite difficult to change the domain name in these file due to the line wrapping at 78 characters.
    The export is done in XML files, in the DSML format (new). It is a lot easier to change the XML files if the domain name is different from PROD to DEV.
    Download
    You have to cut and paste the scripts
    The scripts are attached to the note. Just donwload them.
    Rewiring
    9.0.2 uses ptlasst.
    ptlasst.csh -mode MIDTIER -i custom -s $PORTAL_USER -sp $PORTAL_PASSWORD -c $PORTAL_HOSTNAME:$PORTAL_DB_PORT:$PORTAL_SERVICE_NAME -sdad $PORTAL_DAD -o orasso -op $ORASSO_PASSWORD -odad orasso -host $MIDTIER_HOSTNAME -port $MIDTIER_HTTP_PORT -ldap_h $INFRA_HOSTNAME -ldap_p $OID_PORT -ldap_w $IAS_PASSWORD -pwd $IAS_PASSWORD -sso_c $INFRA_HOSTNAME:$INFRA_DB_PORT:$INFRA_SERVICE_NAME -sso_h $INFRA_HOSTNAME -sso_p $INFRA_HTTP_PORT -ultrasearch -oh $MIDTIER_ORACLE_HOME -mc false -mi true -chost $MIDTIER_HOSTNAME -cport_i $WEBCACHE_INV_PORT -cport_a $WEBCACHE_ADM_PORT -wc_i_pwd $IAS_PASSWORD -emhost $INFRA_HOSTNAME -emport $EM_PORT -pa orasso_pa -pap $ORASSO_PA_PASSWORD -ps orasso_ps -pp $ORASSO_PS_PASSWORD -iasname $IAS_NAME -verbose -portal_only
    9.0.4 uses ptlconfig (new)
    ptlconfig -dad portal
    Environment variables
    A lot of environment variables are needed
    Just 3 environment variables are needed:
    - password of SYS
    - password of IAS,
    - ORACLE_HOME of the Midtier
    All the rest is found in iasconfig.xml and LDAP (new)
    TO DO
    - Check if the orclcommonapplication name fits SID.hostname
    - Check what gives the import of a portal30 upgraded schema inside a schema named portal
    - Explain how to copy the portal*.dbf files in place of export/import and the limitation of tra

  • Tuning a procedure and using dbms_job.submit proc that call's functions

    Hi
    I have Procedure that have 3 curosrs which are nested one below with in each other
    and it looks as below
    it's structure will look some thing look like this
    declare
    empno_fetch number;
    CURSOR deu_process IS
    SELECT empno
    FROM emp
    WHERE flg_process = 'N'
    AND ROWNUM <= 5000
    ORDER BY empno;
    CURSOR dup_all IS --c1 fetch around 400000 records
    (select empno
    from emp
    where empno>l_empno
    order by empno
    where rownum<=empno_fetch;
    CURSOR rules IS --c2
    SELECT rule_id, rule_score, name_Of_func
    FROM rule;
    begin
    l_count := 1;
    OPEN dedupe_rule_attr;
    LOOP
    BEGIN
    Here one loop is used for fetching 5000 records at time and
    Here deu_process cursor is opened ,assume it fetches one record
    Here another cursor dup_all is used for fetching the records and assume it fetched 400000 then
    Here another cursor is opened name where it fetches 10 rows
    Here logic is if first row then
    call's stored function which has following functionalty
    it compares fields such as address of outer most cursor i.e deu_process with all the address of the other rows i.e 400000 rows and return a number
    if second row then
    call's another stored function which has
    compares other fields such as first name,last name
    if third then other field
    so on ....
    up to 10
    and then finally ends
    so if i comment all the rules loop then it takes only one min to execute .If it validaes all of them if takes 14 minutes to execute .so there is problem in that 10 procedures to execute
    So i found an approach to run all the rules simultaneously using dbms_job .But i face a problem that i can't uderstand how to send the input and out put parameter's to calling procedure.And these parameter's must be passed by variable from called procedure to calling procedure
    Please suggest me what is the syntax of dbms_job with input and output parameters with variable's that must be passed as formal parameter's
    Regarding DBMS_JOB.SUBMIT I am getting following error
    Declare
    x number:=1;
    b number;
    jobnumber number;
    BEGIN
    DBMS_JOB.SUBMIT(JOB => jobnumber,
    WHAT => 'vamsi_proc1('||x||');',
    NEXT_DATE => (sysdate+1/(86400)),
    INTERVAL => null);
    --dbms_output.put_line('value of b is '||b);
    COMMIT;
    END;
    Declare
    ERROR at line 1:
    ORA-06550: line 1, column 107:
    PLS-00103: Encountered the symbol ")" when expecting one of the following:
    ( - + case mod new not null others <an identifier>
    <a double-quoted delimited-identifier> <a bind variable> avg
    count current exists max min prior sql stddev sum variance
    execute forall merge time timestamp interval date
    <a string literal with character set specification>
    <a number> <a single-quoted SQL string> pipe
    The symbol "null" was substituted for ")" to continue.
    ORA-06512: at "SYS.DBMS_JOB", line 79
    ORA-06512: at "SYS.DBMS_JOB", line 136
    ORA-06512: at line 5
    create or replace procedure vamsi_proc1(v in out number) as
    x number(4);
    begin
    --a:=1;
    insert into emp_vamsi(select 677,ENAME,SAL,DEPTNO,MANAGER from emp where empno=v);
    commit;
    --a:=2;
    --x:=a;
    end;
    using dbms_job.submit proc that call's functions which returns out and in parameters to calling procedure environment .I can't get this with out using data base table's.
    If you have any method for this Plese suggest
    And also please suggest me weather using job's is a good idea ,If not than suggest me what ever will the other approach.
    Thank's and Regard's
    vamsi krishna

    Hi <br>
    I have looked at all sql trace file ,<br>
    I found that there is no problem in sql statemens all of them are using proper <br>indexes execpt the folllowing statement<br>
    <br>
    SELECT nvl(COUNT(ref_appln_no),0)<br>
    FROM ci_cust_dedupe_mast<br>
    WHERE flg_mnt_status='A'<br>
    <br>
    This statement executes only once for 1*3,77000*10 times <br>
    The function that i had sent previously executes more than 4000000*20 times .<br>
    I think all it takes is only for iterations that are caused<br>
    <br>
    I am also sending sql trace for reference
         <br>
    TKPROF: Release 9.2.0.4.0 - Production on Mon Aug 14 17:30:50 2006     <br>
         <br>
    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.     <br>
         <br>
    Trace file: afhuat_ora_2204.trc     <br>
    Sort options: default     <br>
         <br>
    ********************************************************************************     <br>
    count = number of times OCI procedure was executed     <br>
    cpu = cpu time in seconds executing      <br>
    elapsed = elapsed time in seconds executing     <br>
    disk = number of physical reads of buffers from disk     <br>
    query = number of buffers gotten for consistent read     <br>
    current = number of buffers gotten in current mode (usually for update)     <br>
    rows = number of rows processed by the fetch or execute call     <br>
    ********************************************************************************     <br>
         <br>
    alter session set sql_trace=true     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 0 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 0 0.00 0.00 0 0 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 1 0.00 0.00 0 0 0 0     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Misses in library cache during execute: 1     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61      <br>
    ********************************************************************************     <br>
         <br>
    declare     <br>
    x varchar2(100);     <br>
    y varchar2(100);     <br>
    ap number;     <br>
    begin     <br>
    x:=to_char(sysdate,'dd-mon-rrrr hh:mi:ss');     <br>
    ap:=ap_ci_dedupe_proc;     <br>
    y:=to_char(sysdate,'dd-mon-rrrr hh:mi:ss');     <br>
    dbms_output.put_line(x||' '||ap);     <br>
    dbms_output.put_line(y||' '||ap);     <br>
    end;     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 820.23 0 0 0 1     <br>
    Fetch 0 0.00 0.00 0 0 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 2 0.00 820.23 0 0 0 1     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61      <br>
    ********************************************************************************     <br>
         <br>
    select user#      <br>
    from     <br>
    sys.user$ where name = 'OUTLN'     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 1 0.00 0.00 0 2 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 3 0.00 0.00 0 2 0 1     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    1 TABLE ACCESS BY INDEX ROWID USER$ (cr=2 r=0 w=0 time=31 us)     <br>
    1 INDEX UNIQUE SCAN I_USER1 (cr=1 r=0 w=0 time=18 us)(object id 44)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    SELECT *     <br>
    FROM ci_dedupe_rule_attr     <br>
    ORDER BY cod_rule_attr_id     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.06 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 21 0.00 0.01 1 3 0 20     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 23 0.00 0.07 1 3 0 20     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    SELECT COUNT(1)     <br>
    FROM ci_cust_dedupe_mast     <br>
    WHERE flg_process = 'N'     <br>
    AND     <br>
    AND     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 1 0.00 0.00 0 22 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 3 0.00 0.00 0 22 0 1     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    SELECT nvl(COUNT(ref_appln_no),0)     <br>
    FROM ci_cust_dedupe_mast     <br>
    WHERE flg_mnt_status='A'     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 1 1.68 3.03 18867 21183 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 3 1.68 3.03 18867 21183 0 1     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    SELECT ref_appln_no     <br>
    FROM ci_cust_dedupe_mast     <br>
    WHERE flg_process = 'N'     <br>
    AND     <br>
    AND     <br>
    AND     <br>
    ORDER BY ref_appln_no     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 2 0.00 0.00 0 0 0 0     <br>
    Fetch 3 0.00 0.09 18 43 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 6 0.00 0.09 18 43 0 1     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    SELECT     <br>
    FROM     <br>
    WHERE     <br>
    AND     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 377709 8.71 7.64 0 0 0 0     <br>
    Fetch 377709 18.18 60.19 19802 1510836 0 377709     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 755419 26.90 67.84 19802 1510836 0 377709     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    SELECT NVL(MAX(cod_serial_no),0) + 1     <br>
    FROM ci_dedupe_details_mast     <br>
    WHERE ref_appln_no = :b1     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 1 0.00 0.01 2 2 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 3 0.00 0.01 2 2 0 1     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    SELECT COUNT(1)     <br>
    FROM ci_dedupe_details_mast     <br>
    WHERE ref_appln_no = :b1     <br>
    AND     <br>
    AND flg_mnt_status = 'A'     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 1 0.00 0.00 0 3 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 3 0.00 0.00 0 3 0 1     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    SELECT ref_appln_no FROM     <br>
    (     <br>
    SELECT ref_appln_no     <br>
    FROM ci_cust_dedupe_mast     <br>
    WHERE     <br>
    AND     <br>
    ORDER BY ref_appln_no     <br>
    )     <br>
    WHERE ROWNUM <= :b2     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 77 0.01 0.00 0 0 0 0     <br>
    Fetch 377786 10.21 12.33 908 377865 0 377709     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 377864 10.23 12.33 908 377865 0 377709     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    SELECT cod_rule_id, cod_rule_score, nam_rule_func     <br>
    FROM ci_dedupe_rule_defn     <br>
    WHERE flg_valid = 'Y'     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 377708 5.50 4.03 0 0 0 0     <br>
    Fetch 4154788 62.79 54.04 16 4532496 0 3777080     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 4532497 68.29 58.07 16 4532496 0 3777080     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    select con#,obj#,rcon#,enabled,nvl(defer,0)      <br>
    from     <br>
    cdef$ where robj#=:1     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 2 0.00 0.00 0 0 0 0     <br>
    Execute 2 0.00 0.00 0 0 0 0     <br>
    Fetch 2 0.00 0.01 1 2 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 6 0.00 0.01 1 2 0 0     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
    ********************************************************************************     <br>
         <br>
    select con#,type#,condlength,intcols,robj#,rcon#,match#,refact,nvl(enabled,0),     <br>
    rowid,cols,nvl(defer,0),mtime,nvl(spare1,0)      <br>
    from     <br>
    cdef$ where obj#=:1     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 2 0.00 0.00 0 0 0 0     <br>
    Execute 2 0.00 0.00 0 0 0 0     <br>
    Fetch 2 0.00 0.01 2 4 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 6 0.00 0.01 2 4 0 0     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
    ********************************************************************************     <br>
         <br>
    select u.name,o.name, t.update$, t.insert$, t.delete$, t.enabled      <br>
    from     <br>
    obj$ o,user$ u,trigger$ t where t.baseobject=:1 and t.obj#=o.obj# and      <br>
    o.owner#=u.user# order by o.obj#     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 3 0.00 0.00 0 0 0 0     <br>
    Execute 3 0.00 0.00 0 0 0 0     <br>
    Fetch 4 0.00 0.05 6 9 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 10 0.00 0.05 6 9 0 1     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    0 SORT ORDER BY (cr=1 r=1 w=0 time=4772 us)     <br>
    0 NESTED LOOPS (cr=1 r=1 w=0 time=4747 us)     <br>
    0 NESTED LOOPS (cr=1 r=1 w=0 time=4744 us)     <br>
    0 TABLE ACCESS BY INDEX ROWID TRIGGER$ (cr=1 r=1 w=0 time=4740 us)     <br>
    0 INDEX RANGE SCAN I_TRIGGER1 (cr=1 r=1 w=0 time=4736 us)(object id 130)     <br>
    0 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=0 r=0 w=0 time=0 us)     <br>
    0 INDEX UNIQUE SCAN I_OBJ1 (cr=0 r=0 w=0 time=0 us)(object id 36)     <br>
    0 TABLE ACCESS CLUSTER USER$ (cr=0 r=0 w=0 time=0 us)     <br>
    0 INDEX UNIQUE SCAN I_USER# (cr=0 r=0 w=0 time=0 us)(object id 11)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    select o.owner#,o.name,o.namespace,o.remoteowner,o.linkname,o.subname,     <br>
    o.dataobj#,o.flags      <br>
    from     <br>
    obj$ o where o.obj#=:1     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 2 0.00 0.00 0 0 0 0     <br>
    Execute 3 0.00 0.00 0 0 0 0     <br>
    Fetch 3 0.00 0.02 5 9 0 3     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 8 0.00 0.02 5 9 0 3     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 3)     <br>
    ********************************************************************************     <br>
         <br>
    select col#, grantee#, privilege#,max(mod(nvl(option$,0),2))      <br>
    from     <br>
    objauth$ where obj#=:1 and col# is not null group by privilege#, col#,      <br>
    grantee# order by col#, grantee#     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 3 0.00 0.00 0 0 0 0     <br>
    Execute 3 0.00 0.00 0 0 0 0     <br>
    Fetch 3 0.00 0.01 2 6 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 9 0.00 0.02 2 6 0 0     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
    ********************************************************************************     <br>
         <br>
    INSERT INTO ci_dedupe_details_mast     <br>
    VALUES     <br>
    (     <br>
    :b6,     <br>
    :b5,     <br>
    :b4,     <br>
    :b3,     <br>
    'Y',     <br>
    'N',     <br>
    '',     <br>
    0,     <br>
    SYSDATE,     <br>
    'A',     <br>
    ' ',     <br>
    :b2,     <br>
    'SYSTEM',     <br>
    :b1,     <br>
    1     <br>
    )     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.01 3 3 0 0     <br>
    Execute 1 0.00 0.01 4 1 6 1     <br>
    Fetch 0 0.00 0.00 0 0 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 2 0.00 0.02 7 4 6 1     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    select obj#,type#,ctime,mtime,stime,status,dataobj#,flags,oid$, spare1,      <br>
    spare2      <br>
    from     <br>
    obj$ where owner#=:1 and name=:2 and namespace=:3 and remoteowner is null      <br>
    and linkname is null and subname is null     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 1 0.00 0.01 2 3 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 3 0.00 0.01 2 3 0 1     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
    ********************************************************************************     <br>
         <br>
    select audit$,options      <br>
    from     <br>
    procedure$ where obj#=:1     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 1 0.00 0.01 3 3 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 3 0.00 0.01 3 3 0 1     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    1 TABLE ACCESS BY INDEX ROWID PROCEDURE$ (cr=3 r=3 w=0 time=14110 us)     <br>
    1 INDEX UNIQUE SCAN I_PROCEDURE1 (cr=2 r=2 w=0 time=13871 us)(object id 115)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    select owner#,name,namespace,remoteowner,linkname,p_timestamp,p_obj#,      <br>
    d_owner#, nvl(property,0),subname      <br>
    from     <br>
    dependency$,obj$ where d_obj#=:1 and p_obj#=obj#(+) order by order#     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 4 0.00 0.07 8 12 0 3     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 6 0.00 0.07 8 12 0 3     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    3 SORT ORDER BY (cr=12 r=8 w=0 time=72867 us)     <br>
    3 NESTED LOOPS OUTER (cr=12 r=8 w=0 time=72813 us)     <br>
    3 TABLE ACCESS BY INDEX ROWID DEPENDENCY$ (cr=4 r=4 w=0 time=41297 us)     <br>
    3 INDEX RANGE SCAN I_DEPENDENCY1 (cr=3 r=3 w=0 time=25897 us)(object id 127)     <br>
    3 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=8 r=4 w=0 time=31484 us)     <br>
    3 INDEX UNIQUE SCAN I_OBJ1 (cr=5 r=2 w=0 time=14872 us)(object id 36)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    select order#,columns,types      <br>
    from     <br>
    access$ where d_obj#=:1     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 2 0.00 0.02 3 4 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 4 0.00 0.02 3 4 0 1     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    1 TABLE ACCESS BY INDEX ROWID ACCESS$ (cr=4 r=3 w=0 time=27026 us)     <br>
    1 INDEX RANGE SCAN I_ACCESS1 (cr=3 r=2 w=0 time=21717 us)(object id 129)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    select /*+ index(idl_sb4$ i_idl_sb41) +*/ piece#,length,piece      <br>
    from     <br>
    idl_sb4$ where obj#=:1 and part=:2 and version=:3 order by piece#     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 2 0.00 0.00 0 0 0 0     <br>
    Execute 2 0.00 0.00 0 0 0 0     <br>
    Fetch 3 0.00 0.02 3 7 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 7 0.00 0.02 3 7 0 1     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    0 TABLE ACCESS BY INDEX ROWID IDL_SB4$ (cr=2 r=2 w=0 time=19830 us)     <br>
    0 INDEX RANGE SCAN I_IDL_SB41 (cr=2 r=2 w=0 time=19826 us)(object id 123)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    select /*+ index(idl_ub1$ i_idl_ub11) +*/ piece#,length,piece      <br>
    from     <br>
    idl_ub1$ where obj#=:1 and part=:2 and version=:3 order by piece#     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 2 0.00 0.00 0 0 0 0     <br>
    Execute 2 0.00 0.00 0 0 0 0     <br>
    Fetch 3 0.00 0.03 3 9 0 2     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 7 0.00 0.03 3 9 0 2     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    0 TABLE ACCESS BY INDEX ROWID IDL_UB1$ (cr=2 r=2 w=0 time=21757 us)     <br>
    0 INDEX RANGE SCAN I_IDL_UB11 (cr=2 r=2 w=0 time=21753 us)(object id 120)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    select /*+ index(idl_char$ i_idl_char1) +*/ piece#,length,piece      <br>
    from     <br>
    idl_char$ where obj#=:1 and part=:2 and version=:3 order by piece#     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 2 0.00 0.00 0 0 0 0     <br>
    Execute 2 0.00 0.00 0 0 0 0     <br>
    Fetch 2 0.00 0.01 2 4 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 6 0.00 0.01 2 4 0 0     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    0 TABLE ACCESS BY INDEX ROWID IDL_CHAR$ (cr=2 r=2 w=0 time=19465 us)     <br>
    0 INDEX RANGE SCAN I_IDL_CHAR1 (cr=2 r=2 w=0 time=19461 us)(object id 121)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    select /*+ index(idl_ub2$ i_idl_ub21) +*/ piece#,length,piece      <br>
    from     <br>
    idl_ub2$ where obj#=:1 and part=:2 and version=:3 order by piece#     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 2 0.00 0.00 0 0 0 0     <br>
    Execute 2 0.00 0.00 0 0 0 0     <br>
    Fetch 2 0.00 0.01 2 4 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 6 0.00 0.01 2 4 0 0     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    0 TABLE ACCESS BY INDEX ROWID IDL_UB2$ (cr=2 r=2 w=0 time=15070 us)     <br>
    0 INDEX RANGE SCAN I_IDL_UB21 (cr=2 r=2 w=0 time=15066 us)(object id 122)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    select baseobject,type#,update$,insert$,delete$,refnewname,refoldname,     <br>
    whenclause,definition,enabled,property,sys_evts,nttrigcol,nttrigatt,     <br>
    refprtname,rowid      <br>
    from     <br>
    trigger$ where obj# =:1     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 1 0.00 0.00 1 2 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 3 0.00 0.00 1 2 0 1     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    1 TABLE ACCESS BY INDEX ROWID TRIGGER$ (cr=2 r=1 w=0 time=9352 us)     <br>
    1 INDEX UNIQUE SCAN I_TRIGGER2 (cr=1 r=1 w=0 time=9340 us)(object id 131)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    select owner#      <br>
    from     <br>
    obj$ o where obj# = :1     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 1 0.00 0.00 0 3 0 1     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 3 0.00 0.00 0 3 0 1     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    1 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=3 r=0 w=0 time=15 us)     <br>
    1 INDEX UNIQUE SCAN I_OBJ1 (cr=2 r=0 w=0 time=7 us)(object id 36)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    select tc.type#,tc.intcol#,tc.position#,c.type#, c.length,c.scale,     <br>
    c.precision#,c.charsetid,c.charsetform      <br>
    from     <br>
    triggercol$ tc,col$ c ,trigger$ tr where tc.obj#=:1 and c.obj#=:2 and      <br>
    tc.intcol#=c.intcol# and tr.obj# = tc.obj# and (bitand(tr.property,32) !=      <br>
    32 or bitand(tc.type#,20) = 20) union select type#,intcol#,position#,69,0,0,     <br>
    0,0,0 from triggercol$ where obj#=:3 and intcol#=1001 union select tc.type#,     <br>
    tc.intcol#,tc.position#,121,0,0,0,0,0 from triggercol$ tc,trigger$ tr where      <br>
    tr.obj# = tc.obj# and bitand(tr.property,32) = 32 and tc.obj# = :4 and      <br>
    bitand(tc.type#,20) != 20     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 0     <br>
    Fetch 34 0.00 0.05 8 236 0 33     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 36 0.00 0.05 8 236 0 33     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    33 SORT UNIQUE (cr=236 r=8 w=0 time=54877 us)     <br>
    33 UNION-ALL (cr=236 r=8 w=0 time=54606 us)     <br>
    33 NESTED LOOPS (cr=197 r=8 w=0 time=53779 us)     <br>
    33 NESTED LOOPS (cr=162 r=8 w=0 time=53053 us)     <br>
    77 TABLE ACCESS CLUSTER COL$ (cr=83 r=6 w=0 time=40045 us)     <br>
    1 INDEX UNIQUE SCAN I_OBJ# (cr=2 r=2 w=0 time=13764 us)(object id 3)     <br>
    33 INDEX RANGE SCAN I_TRIGGERCOL2 (cr=79 r=2 w=0 time=12523 us)(object id 133)     <br>
    33 TABLE ACCESS BY INDEX ROWID TRIGGER$ (cr=35 r=0 w=0 time=466 us)     <br>
    33 INDEX UNIQUE SCAN I_TRIGGER2 (cr=2 r=0 w=0 time=152 us)(object id 131)     <br>
    0 INDEX RANGE SCAN I_TRIGGERCOL2 (cr=2 r=0 w=0 time=5 us)(object id 133)     <br>
    0 NESTED LOOPS (cr=37 r=0 w=0 time=574 us)     <br>
    33 INDEX RANGE SCAN I_TRIGGERCOL2 (cr=2 r=0 w=0 time=81 us)(object id 133)     <br>
    0 TABLE ACCESS BY INDEX ROWID TRIGGER$ (cr=35 r=0 w=0 time=350 us)     <br>
    33 INDEX UNIQUE SCAN I_TRIGGER2 (cr=2 r=0 w=0 time=139 us)(object id 131)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    select grantee#,privilege#,nvl(col#,0),max(mod(nvl(option$,0),2))     <br>
    from     <br>
    objauth$ where obj#=:1 group by grantee#,privilege#,nvl(col#,0) order by      <br>
    grantee#     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 3 0.00 0.00 0 0 0 0     <br>
    Execute 3 0.00 0.00 0 0 0 0     <br>
    Fetch 3 0.00 0.00 0 6 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 9 0.00 0.00 0 6 0 0     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
    ********************************************************************************     <br>
         <br>
    UPDATE     <br>
    SET     <br>
    WHERE ref_appln_no = :b1     <br>
    AND flg_mnt_status = 'A'     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.16 9 8 17 1     <br>
    Fetch 0 0.00 0.00 0 0 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 2 0.00 0.16 9 8 17 1     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    select type#,blocks,extents,minexts,maxexts,extsize,extpct,user#,iniexts,     <br>
    NVL(lists,65535),NVL(groups,65535),cachehint,hwmincr, NVL(spare1,0)      <br>
    from     <br>
    seg$ where ts#=:1 and file#=:2 and block#=:3     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 3 0.00 0.00 0 0 0 0     <br>
    Execute 3 0.00 0.00 0 0 0 0     <br>
    Fetch 3 0.00 0.01 3 9 0 3     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 9 0.00 0.01 3 9 0 3     <br>
         <br>
    Misses in library cache during parse: 0     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
         <br>
    Rows Row Source Operation     <br>
    ------- ---------------------------------------------------     <br>
    1 TABLE ACCESS CLUSTER SEG$ (cr=3 r=3 w=0 time=17332 us)     <br>
    1 INDEX UNIQUE SCAN I_FILE#_BLOCK# (cr=2 r=2 w=0 time=10258 us)(object id 9)     <br>
         <br>
    ********************************************************************************     <br>
         <br>
    INSERT INTO ci_dedupe_details     <br>
    VALUES     <br>
    (     <br>
    :b31,     <br>
    :b32,     <br>
    :b31,     <br>
    :b30,     <br>
    :b29,     <br>
    :b28,     <br>
    :b27,     <br>
    :b26,     <br>
    :b25,     <br>
    :b24,     <br>
    :b23,     <br>
    :b22,     <br>
    :b21,     <br>
    :b20,     <br>
    :b19,     <br>
    :b18,     <br>
    :b17,     <br>
    :b16,     <br>
    :b15,     <br>
    :b14,     <br>
    :b13,     <br>
    :b12,     <br>
    :b11,     <br>
    :b10,     <br>
    :b9,     <br>
    :b8,     <br>
    :b7,     <br>
    :b6,     <br>
    :b5,     <br>
    :b4,     <br>
    :b3,     <br>
    :b2,     <br>
    :b1,     <br>
    'N',     <br>
    0,     <br>
    'E' )     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.01 0.03 4 1 5 1     <br>
    Fetch 0 0.00 0.00 0 0 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 2 0.01 0.03 4 1 5 1     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    select /*+ rule */ bucket_cnt, row_cnt, cache_cnt, null_cnt, timestamp#,      <br>
    sample_size, minimum, maximum, distcnt, lowval, hival, density, col#,      <br>
    spare1, spare2, avgcln      <br>
    from     <br>
    hist_head$ where obj#=:1 and intcol#=:2     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 36 0.00 0.00 0 0 0 0     <br>
    Fetch 36 0.00 0.02 3 108 0 36     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 73 0.00 0.02 3 108 0 36     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Optimizer goal: RULE     <br>
    Parsing user id: SYS (recursive depth: 2)     <br>
    ********************************************************************************     <br>
         <br>
    COMMIT     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 2 0.00 0.00 0 0 0 0     <br>
    Execute 2 0.00 0.01 0 0 1 0     <br>
    Fetch 0 0.00 0.00 0 0 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 4 0.00 0.01 0 0 1 0     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61 (recursive depth: 1)     <br>
    ********************************************************************************     <br>
         <br>
    BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END;     <br>
         <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 1 0.00 0.00 0 0 0 0     <br>
    Execute 1 0.00 0.00 0 0 0 1     <br>
    Fetch 0 0.00 0.00 0 0 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 2 0.00 0.00 0 0 0 1     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Optimizer goal: CHOOSE     <br>
    Parsing user id: 61      <br>
         <br>
         <br>
         <br>
    ********************************************************************************     <br>
         <br>
    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 2 0.00 0.00 0 0 0 0     <br>
    Execute 3 0.00 820.23 0 0 0 2     <br>
    Fetch 0 0.00 0.00 0 0 0 0     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 5 0.00 820.23 0 0 0 2     <br>
         <br>
    Misses in library cache during parse: 1     <br>
    Misses in library cache during execute: 1     <br>
         <br>
         <br>
    OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS     <br>
         <br>
    call count cpu elapsed disk query current rows     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    Parse 49 0.00 0.10 3 3 0 0     <br>
    Execute 755577 14.25 11.90 17 10 29 3     <br>
    Fetch 4910422 92.89 130.18 39671 6442895 0 4532611     <br>
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------     <br>
    total 5666048 107.14 142.19 39691 6442908 29 4532614     <br>
         <br>
    Misses in library cache during parse: 11     <br>
         <br>
    17 user SQL statements in session.     <br>
    35 internal SQL statements in session.     <br>
    52 SQL statements in session.     <br>
    ********************************************************************************     <br>
    Trace file: afhuat_ora_2204.trc     <br>
    Trace file compatibility: 9.00.01     <br>
    Sort options: default     <br>
         <br>
    1 session in tracefile.     <br>
    17 user SQL statements in trace file.     <br>
    35 internal SQL statements in trace file.     <br>
    52 SQL statements in trace file.     <br>
    36 unique SQL statements in trace file.     <br>
    5666466 lines in trace file.     <br>
    Regards<br>
    vamsi krishna<br>

  • How to send Email Notifications to OID users?

    Hi All,
    I have a requirement where I need to send an email notification from the BPEL process. The Email notification has to be sent to a used who invoked the process the userName is provided in the initiation parameters. But I need to fetch the email id for the give userName from the OID which is integrated with the BPEL Process Manager.
    Is there any way I can fetch the email addresses from the OID in BPEL ?
    Thank you.

    Hi Folks, Finally I found the answer... If the APP server is integrated with the OID(Identity Management is set to Oracle Internet Directory and configured properly) the function ora:getUserProperty(bpws:getVariableData('myUser'),'mail') should return the mail property of the user object in OID.
    If your Identity Management is set to the File-Based system then it will get the user properties from the $ORACLE_HOME/bpel/system/services/config/user_properties.xml.

  • Is it possible to retrieve RAD's extended variables with a pl/sql function?

    Good morning everyone,
    We have our forms and reports(10g) application, SSO enabled and we are using OID on 10g app server. some of our users use smart card to log in to the system and some who do not have smart cards provide their database userid, password and SID.
    In the case of users who login with smart card, as a one time effort, they have to register their smart card. At that point OID presents a form prompting for their username, password, sid and then a RAD record is created for that particular user.
    And from then on when the user enters the system using his smart card(12345@mil), forms servlet, does the look up of dbusername,dbpswd,sid which belong to the 12345@mil and user's database credentials are passed to the application. The entire application logic is based on that userid which is also an internal userid in the application. Everything is working fine.
    I have read the documentation and found that 12345@mil is stored in the "cn" parameter and the orclownerguid and orclusernameattribute are stored under "cn"=extended properties in the oid. I am able to see this from the oid console.
    But now I need some help. If I only know the id of the user as "12345@mil" , is it possible to manually query the RAD and retrieve the orclusername from a pl/sql function?
    Any help is greatly appreciated.
    Regards,
    Suma.

    Please can anyone help me????
    Regards,
    Suma.

  • Time Out Functionality in APEX

    Currently I am working on APEX 3.1 and using OID (10.1.2) for LDAP Authentication.
    I want to implement time out functionality in my application.
    Ex: If users logs into to APEX Application and keeping the page ideal for 15 min. When user tries to access the application again. I need to redirect him to SSO page.
    Can anyone suggest me, How can I achieve this functionality.
    Thanks in advance
    Regards
    Balaji S

    Hello Balaji,
    The easiest thing would be: Upgrade to version 3.2. Then session timeout is out-of-the-box....
    Greetings,
    Roel
    http://roelhartman.blogspot.com/

  • Synchronization from OID to AD failed by using ActiveExport profile

    Hi All
    Synchronization from OID to AD failed by using ActiveExport profile
    and i use copy activeexp.map.master that contains
    DomainRules
    cn=Users,dc=software,dc=raya,dc=corp:CN=Users,DC=twa,DC=com:
    AttributeRules
    # Organizational Unit Mapping
    ou: : :organizationalunit:ou: : organizationalunit
    # Container mapping
    cn: : :orclcontainer: cn: :Container
    #Domain cannot be exported
    #name: : :domain: dc: :domain
    cn:1: :inetorgperson:cn: :User
    cn:1: :inetorgperson:SAMAccountName: :User
    # attribute rule for mapping Active Directory LOGIN id
    #mail: : :person:sn: :User:
    mail: : :person:UserPrincipalName: :User:
    # attribute rule for mapping entry and to create orclUserV2
    # There should be a mapping rule with orcluserv2 objectclass
    # without which the PORTAL may not function properly
    cn: : :inetorgperson:givenname: :person
    givenName: : :person:displayName: :person
    # mail needs to be assigned valid value for default settings ing DAS
    mail: : :inetorgperson:mail: :person
    # The next mapping rule is for synchronizing password from OID to AD.
    # Additional configuration is required. Please refer to DIP documentation
    # for details.
    # NOTE - To synchronize password from OID to AD, uncomment the next rule.
    # userpassword: : :person:unicodepwd: :person:
    # Setting useraccountcontrol to "544" (0x220) means
    # 1) regular account 2) password not required 3) user account is enabled
    cn: : :person:useraccountcontrol: :person:"544"
    mobile: : :inetorgperson:mobile: :organizationalperson:
    # GROUP ENTRY MAPPING RULES
    cn: : :orclgroup:cn: :group:
    # This will work successfully only when cn doesn't have any
    # special characters associated with it.
    cn: : :orclgroup:SAMAccountName: :group:
    uniquemember: : :groupofuniquenames:member: :group:
    when i check the log file i found
    Trace Log Started at Mon Jul 24 07:54:58 EEST 2006
    tampro.Twa.com:389
    rdn value is missing in change record when performing insert operation. Please ensure that required mapping rule is specified in the profile.
    java.lang.NullPointerException
    at oracle.ldap.odip.gsi.ActiveWriter.insert(ActiveWriter.java:286)
    at oracle.ldap.odip.gsi.LDAPWriter.writeChanges(LDAPWriter.java:272)
    at oracle.ldap.odip.engine.AgentThread.mapExecute(AgentThread.java:581)
    at oracle.ldap.odip.engine.AgentThread.execMapping(AgentThread.java:306)
    at oracle.ldap.odip.engine.AgentThread.run(AgentThread.java:200)
    null
    ActiveExport:Error in Mapping Enginejava.lang.NullPointerException
    java.lang.NullPointerException
    at java.io.Writer.write(Writer.java:126)
    at java.io.PrintStream.write(PrintStream.java:303)
    at java.io.PrintStream.print(PrintStream.java:462)
    at java.io.PrintStream.println(PrintStream.java:599)
    at java.lang.Throwable.printStackTrace(Throwable.java:461)
    at oracle.ldap.odip.engine.ODIException.printStackTrace(ODIException.java:296)
    at oracle.ldap.odip.engine.AgentThread.mapExecute(AgentThread.java:740)
    at oracle.ldap.odip.engine.AgentThread.execMapping(AgentThread.java:306)
    at oracle.ldap.odip.engine.AgentThread.run(AgentThread.java:200)
    Updated Attributes
    orclodipLastExecutionTime: 20060724075501
    orclLastAppliedChangeNumber: 3833
    orclOdipSynchronizationStatus: Mapping Failure, Agent Execution Not Attempted
    orclOdipSynchronizationErrors: Unknown Error Encountered
    Sleeping for 1 secs
    can any one tell me what can i do ?

    If its a very rare failure, then as you mentioned, you can skip it..

  • What is the benefit in using OID for names resolution?

    I have been wondering about this for awhile. I have been working on getting this to work in Iplanet along with Pat Lehane ([email protected]), and it works now.
    What are the benefits in using OID for names resolution when you can just use the static tnsnames.ora. Database and database names are not created dynamically and they don't change that often. Would creates a new database every day and has to worry about changing the static tnsnames.ora file. In my environment, we run Oracle applications from a server, so there is only one tnsnames.ora file, on the file server.
    It would appear that using OID would cause extra traffic (LDAP lookups) on your network.
    I would like some opinions from both Oracle and Oracle users. Thanks

    hi,
    A benefit of using OID for names resolution is that it allows you to centralize net8 naming (i.e., tnsnames) information in the same place (OID) where other types of administrative information (about users, enterprise groups, enterprise roles, etc) gets stored. If you are more comfortable using tnsnames.ora files for net8 naming, that is perfectly fine!
    An important reason that Oracle had for providing Net8 naming functionality in OID is that the legacy 'Oracle Names' functionality of Oracle 7 will eventually be desupported. This is discussed in metalink Note #135696.1 on http://metalink.oracle.com .
    Hope this helps.

  • Oracle Discoverer integrate with SSO, SYS_CONTEXT function does not work?

    Here is the summary of steps I have already completed:
    1. Following the Discoverer configuration guide, I modified mod_osso.conf file.
    2. So right now, when I typed
    http:\\host: 7778\discoverer\plus, it will direct me to the single-sign-on page.
    3. Then I login as "orcladmin" (a user in OID), and I will be direct to the standard Connection page.
    4. And I already create a private connection using database user "EDW".
    5. So when I click the private connection, I can run the workbook and see all the data. So far so good.
    6. Now is the problem, since I am going to use VDP to restrict the data that SSO user can see. (for example, "orcladmin" can only see school1 data, but not school2 data) So I need to use some sort of function to return value "orcladmin" in the database so that I can use it to create security context and policy (for example, when "orcladmin" login, the SQL query discoverer generated will have a where clause school_id=1). And according to the configuration guide, if I run the following SQL, I should get back "orcladmin":
    Select SYS_CONTEXT('USERENV', 'CLIENT_IDENTIFIER') from dual;
    But instead, I got null. What is the problem? BTW, when I ran the above SQL, I login into the database as EDWPRD, who owns all the base tables that underlying all the workbooks.
    Thank you in advance for your help!!
    Ren

    Hi Ren
    When you say that you are testing this in SQL presumably you are doing this in SQL Plus. If this is true then the answer you got back is correct because connections to SQL Plus do not use the App Server SSO login and so the CLIENT_IDENTIFIER attribute will always return NULL. Try switching this to OS_USER and you should see the user name from the operating system. Switching this to SESSION_USER will tell you the database user name, while switching it to TERMINAL will tell you the name of the machine that you are logged on, and so on.
    For a full list of attribute values to SYS_CONTEXT take a look here:
    http://www.psoug.org/reference/sys_context.html
    To take advantage of any of this inside Discoverer you would have to register the PL/SQL SYS_CONTEXT function with Discoverer.
    Hope this helps
    Regards
    Michael

Maybe you are looking for