Problem with the run_job,shell script with sqlldr

Hi Gurus,
I Created a job which calls the shell script and i understood from the other posting this job is going to execute with nobody,
I had done the below testing
Test 1) Shell script calls the SQL file, this SQL file executes the procedure.
Test 2) Shell script calls the sqlldr command.
When i execute the Test cases with , dbms_scheduler Run_job procedure, Test1 is success but Test2 was failed
When i execute the Test cases with, logging into box with owner of the shell & both test cases are successful.
Parent folder & Shell files are given with 777 permissions. & the Oracle db is version 10.2.0.1.0.
Error:
STANDARD_ERROR="SQL*Loader-522: lfiopn failed for file (*.log)"
Please provide me your inputs its bit urgent Thanks a lot for your help.
Edited by: 926769 on May 23, 2012 2:27 PM

First of all let's look at your environment ... a totally unpatched version of software that is so old it is in desupport mode. You should upgrade to a fully supported version but, if you can't, at least to 10.2.0.5.
That said without seeing any of your code, or a listing showing permissions on the directory and files, there is insufficient information from which to help you.
Please post ALL information required for us to understand what you are doing an your environment.
But before I decided that NOBODY was doing anything ... I'd shell out to the server from SQL*Plus using the HOST command and verify that permissions are as you believe them to be. There is every reason to believe SQL*Loader is having an issue with your file as identified.

Similar Messages

  • Please help with executing the c-shell script by using the exe class

    I try to use the exec class to execute a c-shell script in my java gui program like this. But I don't get anything when clicking on the start button.
    here is my code:
    Runtime r = Runtime.getRuntime();
    r.exec("./DDMReportEvents");
    ./DDMReportEvents is the name of the c-shell script.

    I think Runtime.exec runs DOS batch files, but not Unix shell scripts.
    Try:
    r.exec("csh -c ./DDMReportEvents");
    to get the shell to run the shell script.

  • Problem with sqlldr and commit

    Hi,
    i have a problem with sqlldr and commit.
    I have a simple table with one colum [ col_id number(6) not null ]. The column "col_id" is primary key in the table. I have one file with 100.000 records ( number from 0 to 99.999 ).
    I want load the file in the table with sqlldr ( sql*loader ) but i want commit only if all records are loaded. If one record is discarded i want discarded all record of file.
    The proble is that in coventional path the commit is on 64 row but if i want the same records of file isn't possible and in direct path sqlldr disable primary key :(
    There are a solutions?
    Thanks
    I'm for the bad English

    This is my table:
    DROP TABLE TEST_SQLLOADER;
    CREATE TABLE TEST_SQLLOADER
    (     COL_ID NUMBER NOT NULL,
         CONSTRAINT TEST_SQLLOADER_PK PRIMARY KEY (COL_ID)
    This is my ctlfile ( test_sql_loader.ctl )
    OPTIONS
    DIRECT=false
    ,DISCARDMAX=1
    ,ERRORS=0
    ,ROWS=100000
    load data
    infile './test_sql_loader.csv'
    append
    into table TEST_SQLLOADER
    fields terminated by "," optionally enclosed by '"'
    ( col_id )
    test_sql_loader.csv
    0
    1
    2
    3
    99999
    i run sqlloader
    sqlldr xxx/yyy@orcl control=test_sql_loader.ctl log=test_sql_loader.log
    output on the screen
    Commit point reached - logical record count 92256
    Commit point reached - logical record count 93248
    Commit point reached - logical record count 94240
    Commit point reached - logical record count 95232
    Commit point reached - logical record count 96224
    Commit point reached - logical record count 97216
    Commit point reached - logical record count 98208
    Commit point reached - logical record count 99200
    Commit point reached - logical record count 100000
    Logfile
    SQL*Loader: Release 11.2.0.1.0 - Production on Sat Oct 3 14:50:17 2009
    Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
    Control File: test_sql_loader.ctl
    Data File: ./test_sql_loader.csv
    Bad File: test_sql_loader.bad
    Discard File: none specified
    (Allow all discards)
    Number to load: ALL
    Number to skip: 0
    Errors allowed: 0
    Bind array: 100000 rows, maximum of 256000 bytes
    Continuation: none specified
    Path used: Conventional
    Table TEST_SQLLOADER, loaded from every logical record.
    Insert option in effect for this table: APPEND
    Column Name Position Len Term Encl Datatype
    COL_ID FIRST * , O(") CHARACTER
    value used for ROWS parameter changed from 100000 to 992
    Table TEST_SQLLOADER:
    100000 Rows successfully loaded.
    0 Rows not loaded due to data errors.
    0 Rows not loaded because all WHEN clauses were failed.
    0 Rows not loaded because all fields were null.
    Space allocated for bind array: 255936 bytes(992 rows)
    Read buffer bytes: 1048576
    Total logical records skipped: 0
    Total logical records read: 100000
    Total logical records rejected: 0
    Total logical records discarded: 0
    Run began on Sat Oct 03 14:50:17 2009
    Run ended on Sat Oct 03 14:50:18 2009
    Elapsed time was: 00:00:01.09
    CPU time was: 00:00:00.06
    The commit is on 992 row
    if i have error on 993 record i have commit on first 992 row :(
    Edited by: inter1908 on 3-ott-2009 15.00

  • Terminal starts the last shell script

    Hello,
    I have problem with Terminal. It should start with normal shell prompt, but in my case it starts with the script I called the last time.
    How it happened: I have created shell script called "logintoserver.sh", there is just "#!/bin/bash; ssh -Y -l someuser someserver". I have a link to this script on my desktop, so I can easily pop up a terminal session to my remote server.
    OK, this works, but when I call application Terminal directly then, from Finder/Applications/Utilities/Terminal, it starts that "logintoserver" script again. Now I cannot get my local shell prompt. I can only follow login script and then ssh to my emac back from that remote server, but it's not that nice, you see...
    I changed shell in Terminal preferences, no help. I believe there is some option "execute last command at the beginning of new session", but I can't find and disable it. When I delete this "logintoserver" script, all works OK. But I like to have one click login window.
    Thanks for any kick,
    David

    Hi Tim,
    thanks for your helpful info. Two questions:
    when I login to my remote server (Tiger Server) via SSH, the command line on my laptop changes to reflect the server name Im logging into.
    1. Laptop named "jimmydeuce" logs into 'margaritaserver' a Tiger Server via SSH
    2. laptop closes SSH session to server
    2. laptop now launches Terminal
    3. laptop now sees prompt line restated as: margaritaserver:~ username$
    how to get back to normal prompt: jimmydeuce:~ username$ ???
    Cheers,
    Chris Chamberlain

  • Problem-Report generation using shell script

    Hi
    We have the Production database and the Reporting database (copy of Production database),
    both on Oracle 9.2.0.5 and Solaris 5.8. There is a package inside the Oracle database, which extracts some data from inside the
    database, and would generate a report. A shell script has been created in Solaris which would
    send in the parameters and call the pakage to generate the report. The parameters it is sending is
    the name of report to be generated, and the location where it is to be generated, both hard-coded into
    the script. The script is scheduled to run through crontab.
    The problem we are facing is that, if we run the script for Reporting database, it successfully
    generates the report. But if we use that script for Production database, it gives the error
    "Invalid directory Path". I have tried using various other directory paths, even '/tmp'
    and '/', but it still gives the same error when executed for Production dataabse.
    Could somebody provide any ideas what might be going wrong.
    The reasons it is to be executed on Prod db and not the Reporting database are unavoidable.
    It anyway runs in off business hours and takes about 10secs to execute.
    Please do let me know if there is any other info that I missed to provide here.
    Thanks in advance...

    I will be just guessing because you didn't provide contents of script and package.
    The "Invalid directory path" as you said could be ORA-29280 due non existent directory.
    Try execute (as sys or system) select * from dba_directories; (or select * from all_directories; as user which the script is login to) on both databases and compare the results. If there is missing your important directory then create it using create directory <dirname>; (from sqlplus and don't forget to grant rights for user).
    This error could come from shell script. In that case you should find resolution yourself because you didn't provide script source.

  • Fle import the unix shell script

    hi all
    I want to develop unix shell script & cron job to read ftp file and call an oracle procedure to import the data in an oracle database
    can any one tell me how to go about it ?
    also does any one have some documentation related to the topic
    plzzz help me
    mandar

    Hi,
    I want to develop unix shell script & cron job to read ftp file and call
    an oracle procedure to import the data in an oracle databaseYou can
    1/ use ftp to get the file to Oracle Instance host then call a Proc/Package that'll parse the file.
    2/ write/find on google a FTP package using UTL_TCP then create a procedure using the package to open the ftp file and parse it.
    You don't give much details on what the actual aim is, si I can't be more specific.
    can any one tell me how to go about it ?There might be other possibilities, describe what you want to achieve globally and we'll give you more advices.
    also does any one have some documentation related to the topicTahiti: http://tahiti.oracle.com
    maybe AskTom: http://asktom.oracle.com
    Regards,
    Yoann.

  • Little problem with SQLLDR

    Hi,
    I've got great help here in the past so I thought this would be the right place to try and find the solution to my problem loading data using SQLLDR into an oracle database.
    Basically, upon loading I am using a to_date function. However, the parameters this to_date function must take depends on the data I'm trying to load (there are only two possible date formats I'm trying to load). Is there any way of using two to_date functions inside a conditional statement (if statement etc.).
    Thanks a lot in advance!!
    Dan

    Looking at what you posted, i think you may have some issues with the quoting.
    to_date(:DATE_FIELD,''DD-MM-YYYY'))"
    {code}
    You have a double quote before the DD there.
    Edited by: Tubby on Jun 14, 2010 10:10 AM
    I see someone else is quicker than me :)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Problems with SQLLDR

    Getting this error when I try inserting records into a table using SQL*LOADER.
    Anybody have any clue?
    Record 1: Rejected - Error on table ITEMMAST, column FREIGHT_CLASS.
    Column not found before end of logical record (use TRAILING NULLCOLS)
    TIA

    Hello Aleksei
    Posbl err is with the data with Ur data file.
    check the No. of columns in the Actual Table
    & check whether U have same No. of columns of data in Ur data file.
    For eq:
    If U have 4 columns in the Table,
    then Ur data file's data must be like this->
    xxx,xx,xxx,xxx
    If U dont have data for say II col, then Ur data file will be like this->
    xxx,,xxx,xxx
    all the best
    with regards
    Prakash K.B.
    null

  • Problems with sqlldr, creating .ctl file

    Hi I am trying to load data from a .csv file into an oracle table. I have been successful with loading some .csv files but at this point I am stuck in loading one .csv file that creates incorrect rows.
    The .csv file has rows commencing on a newline, with columns seperated by the delimiter ','. Unfortunately some values in the .csv file contain newline characters leaving blank lines in the .csv file then continuing on with a row on the next line. e.g.
    "foo", "foofoo", "foofoo", "lalalala
    lallalallala", "foo", "foo"
    Does anyone know what is missing from my .ctl file below so that it accurately reads in the correct values. Also delimiters ',' are present inside values e.g. "foo, foo". Does the optionally enclosed by statement below ingore those cases which I want it to?
    OPTIONS (SKIP=1)
    LOAD DATA
    BADFILE 'import.bad'
    APPEND
    INTO TABLE tablename
    FIELDS TERMINATED BY "," optionally enclosed by '"'
    --columns
    Thanks

    Can you get the data supplied to you without the newline characters in the strings? It would make it a lot easier.Unfortunately not as this is an assignment. I also tried the method of converting to a tab csv and adjusting the .ctl file respectively with the same result. Some records are perfect but others are not and I can not for the life of me pinpoint why. I am new to this and I can just tell like you guys have assured me of that newlines contained in values are ugly. But regardless im open to suggets if anyone has any.
    Thank you greatly for your help too, its always appreciated.

  • Debug a shell script with awk problem

    Hi, Buddy,
    I try to run the below shell script which was borrowed from linux for load average check.
    #!/usr/bin/ksh
    # Set threshold for 1, 5 and 15 minture load avarage
    # configured for 12-processors system
    max_1=48
    max_5=36
    max_15=24
    # Set the string which appears before the load average in the uptime command
    load_text='load average: '
    #Email list
    mail_to=[email protected]'
    alert=n
    up=`uptime`
    # Parse out the current load average from the uptime command
    load_1=`echo $up | awk -F "$load_text" '{ print $2 }' | cut -d, -f1 | cut -d. -f1`
    load_5=`echo $up | awk -F "$load_text" '{ print $2 }' | cut -d, -f2 | cut -d. -f1`
    load_15=`echo $up | awk -F "$load_text" '{ print $2 }' | cut -d, -f3 | cut -d. -f1`
    # Set alert=y if any of the average are above their thresholds
    if [ $load_1 -ge $max_1 ]
    then
    alert=y
    elif [ $load_5 -ge $max_5 ]
    then
    alert=y
    elif [ $load_15 -ge $max_15 ]
    then
    alert=y
    fi
    # Send mail if the alert threshold was reached
    if [ ! $alert = n ]
    then mail -s "High load on `hostname`" $mail_to < `uptime`
    fi
    Now we run it in Solaris now, so when I run, can get error like
    $./monitor_load_average.sh
    awk: syntax error near line 1
    awk: bailing out near line 1
    awk: syntax error near line 1
    awk: bailing out near line 1
    awk: syntax error near line 1
    awk: bailing out near line 1
    ./monitor_load_average.sh[28]: test: argument expected
    ./monitor_load_average.sh[31]: test: argument expected
    ./monitor_load_average.sh[34]: test: argument expected
    I understand the problem, but stil a little difficult to edit awk clause to get right syntax, is there any buddy can help?
    Thanks a lot in advance.
    Jerry

    I don't have access to Solaris right now,but if i understand the [manpage |http://bama.ua.edu/cgi-bin/man-cgi?awk+1] correct , you can use only a character as field separator (-F), try to use /usr/xpg4/bin/awk instead, it is posix compliant version and should be mostly compatible to linux gawk.
    Besides that, you may probably find better support on unix/solaris forums with similar questions?
    Best regards
    Maxim

  • Problem with backtick replacing apostroph in applescript/shell script

    I've got a script that appears to be using a backtick instead of an apostrophe which is causing an error in my shell script. For the life of me I can't seem to find where the error is being generated?
    The script is attached below. I'm using Exiftool, an app that writes metadata to image files. The shell script
    set cmd to "exiftool -CopyrightNotice=" & exifCopyright & " " & thisFilePath & ""
    set theResult to do shell script cmd
    works fine but the following shell script
    set cmd to "exiftool" & space & authorStr & " " & thisFilePath & ""
    set theResult to do shell script cmd
    returns the error "sh: -c: line 0: unexpected EOF while looking for matching `''
    sh: -c: line 1: syntax error: unexpected end of file" number 2. The code in the event log in applescript editor looks exactly the same to me but one fails in the shell script.
    It has been suggested by the developer of Exiftool, Phil Harvey, that there is a backtick in the second shell script. I read somewhere in the applescript docs that this is due to a change in OS 10.6? Any suggestions on how to fix this?
    Thanks.
    Pedro

    Yea, the authorStr value has a space like "Joe Smith"
    Then you need to use quoted form of this string, too:
    set cmd to "exiftool " & quoted form of authorStr & space & thisFilePath
    although the format looks wrong to me - shouldn't there be some kind of switch, such as "-author=' before it?
    You have to consider how you'd enter this at the command line to work out how best to translate it to AppleScript. For example, if the command line version were:
    exiftool -author='John Doe' /path/to/some.jpg
    you can see the quotes are around the name, not the entire -author switch. In this case you should be looking at something like:
    set authorStr to "John Doe"
    set theFilePath to "/path/to/some.jpg"
    set theCmd to "exiftool -author=" & quoted form of authorStr & space & quoted form of theFilePath
    Now you could, of course, use quoted form when you create the variables (e.g. set authorStr to quoted form of "John Doe"), but that may screw you up later on if/when you try to use authorStr in some other way, so I find it best to use quoted form only where it's needed.

  • Trouble using Run Shell Script with python in Automator

    Hi. I have a python script I want to run in Automator (update_puzzles.py). All it does is check, rearrange and update files and there is not supposed to be any input. I can get the script to run outside of Automator, in Terminal, by navigating to the right directory and typing "python update_puzzles.py"
    I must not be setting up Run Shell Script correctly. I have it set to /bin/bash and Pass Input to stdin. The command line simply reads python /pathname/update_puzzles.py (where pathname is the path to the .py file, which I got by dragging the file onto the Run Shell Script command window). There are no actions before this in my workflow and the action after is View Results.
    The log says Run Shell Script failed, and the error is "Traceback (most recent call last):"
    Any suggestions?
    Thanks so much.

    If the script is expecting to do stuff with files in the same directory as the executable, you will probably need to add a statement to change to the appropriate working directory. The shell used in the Automator *Run Shell Script* action is a generic one that does not share any of the environment variables that the Terminal uses.

  • Modify shell script to work with other folders

    i am trying to modify a shell script that sorts files in a course folder into sub folders by month. I have a shell script that works, but when i try to modify it for another course folder it quits working. can someone let me know what i am doing wrong?
    the working shell script:
    do shell script "
    for f in \"$HOME/Desktop/DWI Annual Report/\"*
    do if [ ! -d \"$f\" ]; then
    x=\"${f%%.*}\"
    i=$((${#x}-3))
    if [ -d \"$HOME/Desktop/DWI monthly/${f:$i:3}\" ]; then
    mv \"$f\" \"$HOME/Desktop/DWI monthly/${f:$i:3}\"
    fi
    fi
    done"
    the nonworking modified script:
    do shell script "
    for f in \"$HOME/Desktop/DOEP Annual Report/\"*
    do
        if [ ! -d \"$f\" ]; then
            x=\"${f%%.*}\"
            i=$((${#x}-3))
            if [  -d \"$HOME/Desktop/DOEP monthly/${f:$i:3}\" ]; then
                mv \"$f\" \"$HOME/Desktop/DOEP monthly/${f:$i:3}\"
            fi
        fi
    done"

    ok here is the applescript that works.
    property total_student : 1
    tell application "Finder"
      set master_path to alias "Users:macbook:Desktop:DWI Annual Report:Annual Report.xlsx"
      set filesWithDWI to get every file of folder ((path to desktop folder) & "DWI Annual Report" as string) whose name contains "DWI"
      repeat with f in filesWithDWI
      my transfer_data(f, master_path)
      end repeat
    end tell
    on transfer_data(child_path, master_path)
      tell application "Microsoft Excel"
      set child_book to (open workbook workbook file name (child_path as string))
      set child_doc to worksheet 1 of child_book
      set master to worksheet "sheet 1" of (open workbook workbook file name (master_path as string))
      set num to 15 --All lists start at index 12 or later, I'm putting 10 to be safe
      set students to {}
      tell child_doc --grab values from child document
      repeat until (value of cell (("A" & num) as string)) is 1
      set num to num + 1
      end repeat
      repeat until (value of cell (("B" & num) as string)) is ""
      set end of students to {namevalue of cell (("B" & num) as string)), driver_idvalue of cell (("C" & num) as string)), DOBvalue of cell (("D" & num) as string)), Ref_Recvalue of cell (("I" & num) as string)), pre_testvalue of cell (("J" & num) as string)), post_testvalue of cell (("K" & num) as string)), cert_idvalue of cell (("L" & num) as string))}
    set num to num + 1
      end repeat
      set startdate to range "C7"
      set classlocation to range "C11"
      set instructor to range "H7"
      end tell
      tell master
      set num to 7
      log (value of cell (("B" & num) as string))
      repeat until (value of cell (("B" & num) as string)) is ""
      set num to num + 1
      end repeat
      repeat with student in students
      set value of cell (("A" & num) as string) to total_student
      set value of cell (("B" & num) as string) to name of student
      set value of cell (("C" & num) as string) to driver_id of student
      set value of cell (("D" & num) as string) to DOB of student
      set value of cell (("H" & num) as string) to pre_test of student
      set value of cell (("I" & num) as string) to post_test of student
      set value of cell (("J" & num) as string) to cert_id of student
      set value of cell (("f" & num) as string) to startdate
      set value of cell (("E" & num) as string) to classlocation
      set value of cell (("G" & num) as string) to instructor
      set value of cell (("K" & num) as string) to Ref_Rec of student
      set num to num + 1
      set total_student to total_student + 1
      end repeat
      end tell
      save child_book
      close child_book
      save active workbook in master_path
      close active workbook
      end tell
    end transfer_data
    do shell script "
    for f in \"$HOME/Desktop/DWI Annual Report/\"*
    do
        if [ ! -d \"$f\" ]; then
            x=\"${f%%.*}\"
            i=$((${#x}-3))
            if [  -d \"$HOME/Desktop/DWI monthly/${f:$i:3}\" ]; then
                mv \"$f\" \"$HOME/Desktop/DWI monthly/${f:$i:3}\"
            fi
        fi
    done"
    It takes the class rosters and copies the information from the class roster to the annual report and then moves the file to the monthly  folder and files it in the appropriate months folder based on the last three letters of the file name.

  • Unix master shell script to run jobs in parallel with dependency

    I need a master shell script which would call the following shell scripts as per below order. Kindly note that if any shell script fails then the master shell script should abort.
    Level 1     PRODUCTS
         SP_ROST_DLY_STG_lD
         SP_ROST_DLY_ITG_lD
    After Level 1 completes run below two shell scripts in parallel:
    Level 2     SP_IDL_EDGE_CON_POSTN_STG_Ld ,     SP_IDL_EDGE_ACCT_POSTN_STG_LD
    After Level 2 completes run below shell scripts as per the seqeunce and in parallel:
    Level 3     SP_IDL_EDGE_ACCT_STG_LD ,     SP_IDL_EDGE_CONT_STG_LD
         SP_IDL_EDGE_ACCT_STG_VAL ,     SP_IDL_EDGE_CONT_STG_VAL
         SP_IDL_EDGE_ACCT_ITG_Ld ,     SP_IDL_EDGE_CON_ITG_Ld
    After Level 3 completes run below shell scripts as per the seqeunce and in parallel:
    Level 4     SP_IDL_EDGE_CONT_POSTN_ITG_LD ,     SP_IDL_EDGE_VISITS_LD
         SP_IDL_EDGE_ACCT_POSTN_ITG_LD ,     SP_IDL_EDGE_VISITS_DTL_LD

    can i avoid using set -e and use some other method so that if there is an error in previous job then the next job is not triggered.Sure, but it is ugly.
    The below is not the only way to do this...
    Wrap every place you start another script with:
    $ if ! MYSCRIPT; then
        echo Script MYSCRIPT failed. >&2
        exit 1
    fibut the wrapper for parallel scripts is even worse:
    $ MYSCRIPT &
    $ MYSCRIPT_JOBNO=$!
    $ MYSCRIPT2 &
    $ MYSCRIPT2_JOBNO=$!
    $ MYSCRIPT_STATUS=`wait ${MYSCRIPT_JOBNO}`
    $ if [ ${MYSCRIPT_STATUS} -ne 0 ]; then
        echo Script MYSCRIPT failed. >&2
        exit 1
    fi
    $ MYSCRIPT2_STATUS=`wait ${MYSCRIPT2_JOBNO}`
    $ if [ ${MYSCRIPT2_STATUS} -ne 0 ]; then
        echo Script MYSCRIPT2 failed. >&2
        exit 1
    fi
    ...Now, doesn't a simple 'set -e' look much better?

  • Unix Shell Scripts with Oracle

    Any body who can give me the link where I can find the Unix Shell Scripts to access the Oracle database and execute the stored procedures and cursors.

    Your unix script will contain (at appropriate places):
    sqlplus -s username/pasword@server @your_sql_Script_that_calls_the procedure.SQLor
    sqlplus -s / @your_sql_Script_that_calls_the procedure.SQL

Maybe you are looking for

  • How do I create a TASK ICON ???

    Hi, I would like to put my application in the WINDOWS TASK BAR. Those nice little icons that appear beside the clock. I believe this solution will kill the portability of my code, but I am willing to pay that price. Thanks, Sergio

  • Apple tv slow

    New apple customer here. Purchased a brand new apple tv yesterday and attempted to watch a movie just now. It says ready to play in 2 hours 20 mins! Surely this is wrong? Done a connection speed check and that says 11 Mbps so it's not a connection is

  • Workbench automation

    I am looking for a way to generate all the toplink related files for a project without using the workbench gui. I have written some stuff to generate java classes from the database metadata but I realize that the workbench does the exact same work so

  • ASA5510 base config for guest wireless network

    Hello I am partitioning off my guest wireless traffic out a new connection. I have a WISM and a 5508 controller. The WISM will anchor the subnets to the specific controller. AP - WISM - 5508 - FW - Cable link - Internet Can anyone assist in implement

  • Now that i've backgraded

    this may be a long shot but is there anyway to get my itunes exactly how it was? with all the songs and the play counts and everything? i hate having to start over when it comes to this stuff! any help is appreciated?