DB LINK issue using in a Procedure

Hello All, I'm having an issue using DB link in a procedure to collect data into a pl/sql table.
Table1 which is in 10g version being accessed by a DB link and has around 1 million records. Using this link I’m selecting data into another schema DB (which is 11g) into pl/sql table. To my surprise through an anonymous block I can populate data into pl/sql table less than half minute. If i use the same logic by creating a procedure, it takes forever? Is this something to do with the DB versions?
Appreciate your help. Thanks!

In that case you should be using a local table to hold the data.
Create either a permanent local table or a global temporary table and populate it directly from the remote DB:
    INSERT /*+ APPEND */ INTO myLocalTable SELECT * FROM remoteTable@dblink
{coded}
Modify your procedure to load the local table and then process the data locally.
The procedure should use SQL whenever possible.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Similar Messages

  • Issue using SQL stored procedure to insert/update

    With help I finally managed to execute the stored procedure to insert/ update the sql database with the below stored procedure
    ALTER PROCEDURE [dbo].[uspInsertorUpdate]
    @dp char(32),
    @dv char(32),
    @e_num char(12),
    @mail varchar(50),
    @emerg char(32),
    @opt1 char(16),
    @stat char(20),
    @e_id char(35),
    @e_tit varchar(64),
    @e_date datetime
    AS
    BEGIN
    SET NOCOUNT ON;
    IF EXISTS (SELECT 1 FROM [dbo].[sampleemployee] WHERE e_id= @e_id)
    BEGIN
    UPDATE [dbo].[sampleemployee]
    SET dp = @dp,
    dv = @dv,
    e_num = @e_num,
    mail = @mail,
    emerg = @emerg,
    opt1 = @opt1,
    stat = @stat,
    e_tit = @e_tit,
    e_date = @e_date
    WHERE e_id = @e_id
    END
    ELSE
    BEGIN
    INSERT INTO [dbo].[sampleemployee]( dp, dv, e_num, mail, emerg, opt1, stat, e_id, e_tit, e_date)
    VALUES ( @dp, @dv, @e_num, @mail, @emerg, @opt1, @stat, @e_id, @e_tit, @e_date );
    END
    END;
    But the issue here is it just insert only one row and update that row only, even if there are some no.of rows need to be inserted . Not sure why

    Hi Sid_siv,
    To pass a table value to stored procedure, you can refer to the sample query below.
    create type FileDetailsType as table
    FileName varchar(50),
    CreatedDate varchar(50),
    Size decimal(18,0)
    create procedure InsertFileDetails
    @FileDetails FileDetailsType readonly
    as
    insert into
    FileDetails (FileName, CreatedDate, Size)
    select FileName, CreatedDate, Size
    from
    @FileDetails;
    Reference
    http://www.codeproject.com/Articles/22392/SQL-Server-Table-Valued-Parameters
    http://forum.codecall.net/topic/75547-sql-server-2008-passing-table-parameter-to-stored-procedure/
    Regards,
    Charlie Liao
    TechNet Community Support

  • Need help with BC4J/Struts application using a Stored Procedure

    Hi,
    I am doing a proof of concept for a new project using JDeveloper, Struts and BC4J. We want to reuse our Business logic that is currently residing in Oracle Stored Procedures. I previously created a BC4J Entity Object based on a stored procedure Using Oracle Stored Procedures but this stored procedure is a bit different in that it returns a ref cursor as one of the paramters. http://radio.weblogs.com/0118231/stories/2003/03/03/gettingAViewObjectsResultRowsFromARefCursor.html
    I tried the above method, but I am having some trouble with it. I keep getting the error ORA-01008: not all variables are bound when I test it using the AppModule tester.
    Here is the store procedure definition:
    CREATE OR REPLACE PACKAGE pprs_test_wrappers IS
    TYPE sn_srch_results IS REF CURSOR;
    PROCEDURE sn_srch_main_test
    (serial_num_in IN OUT VARCHAR2
    ,serial_coll_cd_in IN OUT NUMBER
    ,max_rows_allowed IN OUT NUMBER
    ,total_rows_selected IN OUT NUMBER
    ,message_cd_out IN OUT VARCHAR2
    ,query_results          OUT sn_srch_results
    END pprs_test_wrappers;
    And here is my code:
    package pprs;
    import java.math.BigDecimal;
    import java.sql.CallableStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Timestamp;
    import java.sql.Types;
    import oracle.jbo.JboException;
    import oracle.jbo.domain.Number;
    import oracle.jbo.server.DBTransaction;
    import oracle.jbo.server.ViewObjectImpl;
    import oracle.jbo.server.ViewRowImpl;
    import oracle.jbo.server.ViewRowSetImpl;
    import oracle.jdbc.driver.OracleCallableStatement;
    import oracle.jdbc.driver.OracleTypes;
    // --- File generated by Oracle Business Components for Java.
    public class LienCheckImpl extends ViewObjectImpl
    * This is the PLSQL block that we will execute to retrieve the REF CURSOR
    private static final String SQL =
    "begin ? := pprs_test_wrappers.sn_srch_main_test(?, ?, ?, ?, ?, ?);end;";
    public LienCheckImpl() {}
    * Overridden framework method.
    * Executed when the framework needs to issue the database query for
    * the query collection based on this view object. One view object
    * can produce many related result sets, each potentially the result
    * of different bind variable values. If the rowset in query is involved
    * in a framework-coordinated master/detail viewlink, then the params array
    * will contain one or more framework-supplied bind parameters. If there
    * are any user-supplied bind parameter values, they will PRECEED the
    * framework-supplied bind variable values in the params array, and the
    * number of user parameters will be indicated by the value of the
    * numUserParams argument.
    protected void executeQueryForCollection(Object qc,Object[] params,int numUserParams) {
    * If there are where-clause params (for example due to a view link)
    * they will be in the 'params' array.
    * We assume that if some parameter is present, that it is a Deptno
    * value to pass as an argument to the stored procedure.
    * NOTE: Due to Bug#2828248 I have to cast to BigDecimal for now,
    * ---- but this parameter value should be oracle.jbo.domain.Number type.
    String serialNumIn = null;
    BigDecimal serialCollCdIn = null;
    BigDecimal maxRowsAllowed = null;
    BigDecimal totalRowsSelected = null;
    String messageCdOut = null;
    if (params != null) {
    serialNumIn = (String)params[0];
    serialCollCdIn = (BigDecimal)params[1];
    maxRowsAllowed = (BigDecimal)params[2];
    totalRowsSelected = (BigDecimal)params[3];
    messageCdOut = (String)params[4];
    storeNewResultSet(qc,retrieveRefCursor(qc,serialNumIn,
    serialCollCdIn,
    maxRowsAllowed,
    totalRowsSelected,
    messageCdOut));
    super.executeQueryForCollection(qc, params, numUserParams);
    * Overridden framework method.
    * Wipe out all traces of a built-in query for this VO
    protected void create() {
    getViewDef().setQuery(null);
    getViewDef().setSelectClause(null);
    setQuery(null);
    * Overridden framework method.
    * The role of this method is to "fetch", populate, and return a single row
    * from the datasource by calling createNewRowForCollection() and populating
    * its attributes using populateAttributeForRow().
    protected ViewRowImpl createRowFromResultSet(Object qc, ResultSet rs) {
    * We ignore the JDBC ResultSet passed by the framework (null anyway) and
    * use the resultset that we've stored in the query-collection-private
    * user data storage
    rs = getResultSet(qc);
    * Create a new row to populate
    ViewRowImpl r = createNewRowForCollection(qc);
    try {
    * Populate new row by attribute slot number for current row in Result Set
    populateAttributeForRow(r,0, nullOrNewNumber(rs.getBigDecimal(1)));
    populateAttributeForRow(r,1, nullOrNewNumber(rs.getBigDecimal(2)));
    populateAttributeForRow(r,2, rs.getString(3));
    populateAttributeForRow(r,3, rs.getString(4));
    populateAttributeForRow(r,4, rs.getString(5));
    catch (SQLException s) {
    throw new JboException(s);
    return r;
    * Overridden framework method.
    * Return true if the datasource has at least one more record to fetch.
    protected boolean hasNextForCollection(Object qc) {
    ResultSet rs = getResultSet(qc);
    boolean nextOne = false;
    try {
    nextOne = rs.next();
    * When were at the end of the result set, mark the query collection
    * as "FetchComplete".
    if (!nextOne) {
    setFetchCompleteForCollection(qc, true);
    * Close the result set, we're done with it
    rs.close();
    catch (SQLException s) {
    throw new JboException(s);
    return nextOne;
    * Overridden framework method.
    * The framework gives us a chance to clean up any resources related
    * to the datasource when a query collection is done being used.
    protected void releaseUserDataForCollection(Object qc, Object rs) {
    * Ignore the ResultSet passed in since we've created our own.
    * Fetch the ResultSet from the User-Data context instead
    ResultSet userDataRS = getResultSet(qc);
    if (userDataRS != null) {
    try {
    userDataRS.close();
    catch (SQLException s) {
    /* Ignore */
    super.releaseUserDataForCollection(qc, rs);
    * Return a JDBC ResultSet representing the REF CURSOR return
    * value from our stored package function.
    private ResultSet retrieveRefCursor(Object qc,
    String serialNum,
    BigDecimal serialColCd,
    BigDecimal maxRows,
    BigDecimal totalRows,
    String messageCd ) {
    CallableStatement st = null;
    try {
    st = getDBTransaction().createCallableStatement(SQL,DBTransaction.DEFAULT);
    * Register the first bind parameter as our return value of type CURSOR
    st.registerOutParameter(1,OracleTypes.CURSOR);
    * Set the value of the 2nd bind variable to pass id as argument
    if (serialNum == null) st.setNull(2,Types.CHAR);
    else st.setString(2,serialNum);
    if (serialColCd == null) st.setNull(3,Types.NUMERIC);
    else st.setBigDecimal(3,serialColCd);
    if (maxRows == null) st.setNull(4,Types.NUMERIC);
    else st.setBigDecimal(4,maxRows);
    if (totalRows == null) st.setNull(5,Types.NUMERIC);
    else st.setBigDecimal(5,totalRows);
    if (messageCd == null) st.setNull(6,Types.CHAR);
    else st.setString(6,messageCd);
    st.execute();
    ResultSet rs = ((OracleCallableStatement)st).getCursor(1);
    * Make this result set use the fetch size from our View Object settings
    rs.setFetchSize(getFetchSize());
    return rs ;
    catch (SQLException s) {
    throw new JboException(s);
    finally {try {st.close();} catch (SQLException s) {}}
    * Store a new result set in the query-collection-private user-data context
    private void storeNewResultSet(Object qc, ResultSet rs) {
    ResultSet existingRs = getResultSet(qc);
    // If this query collection is getting reused, close out any previous rowset
    if (existingRs != null) {
    try {existingRs.close();} catch (SQLException s) {}
    setUserDataForCollection(qc,rs);
    hasNextForCollection(qc); // Prime the pump with the first row.
    * Retrieve the result set wrapper from the query-collection user-data
    private ResultSet getResultSet(Object qc) {
    return (ResultSet)getUserDataForCollection(qc);
    * Return either null or a new oracle.jbo.domain.Number
    private static oracle.jbo.domain.Number nullOrNewNumber(BigDecimal b) {
    try {
    return b != null ? new oracle.jbo.domain.Number(b) : null;
    catch (SQLException s) { }
    return null;
    I created the view object in expert mode so there is no entity object. Can someone help? I don't have much time left to finish this.
    Also, could I have done this from the Entity object instead of the view object by registering the ref cursor OUT parameter in handleStoredProcInsert()?
    Thanks
    Natalie

    I was able to get the input parameter by putting the following in my struts actions class
    vo.setWhereClauseParam(0,request.getParameter("row0_SerialNum"));
    The full code is:
    package mypackage2;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import oracle.jbo.html.BC4JContext;
    import oracle.jbo.ViewObject;
    import oracle.jbo.html.struts11.BC4JUtils;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    public class LienCheckView1QueryAction extends Action
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
    BC4JContext context = BC4JContext.getContext(request);
    // Retrieve the view object instance to work with by name
    ViewObject vo = context.getApplicationModule().findViewObject("LienCheckView1");
    vo.setRangeSize(3);
    vo.setIterMode(ViewObject.ITER_MODE_LAST_PAGE_PARTIAL);
    // Do any additional VO setup here (e.g. setting bind parameter values)
    vo.setWhereClauseParam(0,request.getParameter("row0_SerialNum"));
    // default value for serialCollCd 1 is for Motor Vehicles
    vo.setWhereClauseParam(1,new oracle.jbo.domain.Number(1));
    // Default value for maxRows_allowed
    vo.setWhereClauseParam(2,new oracle.jbo.domain.Number(20));
    return BC4JUtils.getForwardFromContext(context, mapping);
    This doesn't always work properly though. The first time I press the query button, the SerialNum parameter is still null, however if I re-execute the query by pressing the query button again. It will work, and return the rows. I always have to query twice. Also the SerialNum attribute is set to a String in my view object, it is a varchar column in the database, but some serial number I enter give a "Error Message: oracle.jbo.domain.Number ". This happens even though the underlying BC4J is returning values for the query. I also get a "500 Internal Server Error java.lang.ClassCastException: java.lang.String on my View object's code at line 65 which is
    if (params.length>1) serialCollCdIn = (BigDecimal)params[1];
    This is an input paramter to the oracle stored procedure that defaults to a Number value of 1.
    Any idea what the problem is? Here is the full code for my view object:
    package mypackage1;
    import java.math.BigDecimal;
    import java.sql.CallableStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Timestamp;
    import java.sql.Types;
    import oracle.jbo.JboException;
    import oracle.jbo.domain.Number;
    import oracle.jbo.server.DBTransaction;
    import oracle.jbo.server.ViewObjectImpl;
    import oracle.jbo.server.ViewRowImpl;
    import oracle.jbo.server.ViewRowSetImpl;
    import oracle.jdbc.driver.OracleCallableStatement;
    import oracle.jdbc.driver.OracleTypes;
    // --- File generated by Oracle Business Components for Java.
    public class LienCheckViewImpl extends ViewObjectImpl
    * This is the PLSQL block that we will execute to retrieve the REF CURSOR
    private static final String SQL =
    "begin pprs_test_wrappers.sn_srch_main_test(?, ?, ?, ?, ?, ?);end;";
    private BigDecimal totalRows = null;
    private String messageCd = null;
    private BigDecimal serialColCd = null;
    private BigDecimal maxRows = null;
    public LienCheckViewImpl() {}
    * Overridden framework method.
    * Executed when the framework needs to issue the database query for
    * the query collection based on this view object. One view object
    * can produce many related result sets, each potentially the result
    * of different bind variable values. If the rowset in query is involved
    * in a framework-coordinated master/detail viewlink, then the params array
    * will contain one or more framework-supplied bind parameters. If there
    * are any user-supplied bind parameter values, they will *PRECEED* the
    * framework-supplied bind variable values in the params array, and the
    * number of user parameters will be indicated by the value of the
    * numUserParams argument.
    protected void executeQueryForCollection(Object qc,Object[] params,int numUserParams) {
    * If there are where-clause params (for example due to a view link)
    * they will be in the 'params' array.
    * We assume that if some parameter is present, that it is a Deptno
    * value to pass as an argument to the stored procedure.
    * NOTE: Due to Bug#2828248 I have to cast to BigDecimal for now,
    * ---- but this parameter value should be oracle.jbo.domain.Number type.
    String serialNumIn = null;
    BigDecimal serialCollCdIn = null;
    BigDecimal maxRowsAllowed = null;
    BigDecimal totalRowsSelected = null;
    String messageCdOut = null;
    if (params != null) {
    if (params.length>0) serialNumIn = (String)params[0];
    if (params.length>1) serialCollCdIn = (BigDecimal)params[1];
    if (params.length>2) maxRowsAllowed = (BigDecimal)params[2];
    storeNewResultSet(qc,retrieveRefCursor(qc,serialNumIn,
    serialCollCdIn,
    maxRowsAllowed));
    super.executeQueryForCollection(qc, params, numUserParams);
    * Overridden framework method.
    * Wipe out all traces of a built-in query for this VO
    protected void create() {
    getViewDef().setQuery(null);
    getViewDef().setSelectClause(null);
    setQuery(null);
    * Overridden framework method.
    * The role of this method is to "fetch", populate, and return a single row
    * from the datasource by calling createNewRowForCollection() and populating
    * its attributes using populateAttributeForRow().
    protected ViewRowImpl createRowFromResultSet(Object qc, ResultSet rs) {
    * We ignore the JDBC ResultSet passed by the framework (null anyway) and
    * use the resultset that we've stored in the query-collection-private
    * user data storage
    rs = getResultSet(qc);
    * Create a new row to populate
    ViewRowImpl r = createNewRowForCollection(qc);
    try {
    * Populate new row by attribute slot number for current row in Result Set
    //AddedByRegisNum
    populateAttributeForRow(r,0, nullOrNewNumber(rs.getBigDecimal(1)));
    System.out.println("AddedByRegisNum :" + rs.getBigDecimal(1));
    // OrigRegisNum
    populateAttributeForRow(r,1, nullOrNewNumber(rs.getBigDecimal(2)));
    System.out.println("OrigRegisNum :" + rs.getBigDecimal(2));
    // SerialNum
    populateAttributeForRow(r,2, rs.getString(3));
    System.out.println("SerialNum :" + rs.getString(3));
    // SerialNumDesc
    populateAttributeForRow(r,3, rs.getString(4));
    System.out.println("SerialNumDesc :" + rs.getString(4));
    // FlagExactMatch
    populateAttributeForRow(r,4, rs.getString(5));
    System.out.println("FlagExactMatch :" + rs.getString(5));
    // MessageCd
    populateAttributeForRow(r,5, messageCd);
    // TotalRows
    populateAttributeForRow(r,6, totalRows);
    catch (SQLException s) {
    throw new JboException(s);
    return r;
    * Overridden framework method.
    * Return true if the datasource has at least one more record to fetch.
    protected boolean hasNextForCollection(Object qc) {
    ResultSet rs = getResultSet(qc);
    boolean nextOne = false;
    try {
    nextOne = rs.next();
    * When were at the end of the result set, mark the query collection
    * as "FetchComplete".
    if (!nextOne) {
    setFetchCompleteForCollection(qc, true);
    * Close the result set, we're done with it
    rs.close();
    catch (SQLException s) {
    throw new JboException(s);
    return nextOne;
    * Overridden framework method.
    * The framework gives us a chance to clean up any resources related
    * to the datasource when a query collection is done being used.
    protected void releaseUserDataForCollection(Object qc, Object rs) {
    * Ignore the ResultSet passed in since we've created our own.
    * Fetch the ResultSet from the User-Data context instead
    ResultSet userDataRS = getResultSet(qc);
    if (userDataRS != null) {
    try {
    userDataRS.close();
    catch (SQLException s) {
    /* Ignore */
    super.releaseUserDataForCollection(qc, rs);
    * Overridden framework method
    * Return the number of rows that would be returned by executing
    * the query implied by the datasource. This gives the developer a
    * chance to perform a fast count of the rows that would be retrieved
    * if all rows were fetched from the database. In the default implementation
    * the framework will perform a SELECT COUNT(*) FROM (...) wrapper query
    * to let the database return the count. This count might only be an estimate
    * depending on how resource-intensive it would be to actually count the rows.
    public long getQueryHitCount(ViewRowSetImpl viewRowSet) {
    Object[] params = viewRowSet.getParameters(true);
    String serialNumIn = (String)params[0];
    BigDecimal serialCollCdIn = (BigDecimal)params[1];
    BigDecimal maxRowsAllowed = (BigDecimal)params[2];
    CallableStatement st = null;
    try {
    st = getDBTransaction().createCallableStatement(SQL,DBTransaction.DEFAULT);
    * Register the fourth bind parameter as our return value of type NUMERIC
    st.registerOutParameter(4,Types.NUMERIC);
    * Set the value of the 3 bind variables to pass as arguments
    if (serialNumIn == null) st.setNull(1, Types.CHAR);
    else st.setString(1,serialNumIn);
    if (serialCollCdIn == null) st.setNull(2,Types.NUMERIC);
    else st.setBigDecimal(2,serialCollCdIn);
    if (maxRowsAllowed == null) st.setNull(3, Types.NUMERIC);
    else st.setBigDecimal(3, maxRowsAllowed);
    st.execute();
    System.out.println("returning value of :" + st.getLong(4));
    return st.getLong(4);
    catch (SQLException s) {
    throw new JboException(s);
    finally {try {st.close();} catch (SQLException s) {}}
    * Return a JDBC ResultSet representing the REF CURSOR return
    * value from our stored package function.
    private ResultSet retrieveRefCursor(Object qc,
    String serialNum,
    BigDecimal serialColCd,
    BigDecimal maxRows) {
    CallableStatement st = null;
    try {
    st = getDBTransaction().createCallableStatement(SQL,DBTransaction.DEFAULT);
    * Set the value of the bind variables
    System.out.println("SerialNumIn :" + serialNum);
    if (serialNum == null) st.setNull(1,Types.CHAR);
    else st.setString(1,serialNum);
    if (serialColCd == null) st.setNull(2,Types.NUMERIC);
    else st.setBigDecimal(2,serialColCd);
    if (maxRows == null) st.setNull(3,Types.NUMERIC);
    else st.setBigDecimal(3,maxRows);
    st.registerOutParameter(1, Types.CHAR); // serialNum
    st.registerOutParameter(2, Types.NUMERIC); // serialColCd
    st.registerOutParameter(3, Types.NUMERIC); // maxRows
    st.registerOutParameter(4, Types.NUMERIC); // totalRows
    st.registerOutParameter(5, Types.CHAR); // messageCd
    * Register the 6th bind parameter as our return value of type CURSOR
    st.registerOutParameter(6,OracleTypes.CURSOR);
    st.execute();
    ResultSet rs = ((OracleCallableStatement)st).getCursor(6);
    serialColCd = st.getBigDecimal(2);
    System.out.println("SerialColCd= " + serialColCd);
    maxRows = st.getBigDecimal(3);
    System.out.println("maxRows= " + maxRows);
    totalRows = st.getBigDecimal(4);
    System.out.println("totalRows= " + totalRows);
    messageCd = st.getString(5);
    System.out.println("messageCd= " + messageCd);
    * Make this result set use the fetch size from our View Object settings
    rs.setFetchSize(getFetchSize());
    return rs ;
    catch (SQLException s) {
    throw new JboException(s);
    finally {try {st.close();} catch (SQLException s) {}}
    * Store a new result set in the query-collection-private user-data context
    private void storeNewResultSet(Object qc, ResultSet rs) {
    ResultSet existingRs = getResultSet(qc);
    // If this query collection is getting reused, close out any previous rowset
    if (existingRs != null) {
    try {existingRs.close();} catch (SQLException s) {}
    setUserDataForCollection(qc,rs);
    hasNextForCollection(qc); // Prime the pump with the first row.
    * Retrieve the result set wrapper from the query-collection user-data
    private ResultSet getResultSet(Object qc) {
    return (ResultSet)getUserDataForCollection(qc);
    * Return either null or a new oracle.jbo.domain.Number
    private static oracle.jbo.domain.Number nullOrNewNumber(BigDecimal b) {
    try {
    return b != null ? new oracle.jbo.domain.Number(b) : null;
    catch (SQLException s) { }
    return null;
    Natalie

  • Autocomplete and linking issues with gchat on apple messages

    So I'm having a couple related(ish) problems with apple messages and gchat/hangouts/whatever it's called these days and imessage on my laptop:
    1) Gchat contacts sometimes do and sometimes don't autocomplete when i cmd+n for a new message and then start typing in the 'send to' field. this occurs irrespective of whether i try to start a jabber conversation via typing their email or via typing their name. I've noticed a couple of semi-consistent factors that seem to be impacting it, at least sometimes, but can't pinpoint anything entirely consistent:
         -It seems to be more problematic with contacts that I have their (google) email address on their contacts card in my icloud account on my actual computer/iphone (as opposed to not having them linked to a contact, and them being merely listed on my gchat friends list by virtue of being imported when i created the account)
         -It seems to be more problematic with buddies that i have had more recent contact with, so that their existing conversation is closer to the top of the messages window (and plus, even this isn't entirely consistent - sometimes it lets me type and find their jabber account even if i chatted yesterday and it's second or third on the list, other times it just returns no results in the address field, and other times (when they're a contact with email address as well as phone number) it only gives me their imessage account but their jabber doesn't show up and i have to go to my buddy list to find them)
    Any thoughts? It's sometimes easier to just do cmd+n and type a friend's name even if i have an existing conversation with them relatively top to the close of the list, than manually finding them in the list or looking at the buddy list or using the search bar. cmd+n typically works at least with imessage conversations, and sometimes even with jabber accounts/gchat, so it doesn't seem like this is merely a feature that doesn't exist.
    2) This might be less of a bug and more of a feature, but i'm wondering if there's a way to deactivate it. A lot of my friends have both imessages and gchat, and i have their google email and phone number on their contact card. in this case, apple messages, seemingly arbitrarily, alternates back and forth betweeen gchatting them and imessaging them in the same conversation. it doesn't always correspond to their away/available status on gchat, and even when it does correspond, i'd still prefer to be able to manually override to send an imessage even if they are available on gchat, I'd prefer to just have separate conversations going for imessage and gchat (because a lot of my friends just never look at one or the other depending on whether they are or arent near their computer, so i need to be able to control where the message goes). I do have a separate jabber conversation with John Smith from their imessage, but within the imessage conversation it still sometimes switches to jabber. It seems like this only happens for contacts that have both email and imessaage on their vcard, but i'd prefer not to delete the email address from their vcard just to resolve this issue, since the email address on contact comes in handy for purposes other than gchat. is there any workaround/way to disable this auto-switching between imessage and gchat accounts in the same conversation, while keeping contacts' email and phone number linked on their vcard?
    3) Some, but not all, of my android friends show up as having imessage when i type their name to contact via gchat. sometimes it says imessages for their phone number, and sometimes instead for their gmail (or both). With respect to the issue when it happens in phone number form: i've checked their contact cards and their phone number is just listed as mobile (not iphone or anything, though i'm unsure if the category of phone number actually tells the phone whether they have imessage, or if it recognizes (in this case, incorrectly) on its own). Of course the imessage won't actually send, but it's pretty annoying (especially in light of the problem from #1). Is their any way to tell messages that this person doesn't have imessage so it stops saying they do?
    Couldn't decide whether to post these separately or together, but since they may or may not be related i opted for the latter. sorry for the length. searched for all 3 and didn't find anything quite on point.
    macbook pro, mid-2010, 15"
    Mavericks 10.9.2
    messages v8.0

    Hi,
    Re 1)
    If a Buddy  (Google, AIM or Yahoo) is in the Buddy list as just the ID or Screen Name then broadly speaking they are not in your Contacts list.
    As such they will not show a "Real Name".
    However any Buddy can be added to the Contacts List even if you don't add a "Real Name"
    This in itself can also cause issues as the Contacts app does not create what it sees as Duplicate cards.
    i.e. you cannot create two cards with the name John Smith.
    It is easier if the ID/Screen Name becomes the "Real Name".
    I have three Macs
    On each the My Card  for myself reflects the Computer it is from and those Cards are synced on my iMac.
    Some of the various Jabber and AIM Screen Names are linked to the particular computers.
    That means if I type "ra" as the start of my Name in the "to" spot I get this:-
    First is a national breakdown service for helping out with cars (as opposed to any other breakdown)
    The next is a Buddy that I have hidden.
    It lists Apple ID and telephone numbers that it thinks are iMessages compatible (it thinks all numbers are valid)  liked to be G4 tower's card.
    It continues listing AIM, Jabber, Yahoo and other iMessages accounts as well as the Bonjour contact details.
    As you can see some at the bottom are IDs and Screen Names that are not associated with any of the Address Cards.
    In these cases my name from part of the ID so "ra" picks then up.
    As you can see you should get AIM, Jabber (Google), iMessages and Yahoo account indicated.
    That should then lead to 2)
    Once in the conversation you can use the "To" spot to change which ID you are calling and therefore effectively change which service you are using.
    In this Pic I have chosen to call Myself (easy with multiple accounts)
    My iMac My Card has no jabber account listed so you only see iMessages and  AIM option listed.
    I can "call" my main AIM name (ralphjohnsr) from the other three Accounts linked to this Card.
    From your end it may look like a random switch but in fact is most likely from an incoming change by the Buddy/Contact.
    You can make the change by using the "To" spot and a drop down
    The centralised messages in the chat should tell you of Changes as will the ID in the text field before typing
    Re 3)
    It will depend on what their Apple ID is.
    Some have had @mac.com names for a long time and linked them to MobileMe than more recently iCloud.
    Some linked their @me.com names form MobileMe to iCloud at the Change.
    Most recently iCloud IDs have been given @iCloud.com emails from the start.
    However any email can be used as an Apple ID.
    The pic above has my Apple ID partially hidden for that lower  iMessages info across the center.
    You may find that some people are using their Google ID as their Apple ID AND also using it as both the iMessages registered name and the Google ID  in the Messages app.
    Lets explain this another way.
    When iChat 1 came out Apple joined the AIM service with it (it did AIM and Bonjour  which was then called Rendezvous)
    At that time Apple entered in to an agreement with AIM that any Apple Issued ID would be a valid AIM Screen Name.
    At that time the Apple Service was .Mac and @mac.com IDs were being issued as paid for accounts, Trial Accounts and after while Lapsed paid for accounts.
    These all worked as iChat/AIM Screen Names.
    Then Apple changed to MobileMe and issued @me.com IDs
    The trials only lated until you ended them and the IDs no longer worked in iChat after that as valid AIM Screen Names and nor did lapsed Paid For accounts.
    More recently Apple have stopped a paid for Service and moved to iCloud.
    At the change you could link Any Apple ID to iCloud and you got an @me.com ID from the iCloud server (it could be the same as the on MobileMe but did seem to be "separate").
    Later these became @iCloud.com IDs  (Some people have both under iCloud and in some cases linking @mac.com names to MobileMe @me.com accounts for email still continues).
    To be clear you could link Any existing email ID to iCloud such as  Google ID.
    But broadly I am speaking of gaining various Apple Issued IDs over time that may or may not be linked to one account.
    These Apple Issued IDs works as Valid AIM Screen Names in Messages. (the iCloud issued ones don't work in iChat 5 or earlier though).
    I linked an external to Apple dial-up Email that has been my long time Apple ID to iCloud and got an @me.com ID at first and later an @icloud.com one as well.
    I can use these two separately in Messages as Valid AIM names.
    Someone using their Google ID as their Apple ID could use it as the iMessages registered Name AND as the GoogleTalk/Jabber entry as well.
    This might explain why it looks like they are swapping about.
    There can be one other explanation and that is dependent on where they are logged in.
    Obviously a GoogleTalk user can log in to the Google web Mail page and use Talk there.
    Although I don't use Google+ I presume there is a similar web page to chat from there.
    This would limit them to being "On Google" rather than iMessages when they sent a messages to you.
    Re GoogleTalk
    Obviously Android is Google.
    The Account settings at Google incudes the "products" you can link and use from your Account.
    Previously with a Google Mail Account that included enabling "Talk" which then allowed you to chat from the Web Mail Page login (or your chosen Jabber able app)
    Now Google use Google+ and this seems to give you automatic access to "Talk"  to the extent it is no longer something you have to Activate.
    I am wondering if using a Android phone is linked to having a Google+ account and that the phone number can be part of that ID set up (similar to iMessages and iPhone Numbers).
    If it does it would then depend if the phone is linked to both the Number and the Google ID as to what they can login as in certain situations.
    I am not sure I have covered everything but I think I have covered most things.
    From what you post I am not sure that there is an issue or not although I have posted what is normal and expected I think there are some fringe things that are an issue.
    9:46 pm      Tuesday; April 15, 2014
    ​  iMac 2.5Ghz i5 2011 (Mavericks 10.9)
     G4/1GhzDual MDD (Leopard 10.5.8)
     MacBookPro 2Gb (Snow Leopard 10.6.8)
     Mac OS X (10.6.8),
     Couple of iPhones and an iPad

  • Error with Links if using x3 primary keys

    Hi Folks:
    Here is the error code I'm receiving:
    ORA-01422: exact fetch returns more than requested number of rows
    Unable to fetch row.
    Background: I am using Application Express 3.2
    All of the pages I have created that rely on x2 primary keys (first_name, last_name) work fine.
    I have a table that has x3 primary keys: Table is called "time_off_awards". The x3 primary keys are: last_name, first_name, approval_date.
    I created a report that works properly and lists the awards for each person (each person can receive more than one award-on different dates).
    I also created an edit link that works properly IF *(only if)* each individual has only one award. If the individual has more than one award then I get the error above. When I set up the link I used all three keys. The x3 PK's should uniquely identify each row, but if the same last name/first name appear more than once (that is if the person has more than one award) I get the error. I thought at first maybe it was just not reading the 3rd key/part of the link (approval_date), but it shows properly if you move your cursor over the edit link.
    Here is a link to a screen pic of how I have my link set in Apex:
    [http://www.wczone.com/link_settings.gif]
    Here is a link to a pic of the report with some info:
    [http://www.wczone.com/report_link.gif]
    If needed, here is my table info:
    CREATE TABLE PERSONNEL.TIME_OFF_AWARDS (
    LAST_NAME VARCHAR2(40) NOT NULL,
    FIRST_NAME VARCHAR2(25) NOT NULL,
    APPROVAL_DATE DATE NOT NULL,
    HOURS_OFF NUMBER(3),
    CITATION VARCHAR2(1500),
    /* Keys */
    PRIMARY KEY (LAST_NAME, FIRST_NAME, APPROVAL_DATE),
    /* Foreign keys */
    CONSTRAINT TOA_PERSONNEL
    FOREIGN KEY (LAST_NAME, FIRST_NAME)
    REFERENCES PERSONNEL.MARC_PERSONNEL(LAST_NAME, FIRST_NAME)
    TABLESPACE PERSONNEL;
    Thanks for any help, I've tried looking at a couple of Apex books, but they didn't help much.
    Matt
    Edited by: user10495310 on Mar 4, 2009 8:21 AM

    Thank you everyone for the help and information you gave to me.
    Your ideas and advice helped me to think through the issues involved.
    The way i actually found to work around this issue was a little different.
    What I did was the following (which may only be usable with empty tables. If its possible to create a new column with a sequence and trigger on a table that already contains data it should work also):
    1. I removed the current PK's that were currently set.
    2. I added a single, unique PK (that used a sequence and trigger to automatically increment) to the table as was suggested in this thread and other APEX forum threads.
    3. I changed the link on the report so that it used the new PK, and also changed the PK used on the forms (under Processes - both the page rendering and page processing processes).
    The Difference:
    4. Next I changed the table (not by using APEX, but directly) from using the automatically generated ID as the PK, back to using the compound PK (x3 keys). I then added an constraint to make sure that the automatically generated column was unique. So now I have the compound PK that my supervisor wants us to use, and I'm able to use a unique, automatically generated key for APEX to use.
    I found also that if you already have a column that uses a unique/auto-generated key you can still use it with APEX without switching keys around.
    1. I added the new column to the sql in the reports source section so that the new column was searched (and then used 'hidden' so it wouldn't be displayed on the report users would see).
    2. You can still add the unique key under the processes on the form that is being linked too under the Primary key tabs. If its not a PK it won't show up in the pop up which is to the right of "Item Containing Primary Key Column Value" but it can be entered manually (i.e. p23_AUTO_ID) and it will work fine. You would also need to edit your form so that the auto ID that is being passed from the report is part of the form - but hidden if desired).

  • Execute immediate issue while calling a procedure from plsql block

    Hi all,
    I have the following simple code ,my execute immediate is not working(I am pasting the error below as well)
    CREATE OR REPLACE PROCEDURE CALL_RAHUL_PROCEDURES
    AS
    strng varchar2(1000);
    BEGIN
    for i in (select proc_name,flag,id from rahul_procedures order by id)
    loop
    if (i.flag = 'Y')
    then
    strng := 'exec '||i.proc_name||'(''rahul'')';
    dbms_output.put_line(strng);
    execute immediate strng;
    end if;
    end loop;
    END CALL_RAHUL_PROCEDURES;
    Error:
    Connecting to the database INQDWD.
    ORA-00900: invalid SQL statement
    ORA-06512: at "ETLADMIN.CALL_RAHUL_PROCEDURES", line 17
    ORA-06512: at line 2
    exec RAHUL_HELLO_WORLD2('rahul');
    Process exited.
    Disconnecting from the database INQDWD.
    data in rahul_procedures table :
    Proc_name flag Id
    RAHUL_HELLO_WORLD     N     1
    RAHUL_HELLO_WORLD2     Y     2
    RAHUL_HELLO_WORLD     N     3
    RAHUL_HELLO_WORLD3     N     4
    please help.
    Regards
    Rahul

    Mac_Freak_Rahul wrote:
    Well I have to call 26 procedures one by one and the names of the procedures would be in a table'rahul_procedures' Which is 100% wrong.
    Data is stored in tables, program code is stored in procedures or view defintions.
    http://en.wikipedia.org/wiki/Data_%28computing%29
    >
    Data vs programs
    Typically, different files are used to store programs vs data. Executable files contain programs; all other files are data files.
    >
    So you have just violated the primary distinction between data and program code.
    I dont find anything strange in my question,Only because you do not appear to know what you are doing or the difference between data and program code.
    http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1943344500346351703
    >
    ugh, what an ugly "design". I can see your life will be full of performance issues, strange 'bugs', and other unpleasant side effects. I mean, it all looks "so cool", but it'll be a nightmare to maintain and enhance.
    but then you have the issue of binds, which will be intractable. You'd have to know the binds at compile time, but you have hidden all of your sql in a magic generic table - so you cannot possibly know your binds at compile time.
    I would suggest you discard all of this code (I am DEAD SERIOUS) and start over. This is a bad idea from the get go. Or at least do me a favor and do not use plsql (you make it look like a good database implementation, but it isn't)
    The objective here is to store SQL Statements in a Table(a sql repository) and just call the required SQL from the application using the sqlid using the sql_execute procedure. ...
    CHANGE YOUR OBJECTIVE.
    How about this for a good objective:
    the objective here is to store sql statement in a plsql routine (a sql repository, you call a procedure and we run sql) and just call the required sql form the applicatoin using the STORED PROCEDURE
    sorry, can I think of hacks to get you going? yes, application contexts come to mind - a fixed number of binds comes to mind. Am I going to work them out? No - it is the wrong way to approach a database application.

  • Links that used to work with pre Firefox v4.0 no longer work

    I need access to a work related website. the main page of the website opens up with out any issues, but when I click on any of the links nothing happens. This is a new issue that only started once I upgraded to Firefox 4.0. I previously had no issues using this website with Firefox before. I tried using the website with Explorer and had no issues.

    I have iPhone software 2.2.1 (SH11),
    MAC 0S X 10.5.5
    XCode 3.1.2
    In organiser it says The Developer Disk Image could not be mounted.
    Xcode could not find an appropriate Developer Disk Image to mount on Richard’s iPhone. Please contact Apple for the 2.2.1 (5H11) device support package.
    Also in Xcode it says that the active sdk is Device - 2.2. There is no version 2.2.1 for me to select and I cannot add a new active SDK.
    I have downloaded the iphonesdk_for_iphone_os2.2.19m2621afinal.dmg and tried installing it which had no effect to the error above.
    I tried uninstalling Xcode then re-installing using this sdk but again no effect
    I tried installing the iPhoneSDK_2.2 on its own but again no effect
    I tried restoring the iPhone but again no effect
    I've tried the above numerous times, restarting xcode and restating the complete system but still to no effect.
    I am relatively new to MACs so I might be doing something wrong (ie not installing or uninstalling properly) but I am really lost now as to what to do.
    Please advise.
    Thanks
    Richard

  • Doubt: Problem in enqueing using DBMS_AQ.enqueue procedure

    Hello All,
    I have one issue with Oracle AQ. One of our implementation requires us to extract data from the tables and enqueue the extracted data into an Oracle AQ.
    I will try to explain my problem as briefly as possible:
    1. We have created a queue of type CLOB using the following procedure
    begin
    dbms_aqadm.create_queue_table('BOD36_3PLB2B_TABLE', 'IKN_CLOB'); -- IKN_CLOB—This is CLOB custom type that we have created to have CLOB data.
    dbms_aqadm.create_queue('BOD36_3PLB2B_Q', 'BOD36_3PLB2B_TABLE');
    dbms_aqadm.start_queue('BOD36_3PLB2B_Q');
    end;
    The queue creation was successful.
    2. Then we have developed a package to extract data from the database into a VARRAY and then using the varray as the payload.
    3. In the package we are calling the following code to enqueue data into the database with the VARRAY as the payload
    dbms_aq.enqueue(queue_name => ikn_qname,
    enqueue_options => lt_enqueue_options,
    message_properties => lt_message_properties,
    payload => p_SHOWPL_ARR_OUT, ---> p_SHOWPL_ARR_OUT it is the varray to which we are putting the data to enqueue
    msgid => messageid);
    4. When I compile the package, I get the error: PLS-00306: wrong number or types of arguments in call to 'ENQUEUE'.
    If you have faced similar issues and have any pointers to the above, then please help!! I am not sure where i have gone wrong.
    Please help !!!!!
    Thanks in advance and thanks for your patience.
    Regards,
    Dibya

    The package has another function enqueue_array. Maybe that will help you. Check it out from the Oracle docs.
    Ben

  • How to use the add_line procedure of laf project

    Hi all.
    I'd like to use the add_line procedure of Laf project to draw a line at a specific place in a canvas. But there are several parameters and i can match the one i'm looking for.
    I can for example, set how large, thick, color etc. that line is to be drawned. but indeed i, like to place it at a specific location within a canvas, say (56,31).
    My current line of code is:
    Set_Custom_Property( 'CONTROL_LAF.BEAN',1,'ADD_LINE','1,10,10,300,10,2,r154g106b58,.5,round,blevel');      
    Any ideas will be highly appreciated.
    Regards, Luis ...!

    Hello,
    <p>Do you have the link to the documentation?<br>
    You can specify only the first 5 parameter wich are: indice, x1, y1, x2, y2<br>
    Set_Custom_Property( …, 'ADD_LINE', '1,56,31,250,31' );
    </p>
    Francois

  • How to find how much memory used by particular procedure or function.

    Hi,
    How can we find out memory used by particular procedure or function?
    If procedure or function is called many times in particular interver, wil it be cached in memory?
    and how will it affect performance?
    what type of pl/sql statement will take more time than normal sql statement?

    Hi
    There are several different memory issues to consider:
    - the code itself (stored in the shared pool)
    - simple variables defined in the code
    - complex variables (eg VARRAY, TABLE etc)
    There's a helpful note on PL/SQL profiling here - http://www.oratechinfo.co.uk/tuning.html - which mentions how to measure memory use (session PGA and UGA - that's program and user global areas)
    You can find out more about shared pool memory structures here - http://download-east.oracle.com/oowsf2005/003wp.pdf.
    Calling a function many times - yes, the function code will be cached (if possible). Session state (for a package) will also be retained (ie global package variables).
    If many users call the same function, there will be one copy of the code but many copies of the private state.
    Finally: PL/SQL statements that can take a long time include:
    - anything that does heavy processing inside a tight loop;
    - anything that waits (select for update; read from a pipe or dequeue from AQ etc)
    Probably the most common mistake is to use PL/SQL for relational processing that can be done from SQL itself (eg writing nested PL/SQL loops to join data that could have been queried in a single SQL statement. Try to minimise context switches between PL/SQL and SQL:
    - use bulk collect where possible
    - use set operations in SQL
    Good luck, HTH
    Regards Nigel

  • Check If Tables are being used in Stored Procedures & How many times !!

    Dear All,
    I want to make a script which can give me an answer, that If there is any table , then Whether It's using in any stored procedure or not ? If yes, then what the occurrence in procedures - means if table is "ABC" & Its being used in stored procedure
    "XYZ" then i want to know that its using 1 time, 2 time or more in particular procedure ..
    Pls Help

    just in-case if you want to get the Cross DB dependency
    i have extent Visakh16 code
    please use sql_modules to get the full definition of the DB Objects
    you can replace stg_table with your decided table, also use dbname.schemaname.tablename if you want to get  Cross DB dependency
    just came up with this from
    link
    create table #temp (
    dbname sysname,
    name sysname,
    Occurance int
    exec sp_MSforeachdb '
    use ?
    DECLARE @TableName varchar(100)
    SET @TableName = ''stg_table''
    insert into #temp
    SELECT db_name() ,name,(LEN(definition) - LEN(REPLACE(definition,'' '' + @TableName + '' '','''')))/LEN('' '' + @TableName + '' '') AS Occurance
    FROM sys.sql_modules m
    INNER JOIN sys.objects o
    ON o.object_id = m.object_id
    AND o.type = ''p''
    WHERE m.definition LIKE ''% '' + @TableName + '' %'''
    select *
    from #temp
    where dbname not in ('master','model','msdb','tempdb')
    order by 1,2
    Thanks
    Saravana Kumar C

  • Writing data to a foreign database-SQLServer using a stored procedure

    Does anyone know if I can Insert data into a SQLServer table which resides out on the WAN using a stored procedure which resides in my Oracle database?

    Is it possible? Sure. How easy it is really depends...
    Oracle has a feature called Heterogeneous Connectivity which allows you to create database links to non-Oracle databases. You can then treat the remote SQL Server objects just like you would use remote Oracle tables across a database link, i.e.
    INSERT INTO table_name@sql_server_dblink( <<list of columns>> )
      VALUES( <<list of values>> )Heterogeneous Connectivity requires some configuration on the Oracle database side. If you want to use Generic Connectivity, which is part of the base license, you'll need a SQL Server ODBC driver on the machine where Oracle is running. If you run Oracle on Windows, this is relatively easy. If you run Oracle on Unix, this gets a bit more challenging.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • URL link issue

    Hi
    I am trying to create a link in my project to one of our
    company intranet pages. I am using a click box and the URL - it
    works fine in the Preview from Slide or next 5 slides, but when I
    Preview in Web Browser it doesn't connect. Any suggestions as to
    what might be the cause?
    Thanks
    Alex

    Hi Alex
    Hmmm, before investigating too deeply, I'm seeing some
    familiarity here. For starters, the first link is to a .PDF. It's
    been my experience that links to .PDF and Word .DOC files is "iffy"
    at best. If you truly copied and pasted the links, I'd first try
    removing the %20 from that first link. That's something the browser
    normally inserts for a space. So instead of:
    http://wlgweb/Corporat/HumanResources/Staff%20Conduct/EmailInternetUsagePolicy.pdf
    Change it to read:
    http://wlgweb/Corporat/HumanResources/Staff
    Conduct/EmailInternetUsagePolicy.pdf
    This may help and it may just be twisting in the wind. But
    I'd try that first. I've often seen linking issues arise from that
    silly %20. If possible, try to avoid that. I'm guessing here that
    it may not be possible to control in your case as someone else may
    be in control of those names. I've personally always opted to
    either use a mix of upper/lower case names ( StaffConduct ) or
    substitution of an underscore where spaces would normally occur (
    Staff_Conduct ).
    Other wierdness I've seen when linking to .PDF content:
    * I personally had a different PDF reader (Foxit) installed
    as my default. When Foxit was my default reader, PDF links refused
    to open.
    * I think this one is IE specific, but I've also seen it
    where if I have a .PDF in the same folder and open that way, even
    though the address is totally correct, the first time through, the
    link fails. With the totally correct address showing in the address
    bar. I simply refresh the page and bingo, the PDF shows! Go figure.
    I really don't believe that this one is related to Captivate and
    the way it calls the links. My gut tells me it's an IE thing. But I
    have nothing to back me up on this.
    I'm not sure what to say or suggest for the second link. I
    tested it myself and it doesn't work, which tells me that either
    the link is simply incorrect, or possibly it's located on an
    intranet site.
    Sincerely... Rick

  • Get the project name to use in a procedure?

    How to get the project name to use in a procedure?
    example <% = odiRef.getOption ("COMPATIBLE")%> - but the project name or your id?
    in ODI 11.
    thanks
    Edited by: user ODI Dev on 01/12/2010 16:42

    I also need solution for this issue.
    I want to set ODI variable value in Jython script, this method described there: How to assign value for a ODI variable from Jython Script
    I need to update snp_var_data table. For more flexible solution i need to know project name where variable declared, because variable name in snm_var_data consist of two part <PROJECT_NAME>.<VAR_NAME>. Also this name convention don't changed after import scenarios from dev to execution repository
    Edited by: 822130 on 19.12.2010 4:31

  • Resizing issue using PageFlip 2.25

    Hello all!  I am running into an issue using the free version of PageFlip (http://pageflip.hu/free.php).  I'm trying to resize the flash file, but when I do, the mouse rollover in the corners appears on the opposite corner of the current page.  I was able to get everything to work OK at one size, but after I resized the stage and all the other elements the problem showed up.  I have examples posted at the links below.  The first the page is sized to 600 pixels (which worked); the second is sized to 720 pixels (with problems).  I would appreciate any help!  THANKS!!
    http://uglygreencouch.com/600.html
    http://uglygreencouch.com/720.html

    look for
            pages.mask._xscale = 100;
    I changed it to
            pages.mask._xscale = 110;
    and
            pages.mask._xscale = -100;
    to
            pages.mask._xscale = -110; 
        if(sx>0) {                 //flip forward 
            pages.mask._xscale = 110; 
            nx = cx-Math.tan(a)*(ph/2-cy); 
            ny = ph/2; 
            if(nx>pw) { 
                nx = pw; 
                ny = cy+Math.tan(Math.PI/2+a)*(pw-cx); 
            pageN.pf._x = -(pw-nx); 
            pages.flip.fgrad._xscale = (r/rl/2)*pw; 
            pages.pgrad._xscale = -(r/rl/2)*pw; 
            pages.flip.p3shadow._xscale = (r/rl/2)*pw; 
        } else {                 //flip backward 
            pages.mask._xscale = -110;

Maybe you are looking for