How to compare all columns in a SELECT with all columns in a Cursor ?
Hi All,
I would like to know if something like this is possible in PL/SQL
I have a cursor CUR1 which is a SELECT * FROM T1.
And in my loop for every record found in CUR1 I am trying to retrieve its consecutive record in the table T2. Unfortunately T1 and T2 do not have a primary key so there are duplicates. But if I can compare each column of CUR1 with its respective column in T2, I can find the record. But the question is how ?
So I tried something like this, but of course this is wrong, but hope this would give you an idea of what I trying
VAR_T2 T2%ROWTYPE;
CUR_T1 IS SELECT * FROM T1
LOOP CUR_TI
SELECT * INTO VAR_T2
FROM T2 WHERE
‘ALL COLUMNS OF T2’ = ALL COLUMNS OF CUR1;
So is there a easy way to accomplish this. Thank you, AJ
As Walter says, this is simply an intersect if you are comparing all the columns.
However, if you really must do it in a slow by slow, PL/SQL loop (no real valid reason why you would though)...
DECLARE
VAR_T2 T2%ROWTYPE;
CUR_T1 IS
SELECT * FROM T1;
BEGIN
FOR i IN CUR_TI
LOOP
SELECT * INTO VAR_T2
FROM T2
WHERE T2.col1 = i.col1
AND T2.col2 = i.col2
AND T2.col3 = i.col3
AND T2.colN = i.colN;
END LOOP;
END;There is no simple mechanism for just saying "compare all the columns", you will have to specify each one individually in the WHERE clause.
Similar Messages
-
How to compare two rows from two table with different data
how to compare two rows from two table with different data
e.g.
Table 1
ID DESC
1 aaa
2 bbb
3 ccc
Table 2
ID DESC
1 aaa
2 xxx
3 ccc
Result
2Create
table tab1(ID
int ,DE char(10))
Create
table tab2(ID
int ,DE char(10))
Insert
into tab1 Values
(1,'aaa')
Insert
into tab1 Values
(2,'bbb')
Insert
into tab1 Values(3,'ccc')
Insert
into tab1 Values(4,'dfe')
Insert
into tab2 Values
(1,'aaa')
Insert
into tab2 Values
(2,'xx')
Insert
into tab2 Values(3,'ccc')
Insert
into tab2 Values(6,'wdr')
SELECT
tab1.ID,tab2.ID
As T2 from tab1
FULL
join tab2 on tab1.ID
= tab2.ID
WHERE
BINARY_CHECKSUM(tab1.ID,tab1.DE)
<> BINARY_CHECKSUM(tab2.ID,tab2.DE)
OR tab1.ID
IS NULL
OR
tab2.ID IS
NULL
ID column considered as a primary Key
Apart from different record,Above query populate missing record in both tables.
Result Set
ID ID
2 2
4 NULL
NULL 6
ganeshk -
How do I connect my external hard drive with all of my digital media to my Apple TV network and make it accessable 24/7? I have the latest Apple TV, ipads, iPhones as well as a solid HP Windows machine all on my home network. Is there a way that I can connect my hard drive to my receiver or Apple TV directly so that the digital media is available on my network 24/7 rather than have it connected to my computer and available through Home Share which never works anyway??
Sorry it's all done through iTunes.
The following article(s) may help you with home sharing.
Troubleshooting Home Sharing
Troubleshooting Wi-Fi networks and connections
Recommended Wi-Fi settings
Wifi Diagnostic Software (for Mac users)
You may also find some help on this page, where I’ve collected some of the more unusual solutions to network issues. -
HT3529 how to do i send a text conversation with all the detail to my email?
How to do I send a text conversation with all the detail from my phone to my email?
Take a screen shot of the text. Hold the home/sleep button together for a sec. Then go to your camera roll and then email it to yourself.
-
Greetings. Please tell me how much weight iPhone 4s in the box with all the accessories? I am interested in the weight of the smartphone box booklets all the accessories. Thank you. (American adapter.)
I would google the question there doesn't seem to be any agreed weight and you will find plenty of answers all conflicting
Clearly no-one is coming up with an solution here -
Delete statement that uses a sub-select with the statement in the cursor
Hi all,
How to write write a delete statement that uses a sub-select with the statement in the cursor?
CURSOR excluded_dates IS
SELECT TO_TIMESTAMP(report_parameter_value, in_date_format_mask)
INTO my_current_date_time
FROM report_parameters
WHERE report_parameters.report_parameter_id = in_report_parameter_id
AND report_parameters.report_parameter_group = 'DATE_TIME'
AND report_parameters.report_parameter_name = 'EXCLUDED_DATE';
OPEN excluded_dates;
LOOP
FETCH excluded_dates INTO my_excluded_date;
EXIT WHEN excluded_dates%NOTFOUND;
DELETE FROM edr_rpt_tmp_inclusion_table
WHERE TO_CHAR(date_time, 'mm/dd/yyyy') = TO_CHAR(my_excluded_date, 'mm/dd/yyyy');
END LOOP;
CLOSE excluded_dates;ThanksHi,
In such case I think is better to create a view an perform the delete using it. Example (using HR schema):
Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0
Connected as hr
SQL> create or replace view v_employees as select * from employees where first_name like 'J%';
View created
SQL> select * from v_employees;
EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
110 John Chen JCHEN 515.124.4269 28/09/1997 FI_ACCOUNT 8200,00 108 100
112 Jose Manuel Urman JMURMAN 515.124.4469 07/03/1998 FI_ACCOUNT 7800,00 108 100
125 Julia Nayer JNAYER 650.124.1214 16/07/1997 ST_CLERK 3200,00 120 50
127 James Landry JLANDRY 650.124.1334 14/01/1999 ST_CLERK 2400,00 120 50
131 James Marlow JAMRLOW 650.124.7234 16/02/1997 ST_CLERK 2500,00 121 50
133 Jason Mallin JMALLIN 650.127.1934 14/06/1996 ST_CLERK 3300,00 122 50
139 John Seo JSEO 650.121.2019 12/02/1998 ST_CLERK 2700,00 123 50
140 Joshua Patel JPATEL 650.121.1834 06/04/1998 ST_CLERK 2500,00 123 50
145 John Russell JRUSSEL 011.44.1344.429268 01/10/1996 SA_MAN 14000,00 0,40 100 80
156 Janette King JKING 011.44.1345.429268 30/01/1996 SA_REP 10000,00 0,35 146 80
176 Jonathon Taylor JTAYLOR 011.44.1644.429265 24/03/1998 SA_REP 8600,00 0,20 149 80
177 Jack Livingston JLIVINGS 011.44.1644.429264 23/04/1998 SA_REP 8400,00 0,20 149 80
181 Jean Fleaur JFLEAUR 650.507.9877 23/02/1998 SH_CLERK 3100,00 120 50
186 Julia Dellinger JDELLING 650.509.3876 24/06/1998 SH_CLERK 3400,00 121 50
189 Jennifer Dilly JDILLY 650.505.2876 13/08/1997 SH_CLERK 3600,00 122 50
200 Jennifer Whalen JWHALEN 515.123.4444 17/09/1987 AD_ASST 4400,00 101 10
16 rows selected
SQL> delete from v_employees where hire_date >= to_date('01/06/1998', 'dd/mm/yyyy');
2 rows deleted
SQL> regards, -
How to compare char and numc in select query
Hi Experts,
I am using For all entries to combine two tables.
I want to fetch the data from these tables.
The field in one table char, and in another the field is numc.
1st Query from table BDCP2 and get the tabkey value is like (2000000000000000000086200000000000000000000)
2nd query For all entries found,
query table ESTMJ with the following parameter.
ESTMJ-RECN = BDCP2-TABKEY+3(20)
1.TABKEY CHAR 254
2.RECN NUMC 20
How to compare these two ?
Regards,
Bindhu Priya.for two fields numc & char , please check out their Conversion routine in their respective Database table.
1st in SE11-> enter table names in different sessions. and check out the data domain used by this fields
In their respective domains of fields, click on tab 'DEFINITIONS', then check out the conversion routines in Output Characteristics of the Data Domain of field
From my point of view, both the Conversion routines should be the same.
If Conversion Routines are not there, then insert suitable Conversion routine for both the fields domain
For help for for conversion routines:
conversion routine
http://help.sap.com/saphelp_46c/helpdata/en/cf/21ee19446011d189700000e8322d00/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/35/26b217afab52b9e10000009b38f974/content.htm
http://abaplovers.blogspot.com/2008/03/conversion-routines-in-sap.html
hope this solution could solve your issue..
<begging removed by moderator>
Gaur Mayank
Edited by: Gaur Mayank on Nov 5, 2011 10:40 AM
Edited by: Thomas Zloch on Nov 6, 2011 3:59 PM -
How to Compare Data length of staging table with base table definition
Hi,
I've two tables :staging table and base table.
I'm getting data from flatfiles into staging table, as per requirement structure of staging table and base table(length of each and every column in staging table is 25% more to dump data without any errors) are different for ex :if we've city column with varchar length 40 in staging table it has 25 in base table.Once data is dumped into staging table I want to compare actual data length of each and every column in staging table with definition of base table(data_length for each and every column from all_tab_columns) and if any column differs length I need to update the corresponding row in staging table which also has a flag called err_length.
so for this I'm using cursor c1 is select length(a.id),length(a.name)... from staging_table;
cursor c2(name varchar2) is select data_length from all_tab_columns where table_name='BASE_TABLE' and column_name=name;
But we're getting data atonce in first query whereas in second cursor I need to get each and every column and then compare with first ?
Can anyone tell me how to get desired results?
Thanks,
Mahender.This is a shot in the dark but, take a look at this example below:
SQL> DROP TABLE STAGING;
Table dropped.
SQL> DROP TABLE BASE;
Table dropped.
SQL> CREATE TABLE STAGING
2 (
3 ID NUMBER
4 , A VARCHAR2(40)
5 , B VARCHAR2(40)
6 , ERR_LENGTH VARCHAR2(1)
7 );
Table created.
SQL> CREATE TABLE BASE
2 (
3 ID NUMBER
4 , A VARCHAR2(25)
5 , B VARCHAR2(25)
6 );
Table created.
SQL> INSERT INTO STAGING VALUES (1,RPAD('X',26,'X'),RPAD('X',25,'X'),NULL);
1 row created.
SQL> INSERT INTO STAGING VALUES (2,RPAD('X',25,'X'),RPAD('X',26,'X'),NULL);
1 row created.
SQL> INSERT INTO STAGING VALUES (3,RPAD('X',25,'X'),RPAD('X',25,'X'),NULL);
1 row created.
SQL> COMMIT;
Commit complete.
SQL> SELECT * FROM STAGING;
ID A B E
1 XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX
2 XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
3 XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX
SQL> UPDATE STAGING ST
2 SET ERR_LENGTH = 'Y'
3 WHERE EXISTS
4 (
5 WITH columns_in_staging AS
6 (
7 /* Retrieve all the columns names for the staging table with the exception of the primary key column
8 * and order them alphabetically.
9 */
10 SELECT COLUMN_NAME
11 , ROW_NUMBER() OVER (ORDER BY COLUMN_NAME) RN
12 FROM ALL_TAB_COLUMNS
13 WHERE TABLE_NAME='STAGING'
14 AND COLUMN_NAME != 'ID'
15 ORDER BY 1
16 ), staging_unpivot AS
17 (
18 /* Using the columns_in_staging above UNPIVOT the result set so you get a record for each COLUMN value
19 * for each record. The DECODE performs the unpivot and it works if the decode specifies the columns
20 * in the same order as the ROW_NUMBER() function in columns_in_staging
21 */
22 SELECT ID
23 , COLUMN_NAME
24 , DECODE
25 (
26 RN
27 , 1,A
28 , 2,B
29 ) AS VAL
30 FROM STAGING
31 CROSS JOIN COLUMNS_IN_STAGING
32 )
33 /* Only return IDs for records that have at least one column value that exceeds the length. */
34 SELECT ID
35 FROM
36 (
37 /* Join the unpivoted staging table to the ALL_TAB_COLUMNS table on the column names. Here we perform
38 * the check to see if there are any differences in the length if so set a flag.
39 */
40 SELECT STAGING_UNPIVOT.ID
41 , (CASE WHEN ATC.DATA_LENGTH < LENGTH(STAGING_UNPIVOT.VAL) THEN 'Y' END) AS ERR_LENGTH_A
42 , (CASE WHEN ATC.DATA_LENGTH < LENGTH(STAGING_UNPIVOT.VAL) THEN 'Y' END) AS ERR_LENGTH_B
43 FROM STAGING_UNPIVOT
44 JOIN ALL_TAB_COLUMNS ATC ON ATC.COLUMN_NAME = STAGING_UNPIVOT.COLUMN_NAME
45 WHERE ATC.TABLE_NAME='BASE'
46 ) A
47 WHERE COALESCE(ERR_LENGTH_A,ERR_LENGTH_B) IS NOT NULL
48 AND ST.ID = A.ID
49 )
50 /
2 rows updated.
SQL> SELECT * FROM STAGING;
ID A B E
1 XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX Y
2 XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX Y
3 XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXHopefully the comments make sense. If you have any questions please let me know.
This assumes the column names are the same between the staging and base tables. In addition as you add more columns to this table you'll have to add more CASE statements to check the length and update the COALESCE check as necessary.
Thanks! -
How do I print a list of albums with all Genres? Skips the classical albums. ?
How do I print a list of all albums and all genres? Itunes skipped Classical albums.
Well, this is not only a way to print a list with all genres but also a list with all type of genre used in your iTunes library.
I found a crazy way, but it works. Export a list of all you music sorted by genre (with genre included as one of the columns) and save all as a text file > File > Library > Export List > Tipe: text file
Open Excel - drag drop text file into excel. [FROM HERE YOU CAN PRINT ALL YOUR MUSIC LIST] - click once in the upper left square before column A and over line 1 and now click twice a little bit before the end of column A (the pointer changes like a cross) to adjust all cell width.
NOW TO MAKE A GENRE LIST
Find the genre column > select the column
copy it and in a new sheet paste only this column in A1 ... Annn cells.
Now select the first cell (A1) and go to Data > Remove Duplicated > (if you wish select "my data has a header")
click OK
Now what stays in the column is only one name for each genre.
That's it (sorry my english, but I'm brazilian) -
How to compare, current value in :block.text_item with the database value
Hi
Could you please tell me
How to compare the current value in :block.text_item with the corresponding database column value.
I am using forms 10g
There is block and there is an text Item in that block.
When I run the form and query the block (tabular), the :block.text_item shows me, whatever value there in the database.
Now I add some value in the :block.text_item to the existing value.
now
the :block.text_item contains old+ new added value
whereas
the database table contains 'old' value
Now on a button click , I want to find out what is the value that I have added
Could you please tell me, is it possible without writing a select query?Hello,
Now on a button click , I want to find out what is the value that I have addedSo you mean always user will add value in the existing value. Because this way will fail in one case. Let say
Value in Database is = ABCD
User opened the form and he removed the D and write E and now value is ABCE and length is still same 4. So, there is no addition.
Anyway you can know the database value at runtime there is one property for item called DATABASE_VALUE. It gives the value which is in database while you are running the form before save. and you can use like this..
Trigger = WHEN-MOUSE-DOUBLE-CLICK on item level
DECLARE
vItemValue DATATYPE; -- Set the data type according to your desired field.
vValueAdded DATATYPE; -- Set the data type according to your desired field.
BEGIN
vItemValue:=GET_ITEM_PROPERTY('ITEM_NAME',DATABASE_VALUE); -- It will return you the database value in vItemValue variable.
IF LENGTH(vItemValue)>LENGTH(:FORM_ITEM_NAME) THEN -- It mean something change or added
vValueAdded:=SUBSTR(:FORM_ITEM_NAME,LENGTH(vItemValue)+1);
MESSAGE('Added value is : '||vValueAdded); -- It will show you the added value.
END IF;
-- now suppose you want to show the old and new value in message not the added one
-- Then no need of IF condition. You can just use message like this
-- And i would prefer to use like this way
MESSAGE('Old Value : '||vItemValue||' New Value - '||:FORM_ITEM_NAME);
MESSAGE('Old Value : '||vItemValue||' New Value - '||:FORM_ITEM_NAME);
END;Hope it is clear.
-Ammad -
How to migrate data fSQL server 2005 Tables with image column To ORACLE 11g
Hi ....
I am in the middle of migrating our database from sqlserver 2005 version to ORACLE 11g instance, and i'm facing a problem when trying to load data into one of the oracle table which has blob column and some more. The data file was extracted from sql server 2005 table which has image column and some more. All other columns are sinking with the migration as expected but the image column is not getting loaded into oralce blob.
I tried loading data using sqlloader.
Is there any other way to migrate data directly between these two versions of database?. Pls help...
Edited by: user13310523 on 21-Jun-2010 23:48Welcome to the forum,
Hi,
To link Oracle with SQL Server follow this steps:
1-Install Oracle ODBC drivers on the server (your local Oracle database) that will access the remote SQL Server database using the database link.
2. Setup the ODBC connection on the local Oracle database using the Windows ODBC Data Source Administrator
3. Test the ODBC drivers to ensure that connectivity is made to the SQL Server database.
4. Ensure that your global_names parameter is set to False.
5. Configure the Oracle Heterogeneous services by creating an initodbc.ora file within the Oracle database.
7. Modify the Listener.ora file.
SID_NAME is the DSN for the remote database.
ORACLE_HOME is the actual Oracle home file path.
PROGRAM tells Oracle to use heterogeneous services.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME=Cas30C) -- Enter the DSN on this line
(ORACLE_HOME = c:\oracle10gdb) -- Enter your Oracle home on this line
(PROGRAM = hsodbc) ) )
8. Modify the Tnsnames.ora file. This is the Oracle database installation accessed by the users to connect to the ODBC drivers
(DESCRIPTION=
(ADDRESS_LIST=
(Address=(PROTOCOL=TCP)
(HOST=
-- (Server x)
(PORT=1521))) -- Enter the port on which the server x Oracle installation
-- is listening
(CONNECT_DATA=(SID=Cas30c)) - Enter the DSN name
(HS=OK) -- Enter this value. It tells Oracle to use hetergeneous services
9. Reload the listener on local Oracle database
10. Create a database link on the local Oracle installation that accesses the heterogeneous connection, which, in turn, connect to SQL Server.
11. Run a SQL Server Select statement from the Oracle installation using the database link
Thanks
BelMan :) -
Hi,
I just want to know if bootcamp allready supports windows 8 with all drivers working like magic mouse gestures, the optic drive, sd card, USB ports, bluetooth al patches are working fine and if all is working ok how to intall, if is a normal bootcamp installation or requires other procedure
Thank youThe Windows 7 drivers worked perfectly for me on my Early-2011 Core i5 MBP.
It's not officially supported by Apple yet as it's pre-release software, but you can install it without any problems. -
How to print out document list items (and with all comments!)
Hi all,
I am wondering how to get a good printout of document lists.
In a web application I have some document list items and the users are adding many comments in it, so that the document list item doenst show all in the initial view, but scroll buttons to navigate up and down.
I was surprised to read that the standard print functionality doesnt support document items.
http://help.sap.com/saphelp_nw70ehp1/helpdata/en/43/68ce8391886e47e10000000a422035/content.htm
How can I print out a list of all document list items with all comments?
Ist there a workaround?
thanks in advance for sharing your experiences, br, MichaelThanks guys for trying to help me...
Gabriel, I not wanna do "a lot of trix" to get this out of iCal when it should be solved by iCal (from my point of view).
Dancing Brook, Yes I hope we will see that in the future. I am convinced that there is many of us out there who want to see that function in iCal, even if they not really missed it yet.
I have already sent a request to iCal feedback (hope they noted). Maybe they will if we are many doing so... -
Add columns to a table with lob column
Hi,
Just a quick question: is there a performance penalty after adding columns to a table with a lob fied? the lob field is now the last column in the table and via via I was told that adding columns will impact badly the IO performance on the table if the lob field isn't anymore the last column. The table is on a Oracle 10.2.0.3 version.
thanks. regards
IvanHavent heard of performance degradation specifically due to a LOB column not being the last column in a table (although there are several issues with just having a LOB column in a table).
You may want to build a test database to test it out. It should be easy to run tests comparing one with the additional column and one the original to prove or refute it. The results would be interesting to learn - please post them up if you intend to test it out. -
How to haveour own titles/captions in selection screen & in column headings
we have SAP B1 2005 A, MS SQL 2005
though i am new to MSSQL/T-SQL programming, purely through lot of trials & errors i have learnt & managed to develop many reports/queries !
but, i am facing some problems : how to have our own captions/title for the options in selection screen & aso in reports/queries column headings.
e.g. :
for Customer Aging analysis, i would like to accept a set of 3 parameters (aging days) from the user. where the user may enter the values 30, 60 & 90 OR any other values.
i have the following codes for this purpose (considering my question's (over) size, only small portions of my program are given below)
declare @mdue1 int,
@mdue2 int,
@mdue3 int
set @mdue1 = [%1]
set @mdue2 = [%2]
set @mdue3 = [%3]
but, in the selection screen, the system displays "%1 Debit Amount Greater than" as the caption & 0.00 as the default value. the same is the case for the other two parameters [%2] & [%3] also.
i tried defining the variable @mdue1 as smallint & also tinyint, but the result is the same.
how to have our own captions/title for the options in selection screen instead of the ones displayed by t-sql based on our SELECT statement.
how to have our own column headings, dynamically defined/coined using variables instead of hard coded columns headings (within quotes).
e.g. in the select statement, instead of defining a column as '<= 30 Days' = T0.due_1
i would like to get the number of days from the user, who may enter 30 or 40 or whatever.
i would like to display the value that the user entered in the column heading using a variable say @mcol1
declare @mcol1 varchar(10)
set @mcol1 = '<= 'convert(varchar(10), @mdue1)' Days'
SELECT T0.CardCode,@mcol1 = T0.due_1 from #CustAging T0
but, this ends up in error.
i have already searched the net for ebooks, articles, etc. for a solution to this problem, but till now, i could not find any addressing these problems.
i have just registered in this forum with a hope to get a solution. thanks a lot in advance.
Thanks & Regards,
Raghu Iyer
Place : Vapi, Gujarat, Indiathanks a lot, lstvan.
i think, it i a good "trick" worth trying out.
well, i will now mark this question as answered, but still, if anyone has a direct solution "problem", please do share with us.
i am able to write queries (in fact, full fledged programs) in T-SQL & getting the desired output and for such a trivial thing i do not want to go for an add-on SDK module. but, considering the limitations of T-SQL and the complex requirements of real business world, i think, we have to go the .net way only.
regarding add-ons, i heard that add-ons will slow down SAP B1. is it true ?
Thanks & Regards,
Raghu iyer
Maybe you are looking for
-
Paper jam all-in-one deskjet BUFFO
I am a real newbie - have never done this before - can someone tell me how they fixed what seems to be a common problem? I have a HP All-in-One deskjet F4440 - it will not print anything on the first and sometimes second paper. It just quietly pulls
-
Security after hard reset of airport express
hello. i was having internet connectivity issues, read through these forums, did a hard reset, renamed the profile, and now all works well. problem is, i just noticed there is some sort of "no security" in one of the windows in the admin utility. the
-
Form Crashes when error occured !!!
Hi All , we have an Application Developed on 10g iDS , and Deplyed on Linux suse , but a Strange behavior is coming up ; when any form specific error occured on the form such as (Can't insert null , not allowed value for list item ...) the Forms Serv
-
Encryption Policy - Safe Harbor Folders
So I'm reading the help files in the ZCC for the Encryption Policies and I came across this little tidbit... "Safe Harbor encryption for fixed disks is supported only on Windows 7 devices. It is not supported on Windows Vista or Windows XP devices."
-
When trying to use software update, get error NSURLErrorDomain error -1100
I don't know if this is a result of anything I did. It started happening after I installed the latest version of Garageband. When I went into that app, and selected one of the instruments, it directed me to use software update to get all the data f