Calling Procedure in Different Users

Hellow all,
I have three database users
1. USER1
2. USER2
3. USER3
I have created a procedure in USER1
Now i want to use that same procedure in USER2 and USER3 without creating it in these users.
is there any way to achieve it???
Any help will be appriciated.....

I created table in all three users (SML,BUS,ISU)
create table dummy_qty
2 (qty number);
Table created.
1 insert into dummy_qty
2* values(25)
SQL> /
1 row created.
SQL> commit;
Commit complete.--------------------------now chaning user to BUS
SQL> @bus
Connected.
Input truncated to 9 characters
USER is "BUS"
BUS>create table dummy_qty> 2 (qty number);
>
Table created.
BUS>insert into dummy_qty
2 values(50);
1 row created.
--------------------------------changing user to ISU
BUS>@isu
Connected.
Input truncated to 9 characters
USER is "ISU"
ISU>create table dummy_qty> 2 (qty number);
>
Table created.
ISU>insert into dummy_qty> 2 values(75);
>
1 row created.
I created a procedure in user=SML....
create or replace procedure dummy_proc as
v_qty number;
begin
select sum(qty) into v_qty
from dummy_qty;
dbms_output.put_line('qty is '||to_char(v_qty));
end;
Procedure created.
SQL> exec dummy_proc;
qty is 25
PL/SQL procedure successfully completed.
SML>grant execute on dummy_proc to bus;
Grant succeeded.
-----now again connected to bus user
SQL> @bus
Connected.
Input truncated to 9 characters
USER is "BUS"
BUS>exec dummy_proc;
BEGIN dummy_proc; END;
> *
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'DUMMY_PROC' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
did u get???or u need more information?????

Similar Messages

  • Calling procedure dynamically, from different schema, permissions issue

    Hi,
    I have a 'master_user' schema that needs to run DDL on a 'secondary_user' schema.
    There appears to be some kind of permissions subtlety that I'm missing. Here are the simplified steps to create, test and troubleshoot:
    Secondary schema has a procedure defined:
    -- Run as SYSTEM (at build time)
    CREATE OR REPLACE PROCEDURE secondary_user.execute_immediate(p_sql_statement IN VARCHAR2)
    IS
    BEGIN
        EXECUTE IMMEDIATE p_sql_statement;
    END;
    GRANT EXECUTE ON secondary_user.execute_immediate TO master_user;
    I then want to call this procedure from master_user to execute DDL dynamically in secondary_user.
    - Run as master_user
    BEGIN
        EXECUTE IMMEDIATE ' BEGIN secondary_user.execute_immediate(''DROP TABLE test1''); END;';
    END;
    ERROR at line 1:
    ORA-00942: table or view does not exist
    ORA-06512: at SECONDARY_USER.EXECUTE_IMMEDIATE", line 5
    ORA-06512: at line 1
    ORA-06512: at line 2
    TROUBLESHOOTING SO FAR:
    Now I can call this procedure directly:
    -- As master_user
    EXEC secondary_user.execute_immediate('drop table test1')
    PL/SQL procedure successfully completed.
    I can call the wrapped procedure as different users:
    -- As secondary_user
    BEGIN
        EXECUTE IMMEDIATE ' BEGIN secondary_user.execute_immediate(''DROP TABLE test1''); END;';
    END;
    PL/SQL procedure successfully completed.
    -- As SYSTEM
    BEGIN
        EXECUTE IMMEDIATE ' BEGIN secondary_user.execute_immediate(''DROP TABLE test1''); END;';
    END;
    PL/SQL procedure successfully completed.
    Can you shed any light on this behaviour? The master_user clearly has permission to run the procedure, but it cannot see it from within an anonymous block. However SYSTEM can so what permission does SYSTEM have that master_user does not?
    Much appreciated,
    Si

    Something doesn't add up:
    SCOTT@orcl > create user secondary_user
      2  identified by secondary_user
      3  default tablespace users
      4  quota unlimited on users
      5  /
    User created.
    SCOTT@orcl > grant create session to secondary_user
      2  /
    Grant succeeded.
    SCOTT@orcl > create user master_user
      2  identified by master_user
      3  default tablespace users
      4  quota unlimited on users
      5  /
    User created.
    SCOTT@orcl > grant create session to master_user
      2  /
    Grant succeeded.
    SCOTT@orcl > CREATE OR REPLACE PROCEDURE secondary_user.execute_immediate(p_sql_statement IN VARCHAR2)
      2
      3  IS
      4
      5  BEGIN
      6
      7      EXECUTE IMMEDIATE p_sql_statement;
      8
      9  END;
    10
    11  /
    Procedure created.
    SCOTT@orcl > GRANT EXECUTE ON secondary_user.execute_immediate TO master_user;
    Grant succeeded.
    SCOTT@orcl >
    SCOTT@orcl > create table secondary_user.test1(n number)
      2  /
    Table created.
    SCOTT@orcl > connect master_user@orcl
    Enter password:
    Connected.
    MASTER_USER@orcl > BEGIN
      2
      3      EXECUTE IMMEDIATE ' BEGIN secondary_user.execute_immediate(''DROP TABLE test1''); END;';
      4
      5  END;
      6
      7  /
    PL/SQL procedure successfully completed.
    MASTER_USER@orcl >
    Make sure table secondary_user.test1 exists when you run SP. And, as you can see, neither secondary_user nor master_user have any privs besides create session.
    SY.

  • Call transaction BDC with different user id

    Hello,
    We have a BDC program for creating Invoice using "CALL TRANSACTION VF01" method. But there are are few user IDs accessing this program who do not have authorisation to VF01. So requirement is to create Invoice with a common user id.
    Please help if it is possible to call transaction with different user id. Please also provide you inputs if you can suggest some other way to fulfill this requirement.
    Thanks & Regards,
    Rohit

    Hi Rohit,
    if users are not authorized to post invoice, why is it required to surpass the checks?
    A Question the business should answer.
    It should not be the consultants obligation to find doubtable ways.
    Regards
    Clemens

  • Calling Stored Procedure with a different user name

    Hi,
    I am in the process of converting OracleClient based .NET 2.0 application to ODP.NET
    and while trying to replace an existing call to a stored procedure which is in another user schema(different user)
    the ORACLE Client(Microsoft) version worked fine with the following calling mechanism -
    USERNAME.PACKAGENAME.STOREDPROCEDURENAME
    Example : objCmd.CommandText ="*USERNAME*.*PACKAGENAME*.*STOREDPROCEDURENAME*"
    and it does not work when used with ODP.NET.
    I tried using-
    "@USERNAME.PACKAGENAME.STOREDPROCEDURENAME"
    still it does not work.
    Any help is appreciated?
    Thanks...!!
    Edited by: user4553639 on Mar 16, 2011 1:09 PM
    Got it resolved....had to change the Package. No code change needed on the .NET side.
    Edited by: user4553639 on Mar 17, 2011 1:08 PM

    Got it solved.

  • Database connection pooling in ADF causing db procedure calls to use different transaction or session

    We have developed an application using JDev Version 11.1.2.1.0 and the database is oracle 11g EE.
    We have many database procedures or function calls from the model (AMImpl.java, VORowImpl.java) and the commit does not happen in the database and it happens from ADF. The database procedures are called in some valueChangeListnener and these procedures use the same transaction or session database session when called and update some records in some tables that are displayed in pages.
    We started using connection pooling recently in our ADF application,  -Djbo.doconnectionpooling=true -Djbo.txn.disconnect_level=1. When using connection pooling, we noticed that the database procedure calls use a different trasanction or different database session and the data or records that these procedures update is lost.
    After removing the connection pooling, we noticed that the procedures again started using the same transaction or same database session and was working fine.
    I want to know why this connnection pooling caused this issue and is there any fix for this when using connection pooling?

    Take a look at
    http://docs.oracle.com/cd/E15523_01/web.1111/b31974/bcampool.htm#CIHCHHEA
    What You May Need to Know About Database User State and jbo.doconnectionpooling = true
    As you can see:
    "At the end of the request when the application module is released back to the application module pool, that application module pool releases the JDBC connection it was using back to the database connection pool. It follows that with jbo.doconnectionpooling set to true the application module instance in the pool may have a completely different JDBC connection each time you check it out of the pool"
    So, the best you can do, is to revert jbo.doconnectionpooling to false.

  • Call a BAPI with different user ID

    Hi All,
    Here is my scenario:
                                                      CALL  BAPI
    System 1 -
    >   System 2
                   <----
                                                TRANSFER DATA
    What I want to do is when I call the BAPI in System 2 with a different user ID than is actually logged into System 1
    executing the BAPI.
    Is this possible?
    thanks.
    JB

    Hello,
    I suppose you use a Trusted RFC connection in your BAPI call and not an RFC destination with a dedicated user in it.
    What you can do in the source system is calling your BAPI from a background process (job).
    You can change the user ID in the step of the job.
    In this case trusted RFC will make sure that the BAPI is called in the target system with the user specified in the step.
    If trusted RFC is not an option you can use an RFC destination with a dedicated user ID in it.
    I hope this helps.
    Wim

  • Update user hook called procedure

    i have user hook pakage calling the registered user hook procedure like this
    XX_USER_HOOKS.CREATE_SIT_B(P_ID_FLEX_NUM => P_ID_FLEX_NUM
    ,P_PERSON_ID => P_PERSON_ID
    ,P_SEGMENT1 => P_SEGMENT1
    ,P_SEGMENT2 => P_SEGMENT2
    ,P_SEGMENT3 => P_SEGMENT3
    ,P_SEGMENT4 => P_SEGMENT4
    ,P_SEGMENT5 => P_SEGMENT5
    ,P_SEGMENT6 => P_SEGMENT6
    ,P_SEGMENT7 => P_SEGMENT7
    ,P_SEGMENT8 => P_SEGMENT8
    ,P_SEGMENT9 => P_SEGMENT9
    ,P_SEGMENT10 => P_SEGMENT10
    ,P_SEGMENT11 => P_SEGMENT11
    ,P_SEGMENT12 => P_SEGMENT12
    ,P_SEGMENT13 => P_SEGMENT13
    ,P_SEGMENT14 => P_SEGMENT14
    ,P_SEGMENT15 => P_SEGMENT15
    ,P_SEGMENT29 => P_SEGMENT29
    i just want to add new parameter for it, do i need to re register or something from this type, or just add the new parameter line in the call procedure and recompile the package???

    Hi,
    Yes you are correct that there cannot be commit in hook procedures and that's the reason I told you to commit assuming that if you are executing the packages from TOAD/PL-SQL Dev to test the working of the functionality before deploying, and many times we do simple mistake of not committing and viewing the data on forms.
    If you are getting the element entry created in the same month then there seems to be no reason why the element should not be visible on form. You can try doing a comparison of the element entries getting created from front end and the one which you are creating using hook. Create an element entry in the same month from front end and compare both the records from back-end to see if you are missing anything.
    Thanks,
    Sanjay

  • How do I have an exe in a logon script run as a different user (either a domain admin or even the local system account)

    So, I'm having some problems getting a logon script to work.  I need a way to deploy the agent that we use via login/startup scripts and what I have works fine if the user has admin rights, or if UAC is disabled.  I've tried to convert the .exe
    to an .msi to make it easier, but the .msi never works and it's only distributed as an .exe.  We deploy this to different clients, I can't disable UAC in their environment unless they specifically tell us to.  Can anyone think of a way around this? 
    I've been searching for days and I'm just lost.  If we could execute the file as the system account, or connect to shares using a startup script instead of logon, that would be perfect.  Basically what it does is check to see if the process for the
    agent is running (agentmon.exe) so we don't attempt to install it if it is already installed, if it's not, then it calls on a different agent installer depending on the IP address of the system (for clients that have more than one location).  Here's what
    I've got written that works for me in my test environment:
    Const strAgent1 = "\\home.wiginton.local\SysVol\home.wiginton.local\Policies\{CD4ED3BD-0709-4E3D-A303-C9E3B0F5198D}\User\Scripts\Logon\Test-KcsSetup1.exe"
    Const strAgent2 = "\\home.wiginton.local\SysVol\home.wiginton.local\Policies\{CD4ED3BD-0709-4E3D-A303-C9E3B0F5198D}\User\Scripts\Logon\Test-KcsSetup2.exe"
    Const strAgent3 = "\\home.wiginton.local\SysVol\home.wiginton.local\Policies\{CD4ED3BD-0709-4E3D-A303-C9E3B0F5198D}\User\Scripts\Logon\Test-KcsSetup3.exe"
    Const strFolder = "C:\Temp\"
    Const Overwrite = True
    dim objFSO, objNIC1, arrNIC, strIP, strMask, objShell, objWMIService
    dim
    'Checks for Kaseya agent process, AgentMon.exe, exits if running
    Set objWMIService = GetObject ("winmgmts:")
    Set proc = objWMIService.ExecQuery("select * from Win32_Process Where Name='agentmon.exe'")
    If proc.count > 0 Then
        WScript.Quit
    End If
    'Instantiate a NIC configuration object
    Set objNIC1 = GetObject("winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")
    'Instantiate a shell object
    Set objShell = CreateObject("wscript.shell")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    'Create Temp Dir if it doesn't exist
    If Not objFSO.FolderExists(strFolder) Then
        objFSO.CreateFolder strFolder
    End If
    For Each arrNIC in objNIC1
        if arrNIC.IPEnabled then
            StrIP = arrNIC.IPAddress(i)
            strMask = arrNIC.IPSubnet(i)
            Set WshNetwork = WScript.CreateObject("WScript.Network")
        end if
    next
    Function NetworkID(Address, Mask)
        Dim AddressOctets, MaskOctets, Result, N
        AddressOctets = Split(Address, ".")
        MaskOctets = Split(Mask, ".")
        ReDim Result(UBound(AddressOctets))
        For N = 0 To UBound(AddressOctets)
            Result(N) = AddressOctets(N) And MaskOctets(N)
        Next
        NetworkID = Join(Result, ".")
    End Function
    Select Case NetworkID(strIP,strMask)
        Case "192.168.0.0"
        ' Kaseya install commands for 192.168.0.0 subnet
        objFSO.CopyFile strAgent1, strFolder, Overwrite
        Wscript.Sleep 1*60*1000
        objShell.run "C:\Temp\Test-KcsSetup1.exe"
        Case "192.168.1.0"
        ' Kaseya install commands for 192.168.1.0 subnet
        objFSO.CopyFile strAgent2, strFolder, Overwrite
        Wscript.Sleep 1*60*1000
        objShell.run "C:\Temp\Test-KcsSetup2.exe"
        Case "192.168.2.0"
        ' Kaseya install commands for 192.168.2.0 subnet
        objFSO.CopyFile strAgent3, strFolder, Overwrite
        Wscript.Sleep 1*60*1000
        objShell.run "C:\Temp\Test-KcsSetup3.exe"
        Case Else
        ' Some sort of error checking. Maybe a BLAT SMTP command to send an email
    End Select
    Set objWMIService = Nothing
    Set objNIC1 = Nothing
    Set objShell = Nothing
    Set WshNetwork = Nothing
    Wscript.quit

    You need to read the documentation carefully:
    The Deploy Agents install package is created using a Configure Automatic Account Creation wizard. The wizard copies agent settings from an existing machine ID or machine ID template and generates an install package called
    KcsSetup.All settings and pending agent procedures from the machine ID you copy from—except the machine ID, group ID, and organization ID—are applied to every new machine ID created with the package.
    Including Credentials in Agent Install Packages
    If necessary, an agent install package can be created that includes an administrator
    credentialto access a customer network. Credentials are only necessary if users are installing
    packages on machines and do not have administrator access to their network. The administrator credential is encrypted, never available in clear text form, and bound to the install package.
    ¯\_(ツ)_/¯

  • Using different templates for different user access types.

    Hi all,
    I have an issue where we have a Page Group with lots of pages/sub-pages.
    There are three different User Groups, Internal, Customer and Supplier.
    I need to display the same content but with different templates (look and feel), one for the Internal, one for the customer and one for the supplier.
    Can this be done using Oracle Portal 10.1.14? If so, how?
    Many thanks.

    Hi,
    Yes you can do what you want to do in 10.1.4.
    You can call a procedure in your HTML Layout Template which will write some CSS. This procedure will be executed with the USERID parameter.
    Your procedure will check if the current user is a customer or a supplier and your CSS will reflect the differences (with different colors or whatever...)
    Good luck,
    Max.

  • Call procedure across schema

    I have oracle 8i
    i have multiple identical schema for different country.
    i write one procedure in one schema(country_1) and granted to all others for execute.
    now i am connected to country_2 which doesn't have procedure,
    and i am calling procedure of country_1(which has a procedure).
    upto this everything is fine
    but problem is i want to
    execute the procedure on the recently connected schema(country_2),it is executing on country_1(where actual procedure is )
    Thanks,
    prathesh
    ([email protected])

    You need to add AUTHID CURRENT_USER to your create procedure command.
    From the documentation
    invoker_rights_clause
    The invoker_rights_clause lets you specify whether the procedure executes with the privileges and in the schema of the user who owns it or with the privileges and in the schema of CURRENT_USER.
    This clause also determines how Oracle resolves external names in queries, DML operations, and dynamic SQL statements in the procedure.
    TTFN
    John

  • Running jobs as different users

    The job I am creating in the Job Scheduler needs to run SQL as several different users. I have heard that 11g will allow this. However I am wondering whether there is any way to do it in 10gR2. I have tried to embed a CONNECT user/password within the PL/SQL block as EXECUTE IMMEDIATE and stand alone. Nothing seems to work. Does anyone have any suggestions on a way to do this before 11g?

    Hi,
    The Scheduler can run stored procedures and pl/sql blocks but it runs all PL/SQL as the job owner. The limitation of not being able to run different SQL as different users is a PL/SQL limitation.
    There is a workaround however. For each SQL that needs to run as a particular user create a PL/SQL stored procedure in that user's schema . By default (do not use the authid current_user clause) these stored procedures run with the privileges of their owner. Then grant execute on these stored procedures to the job owner. Now the job owner can call any of these procedures when he needs to run SQL as another user.
    One thing to watch out for is that stored procedures do not use role privileges , so do not rely on role privileges in your SQL statements.
    This should do what you need.
    Hope this helps,
    Ravi.

  • How do you do a quick transfer of data from one TX to another TX with different user name

    I have more than one TX and want to keep most of the information, addresses, media, calendar as well as third party software the same on all my TX's.  Is there a way to do this without the long hassle of exporting all that can be exported, and then importing it into each TX.  Then adding all the third party software again?  I have a new TX and remember how long this takes, so I am hoping for a faster method.   I already know how to do a transfer if using the same user name, but this won't work when each will have a different user name in order to hotsync.
    This may be a different question. All the TXs will be used and will sync to the same computer via USB, and all are on the Palm Desktop.   I want to use them interchangeably.  I would also like to keep the information current on all of them, as I now must copy paste any new info (ex. new address) into each via either palm desktop, or beaming to the others.  Often this leads to discrepancies of the data between the different TXs. 
    Post relates to: Palm TX
    Message Edited by Silfox on 06-22-2009 09:03 AM

    You might look into a program called "SyncUs" from an author in the UK.  It will keep all the PIM data synced between two Palm OS units.
    WyreNut
    I am a Volunteer here, not employed by HP.
    You too can become an HP Expert! Details HERE!
    If my post has helped you, click the Kudos Thumbs up!
    If it solved your issue, Click the "Accept as Solution" button so others can benefit from the question you asked!

  • IN BACKGROUND TASK as a different user ID

    Hi experts,
    I am performing a FM IN BACKGROUND TASK call in a BADI to automate creation of GR.
    Example:
    Step 1. User ABC performs GR for plant 0001.
    Step 2. BADI checks and automates another GR for plant 0002.
    The problem is user ABC only has authorization for plant 0001.
    During step 2, the BAPI returns an error saying that there is no authorization for plant 0002 as the BADI is triggered by user ABC.
    I am using FM BAPI_GOODSMVT_CREATE. I tried to pass in an ID with SAP_ALL to the PR_UNAME field to indicate this ID as the creator of the GR, but the authorization check still exists.
    Is there anyway I can force this background task to be executed by another ID instead of the triggering ID?
    Thanks in advance.

    Make sure to discuss this with the security team...
    The RFC destination you specify in your [call function - in background task|http://help.sap.com/abapdocu_70/en/ABAPCALL_FUNCTION_BACKGROUND_TASK.htm] can be used to specify a different user. Check for example the logical workflow destinations in transaction SM59...
    Cheers, harald

  • Connect from iPad to MacbookPro as a different user?

    Here is, in a nutshell, what I would like to do:
    I would like to log in to my MacbookPro as user "me" from an iPad,
    while someone else is already logged in on the Macbook the conventional way as "he".
    I would like to do my email, using the Mail app on my Macbook, while my kids are watching a movie on it,
    and even if they are logged in under there account.
    IIRC, this used to be possible on Unix/Linux (I grew up under Unix about 15 years ago).
    I have tried screen sharing and a VNC client on the iPad (VNC viewer from RealVNC), but
    1. it seems to work only if the VNC server is running on the Macbook;
    2. I don't see how I can log in as a different user *and* have my own GUI session.
    I read posts on the internet that claim that it is possible to do what I want, and they seem to refer
    to VNC and/or Apple's Screen Sharing, but I didn't find any specific details.
    Yes, I have Screen Sharing on under System Preferences > Sharing.
    Any insights, pointers, and hints will be highly appreciated.
    Best regards,
    Gabriel.
    PS:
    The iPad needs to be registered with my son's Apple ID because he needs it in school.
    PS:
    Yes, I could install a second mail client on the iPad, but then I still would not have access to all the local mail folders on my MacBook.

    Yes, you are right, my logout url is re-directed to the login page.
    However, I tried to add the logout url in authentication scheme as you said, it does not work.
    error msg: No functional attributes may be set when page sentry function is '-DATABASE-'.
    My project is:
    I have a oracle database with tables, functions/procedures/packages. The role privilege to access the database has been granted to a few users. Then, I developed an application in apex to access the database and run procedures.
    I expect the security of apex application log in is: the users who can access the database can use the application.
    So what I did:
    1) I set up the authentication scheme of the application as 'database' scheme, The detail is as following:
    Description: Use database authentication (user identified by DAD).
    Page Session Management: Page sentry function: -DATABASE-
    the left areas are all null.
    2)I developed a home page (page1): the detail is as follows:
    regions: html region with a logo linked to page2
    item: url item, source: pl/sql function get_url(), maintain session state as per session
    computation: get_url(). It only has one command to return database http login address, to ask enter username and password. BeginThis function is expected to require and provoke a database login
    when the application computes the above item using this function.
    branch: after log in branch to page2.
    3) set up a Navigation Bar for logout as :
    wwv_flow_custom_auth_std.logout?p_this_flow=&APP_ID.&p_next_flow_page_sess=&APP_ID.:1
    The purpose of provoking database login has come true.
    However, the problem is: after I logout from the application and it redirected to page1, when I tried to log in again as a different user, it will automatically log in as the former user (without asking username and password). I have to close the IE, and rerun IE, then I can log in as another user.
    I hope I have expained it clearly.
    Cheers.
    Sue

  • How do I sync iTunes music to two different iPhones on two different user accounts?

    I have read some posts and a help article about this, but I need some clarification becuause what I'm doing is not working out correctly.  My wife syncs her iPhone and iPod to her iTunes.  I recently purchased an iPhone and am going to sync it to my own iTunes on a different user account on the computer.  How can I get the music from her iTunes account to sync with my iTunes/iPhone?  Whenever I try various routes, I end up with duplicated songs on my end and I'm not sure how it works when she adds music to her account.  My wife does all the music purchasing for the both of us and I want the music to sync both ways, but all other content needs to stay separate.  We are running iTunes 11 on Windows 7.  Any help would be appriciate and I'm sorry if this is a redundent question.  Thanks.

    I followed the following articles: http://support.apple.com/kb/HT1495 and http://support.apple.com/kb/HT1203
    Here are the questions I have regarding the second article which is not clear to me:
    When dragging the media file to a public location, the article says not to move the iTunes folder.  Is it Ok that the media file is moved out of the iTunes folder when dragging it to the public location?  Is this what I am trying to accomplish?
    There is a note about how iTunes for Windows does not, by default, copy items added to the library to the media folder.  Am I supposed to check the box to allow this?  Do I do the same for all users?
    When I change the music folder location, am I changing it to the new public location?  Do I do this for all users on the computer that wants to use the same music files?
    I tried changing the file location to the public folder, but received a message asking something to the effect of renaming files to keep the library organized.  Do I want this or not?
    There is another note at the end that says if all users are storing their music in the same public location, then duplicates may appear in the library.  Isn't what this procedure is basically doing?  Can someone clarify this?
    After following this article to the best of my ability, my iTunes ended up with duplicates of everything, even starting off with nothing there to begin with.

Maybe you are looking for