Merge statement required with Logic

Table Name: F_SCENARIO
System : Dataware house
Oracle version : 11g
Record Count : 2 Million records
Correct scenario records
F_Key
F_Bridge_key
Record_type
1
1
1
2
1
2
3
1
3
Wrong scenario records
F_Key
F_Bridge_key
Record_type
1
1
1
2
-5
2
3
-6
3
I want to write a Merge statment to update the nagative values into 1,  can you please help me to provide some suggestion and query
Please let know if you any confusion in the above data's

Hi Tubby,,
I have 2 million records like above set of records
you have hardcoded f_bridge_key = 1, it not always same values of 1, why because the f_bridge_key is sequnce number
Merge statment required becasue client is expecting with merge statment, the below highleted bold color is one set of records
Wrong scenario records
F_Key
F_Bridge_key
Record_type
1
1
1
2
-5
2
3
-6
3
4
4
1
5
-8343
2
6
-3534
3

Similar Messages

  • Some help required with logic for a dynamic sql query

    i have below code but not sure how to resolve this problem - what i need is to be able to dynamically
    the problem:
    i have a rabbge of paratmeters coming in from a form and need to be able to create a dynamic query string to go into a prepared statement object.
    the problem i have is there are 2 fields year range and year.
    if year range is none i need to create the query string as such :
    where the value of year can be serached on exactly
    str.append("VOLUME_YEAR = ? ");the probelm is if the year range is 5 or year range is 10 i dont know how to maipulate the query string to be able to set the string such that i can then place the year value in the place holder in preparedStatement.setInt(1, year)
    how can i create the intial query string ie.- what are the possible things that i can do. - i'm thinking of things like putting some type of between or such type query statement - but not at all sure how the syntax would go - ie. how would i use the year value and how would i create this dynamic part of the query string so that the JDBC regonises it?
    thanks for any help.
    public String setVolumeYearQuerySt(String year, String yearRange, StringBuffer str){
              String volumeYearQueryString = null;
              Sring doAction= null;
              if (yearRange.equals("None")){str.append("VOLUME_YEAR = ? ");}
              else if(yearRange.equals("5 Years")){doAction = "Nothing";}
              else if (yearRange.equals("10 Years")){doAction = "Nothing";}
              return volumeYearQueryString;
              }

    Saish - thanks a lot for the code example.
    Although, i think its far too advanced for me to understand and try to manipulate it and fit my problem. I'm pretty new to programming as you can probably see from my simple if else type statements. But i'm going to give it a try and see how it goes.
    could you please be kind enough to demonstrate how i could use the above syntax to do the following. --
    i have a year being entered in form .  in the database there is a column year volume which contains year in single year value format and also in a year range  value format - thus as in below - how could i do this -
    eg.
    user can enter a value in the year field a single value or a range value - then he can select +/-5 or 10 yrs range on that value - the DB holds the values as single values and ranges as below -
    one suggested apporach is as follows if a single user is alloweed to enter only a single value in the filed and select a query range +/- 5 etc..
    volume year of �1926-1928� and the user enters �1927�, the query has to find all records where
    look for records that are �less than or equal to� 1927.  It then has to check to see if it contains a range.  For those that it finds containing a range, it has to work out what the �upper� year is and check to see if that is �greater than or equal� to 1927.  If it is, then that is a possible matchanother approach that is suggested is to have a drop down with all years from databse and user is only llowed to select value from drop down and following logic is suggested :
    Because volumes can be received as ranges (e.g. 1964-1966), some extra coding is required where the user asks for a Year Range (such as + or � 5).
    Using the Year selected from the dropdown list, split it into 2 values, a low year and a high year. For example, if �1965-1968� is selected from the year dropdown, split it into �1965� and �1968� for the low year and high year respectively. If �1964� is selected from the year dropdown, split it into �1964� and �1964�. Now take the Year Range that the user has entered into account. For example, if the user has entered 5, subtract 5 from the low year and add 5 to the high year. Using these values, include the following search criteria in the query to the database:-
    (<low year>     BETWEEN
                 left (VOLUME_YEAR, charindex ('-',VOLUME_YEAR + '-') - 1)
         AND     right (VOLUME_YEAR, charindex ('-',VOLUME_YEAR + '-') - 1))
    OR     (<high year>     BETWEEN
                 left (VOLUME_YEAR, charindex ('-',VOLUME_YEAR + '-') - 1)
         AND     right (VOLUME_YEAR, charindex ('-',VOLUME_YEAR + '-') - 1))regards - i think if i could solve the first approach that would be something good as its most user freindly
    thanks

  • MERGE statement - Source with duplicate values not raising error ora-30926

    Hi ,
    I'm having a problem with merge that has already been reported in another thread ( Re: MERGE strange behavior ). I created a procedure with a query and have tested inserting two equal values on the Key column to raise the error. But on the first time there i run the Procedure it runs without error, apparently updating with the first row found. On the second time there i run the procedure then Oracle raises the error.
    Above you can see the code to simulate the issue:
    -- creating the table
    create TABLE teste
    ( ID NUMBER NOT NULL , DESCR VARCHAR2 (20 CHAR) , GRUPO VARCHAR2 (30 CHAR) );
    -- inserting the pk in table
    ALTER TABLE Teste
    ADD CONSTRAINT DimTestec_PK PRIMARY KEY ( ID ) ;
    -- inserting records in the table
    insert into teste
    select -2 AS id,'t-2' AS descr,'t-2g' AS grupo from dual
    union all
    select -1 AS id,'t-1' AS descr,'t-1g' AS grupo from dual
    union all
    select 1 AS id,'t1' AS descr,'t1g' AS grupo from Dual
    union all
    select 2 AS id,'t2' AS descr,'t2g' AS grupo from Dual
    union all
    select 3 AS id,'t3' AS descr,'t3g' AS grupo from Dual
    union all
    select 4 AS id,'t4' AS descr,'t4g' AS grupo from Dual
    union all
    select 5 AS id,'t5' AS descr,'t4g' AS grupo from Dual
    --create the procedure to teste the merge
    create or replace procedure mergeteste is
    Begin
    MERGE INTO teste testemerge
    USING ( select -2 AS id,'t-2' AS descr,'t-2g' AS grupo from dual
    union all
    select -1 AS id,'t-1' AS descr,'t-1g' AS grupo from dual
    union all
    select 1 AS id,'t1' AS descr,'t1g' AS grupo from Dual
    union all
    select 2 AS id,'t2' AS descr,'t2g' AS grupo from Dual
    union all
    select 3 AS id,'t3' AS descr,'t3g' AS grupo from Dual
    union all
    select 4 AS id,'t4' AS descr,'t4g' AS grupo from Dual
    union all
    select 5 AS id,'t5' AS descr,'t4g' AS grupo from Dual
    union all
    select 5 AS id,'t6' AS descr,'t6' AS grupo from Dual ) testesource
    ON (testemerge.id = testesource.id)
    WHEN MATCHED THEN
    UPDATE SET testemerge.descr = testesource.descr,
    testemerge.grupo = testesource.grupo
    WHEN NOT MATCHED THEN
    INSERT ( testemerge.id, testemerge.descr, testemerge.grupo )
    VALUES ( testesource.id, testesource.descr, testesource.grupo ) ;
    commit work;
    EXCEPTION
    WHEN OTHERS THEN
    begin
    ROLLBACK;
    dbms_output.put_line(dbms_utility.format_error_stack||dbms_utility.format_error_backtrace);
    end;
    end mergeteste;
    -- the first time you execute the procedure, it runs without error - when it shouldn't run cause there's two id with value 5 on the testesource query.
    -- the second time it raises the expected error.
    Here's the oracle version:
    1 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    2 PL/SQL Release 11.2.0.3.0 - Production
    3 CORE 11.2.0.3.0 Production
    4 TNS for Linux: Version 11.2.0.3.0 - Production
    5 NLSRTL Version 11.2.0.3.0 - Production
    Thanks in advance.
    Best Regards.
    Renan Ribeiro

    Hi, Renan,
    That sounds like a bug. In Oracle 11.1, I get the error the first time I run the procedure, but in Oracle 11.2, I get the same results you do (that is, no error the first time I run the procedure, error the second time).

  • Help required with logic

    Moderator message: pleause use a meaningful subject in future
    Hi,
    I have a custom table which has customer ID field and amount field.
    In the report I need to bucket data by amount and no. of customers in that bucket.
    For ex: for amount range 1.00 u2013 25.00 there are 100 customers and total amount $1000.00, 25.01 to 50.00 there are 34 customers  and total amount $20,000 and so on.
    What I am planning to do is fetch records from table into internal table using group by clause,
    SELECT CUSTOMER AMOUNT FROM CUSTOMER_FINES INTO TABLE LT_FINES GROUP BY CUSTOMER AMOUNT.
    This would bring me in the internal table all customers and their fine. Now what would be the best logic to separate them out into groups.
    Approach what I thought of is having two variables for each bucket no_of_customers and total_amount. Then loop through the internal table add If conditions on amount and then accordingly increment no_of_customers for that bucket and add amount to total_amount.
    But the internal table is likely to have a lot of records about half a million. Is this a good approach. Can you'll recommend what is the right way to achieve this.
    Thanks in advance,
    CD
    Edited by: Matt on Dec 17, 2009 10:02 AM

    Hi,
    do this.
    1. create counters for the no of ranges you have say 1.00 u2013 25.00 counter1 total_amt1, 25.01 to 50.00 counter2 total_amt2 etc
    2. loop at your internal table
    3. check which range the amount falls into using IF statement
    4. increment counter* by 1 and add amount to total_amt*
    You are done.
    Regards
    Prasenjit

  • Performance problem with MERGE statement

    Version : 11.1.0.7.0
    I have an insert statement like following which is taking less than 2 secs to complete and inserts around 4000 rows:
    INSERT INTO sch.tab1
              (c1,c2,c3)
    SELECT c1,c2,c3
       FROM sch1.tab1@dblink
      WHERE c1 IN (SELECT c1 FROM sch1.tab2@dblink);I wanted to change it to a MERGE statement just to avoid duplicate data. I changed it to following :
    MERGE INTO sch.tab1 t1
    USING (SELECT c1,c2,c3
       FROM sch1.tab1@dblink
      WHERE c1 IN (SELECT c1 FROM sch1.tab2@dblink) t2
    ON (t1.c1 = t2.c1)
    WHEN NOT MATCHED THEN
    INSERT (t1.c1,t1.c2,t1.c3)
    VALUES (t2.c1,t2.c2,t2.c3);The MERGE statement is taking more than 2 mins (and I stopped the execution after that). I removed the WHERE clause subquery inside the subquery of the USING section and it executed in 1 sec.
    If I execute the same select statement with the WHERE clause outside the MERGE statement, it takes just 1 sec to return the data.
    Is there any known issue with MERGE statement while implementing using above scenario?

    riedelme wrote:
    Are your join columns indexed?
    Yes, the join columns are indexed.
    You are doing a remote query inside the merge; remote queries can slow things down. Do you have to select all thr rows from the remote table? What if you copied them locally using a materialized view?Yes, I agree that remote queries will slow things down. But the same is not happening while select, insert and pl/sql. It happens only when we are using MERGE. I have to test what happens if we use a subquery refering to a local table or materialized view. Even if it works, I think there is still a problem with MERGE in case of remote subqueries (atleast till I test local queries). I wish some one can test similar scenarios so that we can know whether it is a genuine problem or some specific problem from my side.
    >
    BTW, I haven't had great luck with MERGE either :(. Last time I tried to use it I found it faster to use a loop with insert/update logic.
    Edited by: riedelme on Jul 28, 2009 12:12 PM:) I used the same to overcome this situation. I think MERGE needs to be still improved functionally from Oracle side. I personally feel that it is one of the robust features to grace SQL or PL/SQL.

  • What the hell is going on with my MERGE statement

    Hi Guys,
    I maybe posted this to the wrong forum - appreciate it if you would take a look and let me know what you think.
    What the hell is going on with my MERGE statement
    Regards,
    Mark.

    The problem exists in the statement in bold. The inline view of the merge
    returns 11808 rows and should only perform 11808 lookups on the index
    on TBL_INSTRUMENT to determine whether or not to insert a row. It is
    doing 1393981363 !!Do you have accurate statistics on these tables? Have you got histograms on skewed columns?
    Also, given that you are only acting on WHEN NOT MATCHED are you sure MERGE is the way to go? A straightforward insert driving off a NOT EXISTS sub-query or an anti-join might be a much better approach.
    Cheers, APC
    Blog : http://radiofreetooting.blogspot.com/

  • Managing the first application of the MERGE statement in an ETL logic - SQL Server 2012

    Hi,
    in order to feed a fact table of a dwh from a staging table I'm using the MERGE statement in order to control insert and update operations. It is possible that the staging table has duplicate rows respect to the fields controlled in the merge condition:
    when I run the first time the MERGE statement unwanted rows could be inserted in the fact table.
    Does the MERGE statement allow to manage this case or do I need to filter data from the staging table before to write them into the fact table?
    Many thanks

    Hi Anuj,
    thank for your reply. Unfortunately the DISTINCT in the using clause isn't enough for my case: I need to read a subset of fields of a staging table and for this subset I could have duplicate rows, but also I need to the change date of the rows inserted in
    the staging table and I cannot include this date in the distincted columns.
    However the answer is that I need to handle the staging data before to write them into the fact table.
    Thanks
    Yes
    One more thing to note is when running MERGE statement subsequently in case there are multiple records which matches the update criteria then default behavior of MERGE is to throw an error indicating that it tried to update same record twice.
    So in any case you need to make sure you eliminate duplicates before applying MERGE over it at first.
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • Can you explain this error message with MERGE statement

    Here is the code that gives me headache.
    I give you the description of the two tables involved and the error message I get when I run a simple MERGE statement
    SQL> desc employees
    Name Null? Type
    EMPLOYEE_ID NOT NULL NUMBER(6)
    FIRST_NAME VARCHAR2(20)
    LAST_NAME NOT NULL VARCHAR2(25)
    EMAIL NOT NULL VARCHAR2(25)
    PHONE_NUMBER VARCHAR2(20)
    HIRE_DATE NOT NULL DATE
    JOB_ID NOT NULL VARCHAR2(10)
    SALARY NUMBER(8,2)
    COMMISSION_PCT NUMBER(2,2)
    MANAGER_ID NUMBER(6)
    DEPARTMENT_ID NUMBER(4)
    SQL> desc emp2
    Name Null? Type
    EMPLOYEE_ID NOT NULL NUMBER(6)
    FIRST_NAME VARCHAR2(20)
    LAST_NAME VARCHAR2(25)
    1 MERGE INTO emp2 e2
    2 USING employees e
    3 ON (e2.employee_id = e.employee_id)
    4 WHEN MATCHED THEN
    5 UPDATE SET
    6 e2.employee_id = e.employee_id,
    7 e2.last_name = e.last_name,
    8 e2.first_name = e.first_name
    9 WHEN NOT MATCHED THEN
    10 INSERT VALUES
    11 (e.employee_id,
    12 e.last_name,
    13* e.first_name)
    14 /
    ON (e2.employee_id = e.employee_id)
    ERROR at line 3:
    ORA-00904: "E2"."EMPLOYEE_ID": invalid identifier
    Any responce much appreciated

    Hi,
    Columns going to be updated should not be in 'ON clause' , try to delete the line 6 of your query. By the way, there isno sense to update e2.employee_id = e.employee_id when matched, the equality is already verified.
    Nicolas.

  • Issue with Oracle Merge statements (PL/SQL: ORA-00913: too many values)

    Hi All,
    I am using the below merge statement and I am getting too many rows issues when I am compiling.
    BEGIN
    FOR te_rec IN ( SELECT /*+ parallel(ts,4) */ te.dtv_acct_num FROM telcos_eligible te, telcos_setup ts, telcos_partners tp
    WHERE tp.telcos_name = UPPER((p_telcos_name))
    AND ts.partner_id = tp.partner_id
    AND te.ts_id = ts.ts_id ) LOOP
    MERGE INTO tcs_accounts
    USING (
    SELECT /*+ DRIVING_SITE(a) */account_id, a.subscriber_id, status, account_type FROM account@tcs_to_paris a WHERE a.subscriber_id = te_rec.dtv_acct_num
    ) paris_accounts
    ON (tcs_accounts.subscriber_id = paris_accounts.subscriber_id)
    WHEN MATCHED THEN
    UPDATE SET
    account_type = paris_accounts.account_type,
    subscriber_id = paris_acounts.subscriber_id,
    status = paris_accounts.status
    WHEN NOT MATCHED THEN
    INSERT(account_id, subscriber_id, status_account_type)
    VALUES(paris_accounts.account_id, paris_accounts.subscriber_id, paris_accounts.status, paris_accounts.account_type);
    END LOOP;
    END;
    Can you let me know what is the issue here.
    Thanks,
    MK.

    Hi,
    Maddy wrote:
    ... WHEN NOT MATCHED THEN
    INSERT(account_id, subscriber_id, status_account_type)
    VALUES(paris_accounts.account_id, paris_accounts.subscriber_id, paris_accounts.status, paris_accounts.account_type);This is one of the many times when a little formatting can really help you. Anybody can forget a column (or have an extra one, or type a _ when they mean ,) but if you write code like this
    INSERT (               account_id,                 subscriber_id,                                  status_account_type)
    VALUES (paris_accounts.account_id,  paris_accounts.subscriber_id,  paris_accounts.status,  paris_accounts.account_type);you might spot the error yourself.
    Always format your code. When you post any formatted text on thsi site, type these 6 characters:
    \(small letters only, inside curly brackets) before and after formatted text, to preserve spacing.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • The Problems With Logic (as I see them) - PART TWO!

    Hello again,
    It seems to be a tradition now that as I compose on a track, I keep a text editor open so that I can jot down all the annoyances and problems that I encounter during my creative process... Anyone who missed the previous edition of this topic, please visit PART ONE, here:
    http://discussions.apple.com/message.jspa?messageID=3605456#3605456
    That said, here I give you "The Problems With Logic Part II":
    1. Logic should clear the playback buffer everytime you play. Quite often you start playing and there is trailing reverb/note events from various audio instruments and plug-ins.
    2. The sample edtor "save selection as" has no memory of where you previously were in the file browser.
    3. If you double click on a wave form, the sample editor opens up with the wave form you double clicked on... Great.. But now, if you go and double click on another wave form somewhere, it just takes you back to the sample editor with the same previous wave form selected (not great). This is incredibly annoying if you are attempting to save out certain edits-- Quite often you will end up saving 5 or 6 of the same exact waveform, thinking you were saving each individual one. GRR!
    4. Key commands.. if you try to assign a key command to something that is already used by another feature, you are presented with a window warning you that it already exists.. If you click cancel, then you can no longer enter any keys in the key field.. You are forced to close the key commands preferences window and start over.
    5. Key command window: You should be able to search by command.. For example, if I want to find out what "o" is assigned to, I should be able to search by O-- Further, you should be able to sort the key commands by clicking the column titles "key", "command" -- or "midi"... After all, we can sort by name, date, size, etc in the finder by clicking on these column titles.
    6. Tempo Tap feature-- I am quite confused by this. There should be a simple way to tap and define a tempo. When ever i try to do this, the tempo is only temporarily changed until I stop playing, and most of the time I get error alerts about trying to sync audio and midi (mind you, when there are absolutely no parts in the entire arrange window). The manual states that with "tempo recording" checked on the tempo interpreter window, that the taps will record tempo changes, but this does not work. I tried doing this, tapping the key command I defined to tempo tap (ctrl-shift-t), and I was tapping at various speeds-- many taps fast.. and Logic recorded tempos of 99-101bpm.. I was tapping atleast around 175-180bpm. I then tried tapping slowing, and Logic recorded tempos of 99-101 again... so this feature obviously is full of bugs.
    7. When loading songs, as soon as various plugins such as Kontakt, exs24 begin loading samples, it brings logic to the front. If you're working in the background in other applications while waiting for your songs to load, you are rudely interrupted from what you're doing (such as, selecting from a menu, typing a document, etc) only to be forced to watch a status bar fill up.. and then all key presses at that point become error beeps.
    8. Logic's sample memory easily becomes messed up and crazy. Quite often when using AU instruments such as BFD, Culture, and even Synthogy's Ivory. I will switch to that particular track to play on my keyboard, and each sample will be full of horrible pops and clicks-- the kind that destroy speakers. Other times, in a sample of a string for instance, all of a sudden after one second will be a pop and then the sample will be playing at a completely different pitch... I have to remove the AU instrument and reload it at this point.. This happens quite often. Logic should offer a 'buffer reset' so that you can just flash plugins but they reload whatever preset they were set to.
    9. Volume faders resolution are lame! There is no reason why you shouldnt be able to access +1.0, +1.1, +1.2, +1.3, +1.4, +1.5, +1.6, +1.7, +1.8, +1.9... Further the display is only so wide and you can't even read the decimal values for numbers -10 and lower. They just appear as 10.
    10. When a movie is open, and you are viewing the video output via FIREWIRE, there is a mini-floating window which contains the smpte, position, and movie start information-- However you cannot modify any of these values. You have to switch video output back to "WINDOW" to change the start position of the movie. This is obviously a bug.
    11. Changing the movie's start time is very user unfriendly. There should be a simple way to specify to start at a moment of time relative to SMPTE-- So you can just say "+9:15" for example, and it would take you in 9 minutes and 15 seconds, rather than how it is now where you have to think backwards from SMPTE code and subtract.
    12. You cannot view video as a window AND output to firewire. There is no reason why you shouldn't be able to do this. For example, if I wanted to output my video to a monitor in a vocal booth-- I can do this.. but I can't see what the vocalist is seeing on my own screen! This is just nonsense. You should be able to output to the screen (desktop mode or floating window) as well as an external firewire device.
    13. Saving a song with a movie open should mean that when you load that song, the movie should be up and exactly as it was prior to saving. As it is now you have to select "open movie again".
    14. There is still definitely a bug in track automation-- this was really bad back in version 4, but there is still something not quite right here where starting playback will not always guarantee that the automation data is being read.. And in my experiences it results in volumes being incorrect until you stop and play again, and in some cases it will not work at all unless you plot some automation points. This is an intermittent issue-- but quite often activated by placing an audio region from the audio window on a track (SEE VIDEO).
    WATCH VIDEO OF THIS BUG:
    http://collinatorstudios.com/www/logicbugs/logicautomationbug.mov
    15. In the arrange window, sometimes when zoomed in tightly, all parts on a track are selected, and you think that only the part that you are looking at is selected.. you move this part, and now all of your parts are off. Logic should have some kind of visual aid to let you know when ever you are moving multiple selections... Something like, the parts you are moving will highlight a dfferent color or something... This is a similar problem I have with the loop area of the screen.. You can accidentally turn it on when in the matrix window, and have no idea unless you look down at the transport, but with me for example, my transport is at the very bottom of the screen and I am not looking there most of the time.
    16. Automation data, when two points are semi-close to each other, suddenly the value of the data is no longer shown.. I can understand that when you are zoomed out, and there is simply no space for this to visually appear, that's appropriate. But as it is now, it doesn't display this information when there is plenty of space for it to be visible.
    17. Logic should let you set audio track inputs to the various outputs (1-2, 3-4, etc) and buses.
    18. clicking on a track selects ALL parts. This is so so so annoying. How many times have I been editing voice over, and selecting a track, thinking I am shrinking the length of a part, and to find that ALL parts have been shrunk.. SO ANNOYING!!!! This needs to not happen, and there should be a simple way to right-click a track and it will have an option "select all regions"... also, when you click on a track and all parts are selected, if you horizontally zoom, logic zooms into the beginning of the track, rather than the song locator. I don't know what the LOGIC behind this is, but it's not very helpful, it actually is very frustrating.. Zooming should always move towards the song locator position.
    19. EXS 24 should have a "reverse/backwards" button so that samples played are backwards.
    20. Logic should offer a way to globally increase or decrease a specific automation type (especially volume) globally for all tracks... So if you have detailed crescendos that start at -3.8 and end at +1.6, you can add 3db to this and it will now be at 0.8 and end at 4.6.
    21. If you have multiple tracks of the same track (such as three Audio track #1's)-- say you are recording guitar parts, and just copying the track and muting the previous track as a method of maintaining multiple takes for later auditioning. If you draw automation volume data on this track (it appears on all 3 tracks), and then if you delete the audio from one of the muted tracks and tell logic to KEEP it, suddenly all automation data is gone. GRR!!!
    22. Several times I have opened Kontakt, and attempted to load an instrument while outputting a movie via firewire video to my monitor. As soon as I try to load the instrument, the firewire video output on my monitor goes crazy, and then comes back on.. Logic then crashes. This has happened 3 times randomly...
    23. UNDO does not work on every function. for example, if you change an output to bus 1 instead of 1-2, you cannot undo this. Undo should undo whatever the last command was, no matter what it was. This is what the word LOGICal is supposed to represent.
    24. Floating windows (as in plugin windows) should close with apple-w!!!
    25. *BUG* If you are in a part that is say 10 measures long, zoom in horizontally 100% in the matrix window-- You then isolate one specific quarter note pitch in the middle of this measure, and have cycle turned on, looping over this one quarter note, if you are not looking at this note event/loop region when you hit play, the display will jump to the beginning of the part and never show you this note event as it loops. However if you have the note event on screen when you hit play, then it will behave properly. This makes it extremely difficult and frustrating to perform detailed hyper-draw work. (SEE VIDEO)
    WATCH VIDEO OF THIS BUG:
    http://collinatorstudios.com/www/logicbugs/logicloopbug.mov
    26. *BUG* Host Automation is not accurate. I assigned Kontakt's tune knob to C#000, and If I place a dip, the knob begins to move way before the automation data is even present.... So basically what I was trying to do, can't even be accomplished because Logic screws everything up by pitching the instrument too early... Such a shame.. By the way, I previously mentioned the importance of being able to display part data in the arrange window as matrix data (horizontal lines) rather than score data. Someone argued what good this would do-- Well this is a perfect example, if I am attempting to affect a particular section of a note with automation, I can't possible visually see where this is because the length is not described by the current score representation. Having a horizontal representation would solve this problem... (SEE VIDEO)
    WATCH VIDEO OF THIS BUG:
    http://collinatorstudios.com/www/logicbugs/logicctrlchngbug.mov
    27. There should be a way to convert stereo samples to mono in the sample editor.
    28. When you view "as text" in the environmentt, you cannot drag an object to the arrange window-- Such as to create a bus track.. Now mind you I don't know why you can't just select "BUS" when editing a track in the arrange window in the first place, however there is no reason why 'view as text' should behave differently than when it's viewed as icons.
    29. When you drag a bus from the environment to the arrange window, it replaces whatever track was there. It should ADD a track instead of replace-- atleast there should be a preference for how this behaves.
    30. Occasionally when dragging a bus from the environment, there is some visual garbage in the track automation (see screenshot).
    31. There should be a way to LOAD and SAVE selections in the arrange window. Quite often when editing audio from a countless number of parts/regions, it becomes painful when you have to select and move 100s of audio files. There should be a way that you can just select a ton of regions and save that selection, and reload it at anytime. There are a few 'select' tools/options under the edit window, however they are song specific-- not track specific. So they are completely usesless for what I need.
    32. Logic should offer a feature to collect sysex data from midi devices so that patch names show up and can be selected via program change.
    33. When no track or part is selected, and you vertically zoom in, Logic should zoom into the center most track.. It behaves very oddly and zooms in more towards the top. This becomes extremely annoying when dealing with a sequence involving 100 tracks, and a part is selected but you scroll far below where the part is.. When you begin to zoom in, it takes you towards the selected part, yet it's not displayed on the screen and you have no reference for what you are even looking at. The rule should be this: If the part is on the screen, zooming vertically will bring you to it. If it's off the screen, you will zoom into the center track of whatever is currently on the screen.
    34. I mentioned this in a thread earlier... http://discussions.apple.com/thread.jspa?threadID=752485&tstart=0
    There is a bug when using the transform tool involving the 'position' variable. In my example, I was attempting to reverse the time placement of three chords, that occured in a part somewhere in the middle of my song. By selecting the measure start and end of this part, Logic was unable to select or operate with the transform tool (and I tried a variety of transform options). If I moved this part to the beginning of the song, then the transform tool would suddenly work. After some research, I found online someone had said "Position Time position of the event, referenced to the start of the MIDI Region (not of the song)."--- But if I still doubt this is true, because I then placed the part on a new track with no other data, and placed it in the middle of the sequence and in the transform tool under position I selected '1 1 1 1' to '5 5 5 5' as well i tried setting the position to 'all', and none of this worked. This obviously is a bug... If it's not then it's a very serious design flaw. The position should relate to measure numbers of a song, and nothing else.
    WATCH VIDEO OF THIS BUG:
    http://collinatorstudios.com/video/transform.mov
    That is all for now...
    For those who firmly agree with me and all of the points that I have brought up now and in the past, I encourage you to contact Peggie Louie, (the Logic HR department contact) at (408) 996-1010 and suggest that she hire me as a consultant to help eliminate Logic's many annoyances. I have tried to pursue this heavily in the past, but sadly I was completely ignored by her on all levels. Maybe you all can help make a difference?
    Fighting the good fight,
    Patrick J. Collins
    http://collinatorstudios.com

    11. Changing the movie's start time is very user
    unfriendly. There should be a simple way to specify
    to start at a moment of time relative to SMPTE-- So
    you can just say "+9:15" for example, and it would
    take you in 9 minutes and 15 seconds, rather than how
    it is now where you have to think backwards from
    SMPTE code and subtract.
    For this one I'd suggest getting SMPTE calculator. Entering timecode numbers and having to add and subtract is not so difficult, and AFAIC part of a composer's gig. But what I would add, instead, is that it would be fantastic if Logic provided a timecode calculator (edit: even if it was in the form of a custom Logic widget).
    13. Saving a song with a movie open should mean that
    when you load that song, the movie should be up and
    exactly as it was prior to saving. As it is now you
    have to select "open movie again".
    This doesn't always happen. I've struggled with this for a long time, and I don't know why sometimes the movie will load and not other times. I would also add here that Logic should show the file pathname to the movie. Somewhere...
    18. clicking on a track selects ALL parts. This is
    so so so annoying.
    You can prevent this from happening if you have cycle turned on and set to a set of locators that "contain" the parts you might want to select en masse. I always work with cycle=on so this is not a problem.
    21. If you have multiple tracks of the same track
    (such as three Audio track #1's)-- say you are
    recording guitar parts, and just copying the track
    and muting the previous track as a method of
    maintaining multiple takes for later auditioning. If
    you draw automation volume data on this track (it
    appears on all 3 tracks), and then if you delete the
    audio from one of the muted tracks and tell logic to
    KEEP it, suddenly all automation data is gone.
    GRR!!!
    Never had that happen. In my experience, telling Logic to keep the data always works.
    23. UNDO does not work on every function. for
    example, if you change an output to bus 1 instead of
    1-2, you cannot undo this. Undo should undo whatever
    the last command was, no matter what it was. This is
    what the word LOGICal is supposed to represent.
    Undo in Logic is highly problematic for other reasons. Here, I think there should be a specific Environment Undo, just like there's a separate undo for audio edits.
    29. When you drag a bus from the environment to the
    arrange window, it replaces whatever track was there.
    It should ADD a track instead of replace-- atleast
    there should be a preference for how this behaves.
    Right. This is a matter of personal preference. But still there are other ways to get an object assigned to a track. The "thru tool", for instance. No dragging required.
    32. Logic should offer a feature to collect sysex
    data from midi devices so that patch names show up
    and can be selected via program change.
    My guess: considering how much sheer time it takes to write this kind of software, let alone debug it with every conceivable device, it's not likely this is going to happen.
    That is all for now...
    For those who firmly agree with me and all of the
    points that I have brought up now and in the past, I
    encourage you to contact Peggie Louie, (the Logic HR
    department contact) at (408) 996-1010 and suggest
    that she hire me as a consultant to help eliminate
    Logic's many annoyances. I have tried to pursue this
    heavily in the past, but sadly I was completely
    ignored by her on all levels. Maybe you all can help
    make a difference?
    Wait in line buddy!
    (LOL)
    I must say, I'm very impressed with your list and attention to detail. And I feel your pain, trust me. But many of the things you've listed are feature requests and not bugs. And some of the behaviors you've described I have yet to run across. So this is typical with Logic, that it can be operated in so many diverse ways that no two people run it in the same way, nor would two people conceive the program's capabilities in the same way. But I digress...
    I also think there's a certain amount of Logic convention that I don't think you've adopted yet, hence your wish for behaviors that don't yet exist.
    I don't disagree with most of your feature requests, and I'm (quite unfortunately) able to say that I'm familiar with most of these bugs and about 9 dozen more. But again, it's important to distinguish between bug, feature request, time to RTFM, and errant behavior that's experienced by a very limited number of users.
    There's no doubt that this program has its problems. In particular, your #1 re the playback buffer. And I'm glad you've brought many of the bugs into the light for people to read. Good work.

  • The problems with Logic (as I see them)

    Hello Everyone,
    Please keep in mind that I am writing this with the intention of expressing my frustrations, and what I feel would make Logic a better program. I realize not everyone will agree with the importance of what I say, but I am a firm believer of HAVING THE OPTIONS. Let the users choose what works for them and how they can best accomplish the tasks that they need to with their individual workflow.
    That being said, here is my list of Logic's faults and why I often call Logic "Illogic".
    General:
    * Logic should have a feature to automatically save your song every X number of minutes. Final Cut Pro does this, why doesn't Logic? It should prompt you "Logic can automatically save your project if you save it" (assuming the current file is 'autoload') to remind users that they should create a project name and save their work.
    * There should be a preference option for all windows to open as 'float'. Once upon a time holding option while double clicking parts would open them as a float (though having to hold down option every time in my opinion is an inconvenience, because I personally ALWAYS want my windows open as a float), however.. now in 7.2 that does not seem to work anymore. So, theoretically after you set your prefence to 'always float', then the when you hold option or control and click on a particular window, it will bring that window to the foreground...
    * The loop region at the top of the screen is larger than the time-line ruler tab. This is the #1 annoying thing about logic. so many times, I click on an area of the ruler tab to start playing at a specific section.. and somehow I ACCIDENTALLY click on the loop area... If I could ask for ANYTHING it would be that there is an option to disable LOOPING turning on and off from clicking up there. My 2nd request would be that the ruler tab be re-sizeable so that it can be larger than the loop area. This is especially the case for the matrix window where it default opens up to a sizing where the actual time line is so tiny, and the loop region is HUGE.... Every time I open a matrix window I have to resize this and again the loop area is 2x as big as the timeline area, so I end up wasting screen space just to avoid the annoying loop feature being trued on. My suggestion is, require that the loop button on the transport be the only way to turn on the loop feature (other than key commands), and only when it's turned on can loop points to be set. Why is the loop area so big anyway?!?!
    * Logic should offer a TALK BACK MIC button which will utilize the built-in apple microphone or iSight microphone and allow that to be sent to the audio interface. This would be an extremely useful feature for studio recording setups.
    * Starting logic takes approximately 5 minutes for me. It says "scanning exs24 instruments" for the majority of the time, and I admit my sample library is huge. however, my sample library has not changed in over a year. Why does logic have to continuously scan it??? Can it not make a reference of how many files, compare and if its larger-- then scan???
    Song Loading:
    * When audio files are not found during loading a song, it asks you the first time what you want to do "search", "manual", and "skip"... if you click "skip", and then it finds another missing file, it no longer presents you with the "SKIP" option.. but forces you to either search or skip all.. Let's say you have a project that used 5 audio files that are all missing because you had them on a different hard drive, but have copied the data somewhere else. The first two files it asks for you don't need.. but you know where the 3rd file is.. So your plan is to skip the first two files and then click manually for the 3rd.. but oh.. YOU CAN'T DO THAT! You have to find your first 2 files if you want to even have the option to locate your 3rd file... Unless you are planning to locate the files within the audio window-- but still, Logic should not be so unfriendly.
    Further, If you choose "manual", and what you're looking for isn't where you thought it was-- You realize you actually want to search for it.. So you click cancel and guess what.. It assumes you want to skip it, and so you either have to reload your project again, or deal with this in the audio window. Bottom line is this window should always have "Search", "Manual", "Skip", and "Skip All".
    * When you open another project, Logic DUMPS all of the audio instrument data in memory. This is one of the worst things about logic. If you are working between multiple files-- such as when scoring a film, and you are using different files for different cues, then this becomes a complete nightmare and a waste of your time. Logic should be assessing "What instruments are in common between these two projects"... And utilizing all audio instruments to the best of the machine's memory capacity. There is no reason for Logic to behave like this.. I've had to revert back to previous versions of the same song because some data was different, and I am just trying to visually compare various settings one from the other.. Just clicking from one project's window to the other requires me to have to wait 3-4 minutes while Logic loads all these audio instruments (WHICH ARE IDENTICAL IN BOTH PROJECTS BY THE WAY!!!).. This is just incredibly dumb, and creatively stifling.
    * BUG * -- Mind you, if you have two projects open, and you close one.. Logic begins loading all the audio instruments of the remaining project.. If you close that project as it's loading audio instruments, Logic will crash.
    Matrix Stuff:
    * BUG * If you have a part with lots of notes, and you begin to make a selection and scroll horizontally through all the content until then entire part is covered in the selection... After you release the mouse button and make this selection, quite often many random notes are unselected. This can be demonstrated by watching the following quicktime move:
    http://www.collinatorstudios.com/video/logicbug.mov
    * When you select a single note in the matrix window, it sounds.. This is a GREAT feature... However, when you make a selection of multiple of notes, they all sound at the same time.. This is just plain dumb. It once blew up my speakers... There is NO reason why a multiple selection would need to sound.. It's just dumb.. bad for your speakers, bad for your ears. The rule should be, if selection box = yes, then sound = no... else, sound = yes.
    * When viewing the matrix window while recording, all note events disappear until after recording stops. This is highly annoying (and illogical) as it causes confusion if you are relying on watching the note events in that part to know where you are supposed to come in.
    * The grid cannot be set to divisions other than 2 or 3. Musicians use 5 and 7!!! And also, can logic please offer an option to display the grid as NOTE symbols... It is much more musician friendly to see a 16th note with a 3 over it than "24". 24 means nothing to me as a musician.
    * Quantizing should allow custom input for tuplets.. So that users can quantize odd figures such as 13:4 for example.
    * If you move the song locator to a specific time location in the arrange window, and then double click a part to open it in the matrix window, the window is not opened to the locator's position. Thus causing annoyance and confusion as far as what the user is even looking at.
    * During horizontal scrolling of the window, the locator temporarily disappears, making it difficult to find where the locator is-- which usually is a marker for us to know what we are trying to find-- ESPECIALLY WHEN YOU OPEN A WINDOW AND IT'S NOT EVEN DISPLAYING THE SONG LOCATOR'S POSITION!!!
    * If you have two parts on the same arrange track, adjacent to each other and you enter the matrix window of the first part.. (assuming the link/chain icon is lit) When you scroll to the end of the note data, logic automatically takes you to the next part... The problem with this as it is, is that it does not take you to the FIRST note event of the text part, but rather continues to align the song locater with where ever it previously was (so you end up viewing somewhere further down in the next part).. To clarify, say you have a part what begins at MM-7 and ends at MM-14, the 2nd part begins at MM-15 and ends at MM-22.. If you begin scrolling the song locator past measure 15, then suddenly you see measure 22. When you really should be seeing measure 15. This is confusing and weird.
    * Every time you enter the matrix window of a part, the chain/link button is on. For me, this is incredibly annoying. There should be a way to set this so that the button's default is OFF...
    * When you move the mouse around the matrix window, whatever pitch corresponds to the vertical location of the mouse--- that particular key of the piano keyboard on the left side of the window should highlight so you could clearly see what note you are hovering over.. Logic tries to help with this by offering things like contrast options for C D E, but this clearly would be much more helpful.
    * With the velocity tool you can (MOST OFTEN ON ACCIDENT) double click on empty space in the window and cause all note events in all parts to appear on the screen-- Yet once you do this, you can't double click on a particular part's note to only display that part again. You have to switch to the arrow tool to do this. This is inconsistent and ILLOGICAL...
    ON A SIDE NOTE: PLEASE ENABLE A FUNCTION TO DISABLE THIS "ALL NOTES OF ALL PARTS APPEAR" when double clicking on empty space feature! I want NOTHING to happen when I double click within the matrix window... Make it a button within the window or just an option in the drop down menu only. * BY THE WAY * When you DO double click the background of the matrix window and multiple parts appear.. If you move notes of one part to match it up with other, it is incredibly slow. there is a 1-2 second pause each time you move a note move.. My g5 fan goes on each time I do this.. I'm sorry, there shouldn't be anything too CPU intensive to accomplish this simple task!!! I am only viewing 2 parts at the same time and it's slowing down my cpu...
    * Occasionally when I adjust note lengths, I accidentally double click on an actual note.. This opens the event list editor, and there is an intermittent bug where this note sounds-- and for some reason when the event list opens, the note sounds on top of itself a million times, so the result is a super loud flanged note which again, almost blows up my speakers and hurts my ears... PERSONALLY, I would like an option that DISABLES the note event list from opening by double clicking. Preferences currently has "double clicking a midi region opens: <selectable>"--- why not also have "double clicking a NOTE in matrix window does: <selectable>"-- and please allow "DO NOTHING" to be one of the options.
    * Why does the finger tool only change the end position of the note event??? Should this not be replaced with the bracket tool which appears automatically when using the arrow tool on closely zoomed in notes? This finger tool seems like an outdated old logic feature which has been replaced and improved upon. What would be nice is to have this bracket tool where we can be assured we are altering note start and end positions without moving things.
    * In the hyper-draw >> note velocity section--- This is highly annoying to work with... It's far from user friendly. first of all, to move a note's velocity position, you have to click on the "ball".. if you click on the line, it does nothing.. Because the ball is so small to begin with, quite often the user is going to miss the ball and somehow begin to "START LINE"-- Which is weird because it's activated by holding the mouse button down briefly. There really should be a "line tool" for this, because "START LINE" is too easily accidentally activated-- this is frustrating for the user. Most important though, these 'velocity markings' should be adjustable by clicking on the line as well-- not just the ball.. there should be a 2-3% area around each ball/line which logic will recognize as part of the ball/line so that it can easily be moved. I also feel that there should be some specific features for this section, such as a way to select multiple note velocities and apply a random pattern to them, or apply a logarithmic curve to the line tool. Yes, you can accomplish this stuff somewhat with the transform tool-- but this way would be more user friendly, and allow a lot more creative flow.
    Event list/Tempo list:
    * When one event is selected, by moving down X number, holding shift+clicking SHOULD select all events between those two points. However, the shift key for some reason acts as the OPTION key does in the finder-- (meaning it will only add one additional selection at a time).. This is highly inconsistent with the actual behavior of a Mac... Open a finder window and hold shift and click on items that are not vertically next to each other and a group is selected... Now do it in logic, and it causes GREAT frustration and annoyance. What happens if you have a million note events that you want to erase? You have to go page by page and click with shift on each one?? Or drag a selection and wait for logic to scroll you to where you want to go?????????? No thanks.
    Arrange stuff:
    * "REGIONAL CONTENT" (meaning the visual representation of note events) does not accurately depict the event data as note lengths cannot be visually identified. Everything shows up as a generic quarter note... My #1 suggestion is that regional content should be customizable so that you can view it in a miniature matrix data style. The biggest problem for me is that I cannot see where my notes end-- I can only see where they start, this makes it very difficult to identify what I am looking at.
    * Track automation data should only be inputable by the pencil tool. I cannot mention how many times automation data has accidentally altered when using the arrow tool. The pencil tool should allow you to raise and lower the lines reflecting automation data... What is the point using the pencil tool for automation if it's only function is to create "points" yet you can also create points with the arrow tool..??? Pencil tool should act as the arrow tool does in the sense that it raises or lowers automation data.
    * Recording preferences do not offer the option to automatically merge new part with existing part when a region is NOT selected. How annoying is it to have to select a part every time you want to record something just so it will be included in that original part!
    * Ruler at the top of the screen should also give an option for tuplets. 5, 7, etc.
    * When in record mode, if you click on the ruler to another time position, all audio instruments cut out and it takes approximately 3-4 seconds before tracks begin playing audio. This becomes very annoying if you are trying to do a pick up and want to just start 1 measure before hand.
    * There should be a way to EASILY (without having to cable two tracks together in the environment) temporarily link multiple tracks together so that automation data will be duplicated. So theoretically you can link 3-4 tracks together, and by adding automation data to one, you are adding it to all 4.
    * If a part is soloed, and you hit record. The part stops being soloed and you can no longer hear it. This makes it impossible to record a pick up on a soloed track unless it's locked, but it shouldn't need to be locked.
    * When you are zoomed in tightly, and you are trying to align notes within two parts on different tracks (meaning using the PSEUDO NOTATION DATA that appears in the part to align), there needs to be a VERTICAL line that snaps to the note closest to the mouse cursor. When trying to do this in parts that are a far vertical distance apart, it becomes VERY difficult to eye this alignment. Logic does this with automation data.. but for some reason they left it out for actual part alignment...
    * There should be a way to force the downbeat of a measure to occur at any given moment... What I mean by this, is composing for film is an absolute PAIN in Logic. Scenes, last for odd amounts of time, and Logic's reference manual claims that you can solve this by using various tempo tricks, however it is ineffective for the most part. What Logic needs is the ability where you can click on a drop down menu item within the arrange window and FORCE that where ever the song locator is, the rest of the measure is eliminated and a new measure downbeat occurs right there. This will allow you to always have new scenes on the downbeat of a measure without having to mess with your tempo and meter.
    Hyper Edit Window:
    * I can't even begin to comment on this... The hyper edit window is one of the worst things I have ever seen in a music/audio program. It is a horrible interface, you can't get it to do anything correctly without messing everything up. This thing needs a complete overhaul... I mean, just try to create a simple crescendo with note velocity and it will take you all night.. Try to add pitch bend data, and it adds note velocity data as well.. It's a total nightmare, and I would love to hear someone's practical application of this window.
    Score Window:
    * The method that the song position locator moves along with the notation is very strange. It is not at all how a person's eyes function when reading music. A much more logical approach to this would be for a transparent colored block of some type to highlight an entire measure, and each note head will glow as it sounds. The current way is so strange, it speeds up and slows down-- makes absolutely no sense, and it is more disruptive than anything.
    * When the Hyper Draw > note velocity area is exposed, if you use the velocity tool to increase/decrease a particular note's volume, the data in the hyper draw window does not update in real-time as you use the velocity tool. This behavior is inconsistent with the matrix > hyper draw's note velocity section-- where as in that area, the velocity ball/lines do update in realtime.
    EXS24:
    * when you are in many levels of subdirectories and you are auditioning instruments, it becomes very time consuming and annoying to have to continually trace through all the subdirectory paths. There should be a feature directly under the load instrument window that takes you to the subdirectory of the current instrument.
    * Seems when SONG SETTING > MIDI > "chase" is turned on... When starting sequences using audio instruments, (I am using a harp sample within the exs24), there is a latency hiccup upon starting, which is very disruptive when trying to listen to a short isolated moment in a composition. And I do want to chase note events in general-- but this present situation makes it difficult for me to work. I would suggest that you can specify tracks to exclude chasing.. Or fix the latency hiccup issue.
    Thank you.
    -Patrick
    http://collinatorstudios.com

    this is excellent patrick. can you number your points so that the thread can be discussed?
    1. yes
    2. ok
    3. great idea
    4. even better idea. you could set something up with aggreagate device i suppose but it would be better to have the feature to hand.
    5. you need to look into your project manager prefs. scan the paths and the links to the audio files will be saved meaning they will load up in a fraction of the time.
    6. yes this is nuts. you can skip all and sort it out with PM but then you shouldn't have to.
    7. this exists already. perhaps it ought to be a default but you need to set your esx prefs to 'keep common samples in memeory when switching songs'. then it will do just as you wish it to. you can also use the au lab in the devlopers kit which will allow you to load in au units etc seperately from logic, which logic can then access. this is a good way of getting around the 4 GB memory limit with logic too.
    8. ok, don't know about this bug.
    9. yep happens here too.
    10. doesn't worry me this one. you can turn off midi out.
    11. yes this is silly.
    12. well, i think this is something we can get used to. i am a musician and i am used to seeing '24'.
    13. you can already set up groove templates to allow for quantizing irrational tuplets. i do it all the time. i would like to see step input for irrational tuplets though.
    14. yes this is silly. the button for the KC 'content catch' is getting very worn out.
    15. ok.
    16. not sure i understand this one.
    17. yes this drives me nuts too. i have to lock screensets to get this to stay off.
    18. you can use KCs for 'go into/out of sequence' - but yeah.
    19. ok
    20. there are a couple of features that use old technology that cause hangs and poor performance. score is a good example of that. maybe the matrix is too. the score is being updated we assume with newer technology maybe the matrix will too.
    21. there are probably better ways of adjusting velocity than using matrix or hperdraw velocity. have you tried holding control-option and click dragging a note in score?
    22. as i pointed out in 20, this is an old feature. you could change things to be consistent with modern macs and annoy long term users such as myself, or leave them and let them be inconsistent to confuse newbies. i think depending on what it is we oldies could upgrade our work habits.
    23. this one doesn't worry me so much.
    24. good point (no pun intended).
    25. well, i find the opposite - that merging new parts to objects i have accidentally selected to be annoying. perhaps more detailed prefs?
    26. yep.
    27. this will be down to your audio settings. you can improve this lag but it will be dependant on the capabilities of your system.
    28. i don't know why this feature doesn't work in logic. it is supposed to have ti already and i just don't understand why it doesn't. maybe it will be fixed in the next upgrade.
    29. agreed.
    30. ok - i have other work flows for this but it would be nice.
    31. i don't agree that logic is a pain to score with to film, i do it nearly everyday. but you are discribing an interesting feature which might be worth discussing more. i think you might find yourself getting alarming and unmiscal results doing this that will end up having to be sorted out the conventional way. but its a good idea.
    32. oh yes.
    33. yeah - this could be improved.
    34. ok, well i wouldn't go about it this way, but yeah there is generally sticky spots with regards to updating of information al around logic.
    25. very very good idea.
    26. there are lots of problems with the chase function. very annoying. i certainly agree with this.
    in general, some of these could well be done as their own threads. some of the missing functionality may exist. if you can confirm a bug then you are on stronger ground when you submit feedback. but this list is full of fantastic ideas.

  • Problem in Merge statement

    Hi All,
    I am using merge statement to update 30000 records from the tables having 55 lacs records.
    But it is taking much time as i have to kill the session after 12 hours,as it was still going on.
    If,Same update i m doing using cursors,it will finish in less than 3 hours.
    Merge i was using is :-
    MERGE INTO Table1 a
    USING (SELECT MAX (TO_DATE ( TO_CHAR (contact_date, 'dd/mm/yyyy')
    || contact_time,
    'dd/mm/yyyy HH24:Mi:SS'
    ) m_condate,
    appl_id
    FROM Table2 b,
    (SELECT DISTINCT acc_no acc_no
    FROM Table3, Table1
    WHERE acc_no=appl_id AND delinquent_flag= 'Y'
    AND financier_id='NEWACLOS') d
    WHERE d.acc_no = b.appl_id
    AND ( contacted_by IS NOT NULL
    OR followup_branch_code IS NOT NULL
    GROUP BY appl_id) c
    ON (a.appl_id = c.appl_id AND a.delinquent_flag = 'Y')
    WHEN MATCHED THEN
    UPDATE
    SET last_contact_date = c.m_condate;
    In this query table 1 has 30000 records and table2 and table 3 have 3670955 and 555674 records respectively.
    Please suggest,what i am doing wrong in merge,because as per my understanding merge statement is much better than updates or updates using cursors.
    Required info is as follows:
    SQL> show parameter user_dump_dest
    NAME TYPE VALUE
    user_dump_dest string /opt/oracle/admin/FINCLUAT/udu
    mp
    SQL> show parameter optimizer
    NAME TYPE VALUE
    optimizer_dynamic_sampling integer 2
    optimizer_features_enable string 10.2.0.4
    optimizer_index_caching integer 0
    optimizer_index_cost_adj integer 100
    optimizer_mode string ALL_ROWS
    optimizer_secure_view_merging boolean TRUE
    SQL> show parameter db_file_multi
    NAME TYPE VALUE
    db_file_multiblock_read_count integer 16
    SQL> show parameter db_block_size
    NAME TYPE VALUE
    db_block_size integer 8192
    SQL> column sname format a20
    SQL> column pname format a20
    SQL> column pval2 format a20
    SQL> select
    2 sname     ,
    3 pname     ,
    4 pval1     ,
    5 pval2
    6 from
    7 sys.aux_stats$;
    sys.aux_stats$
    ERROR at line 7:
    ORA-00942: table or view does not exist
    Elapsed: 00:00:00.05
    SQL> explain plan for
    2 -- put your statement here
    3 MERGE INTO cs_case_info a
    4      USING (SELECT MAX (TO_DATE ( TO_CHAR (contact_date, 'dd/mm/yyyy')
    5                          || contact_time,
    6                          'dd/mm/yyyy HH24:Mi:SS'
    7                          )
    8                ) m_condate,
    9                appl_id
    10           FROM CS_CASE_DETAILS_ACLOS b,
    11                (SELECT DISTINCT acc_no acc_no
    12                FROM NEWACLOS_RESEARCH_HIST_AYLA, cs_case_info
    13                WHERE acc_no=appl_id AND delinquent_flag= 'Y'
    14                AND financier_id='NEWACLOS') d
    15           WHERE d.acc_no = b.appl_id
    16           AND ( contacted_by IS NOT NULL
    17                OR followup_branch_code IS NOT NULL
    18                )
    19           GROUP BY appl_id) c
    20      ON (a.appl_id = c.appl_id AND a.delinquent_flag = 'Y')
    21      WHEN MATCHED THEN
    22      UPDATE
    23           SET last_contact_date = c.m_condate
    24      ;
    Explained.
    Elapsed: 00:00:00.08
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)|
    | 0 | MERGE STATEMENT | | 47156 | 874K| | 128K (1)|
    | 1 | MERGE | CS_CASE_INFO | | | | |
    | 2 | VIEW | | | | | |
    | 3 | HASH JOIN | | 47156 | 36M| 5672K| 128K (1)|
    | 4 | VIEW | | 47156 | 5111K| | 82339 (1)|
    | 5 | SORT GROUP BY | | 47156 | 4236K| 298M| 82339 (1)|
    | 6 | HASH JOIN | | 2820K| 247M| 10M| 60621 (1)|
    | 7 | HASH JOIN | | 216K| 7830K| | 6985 (1)|
    | 8 | VIEW | index$_join$_012 | 11033 | 258K| | 1583 (1)|
    | 9 | HASH JOIN | | | | | |
    | 10 | INDEX RANGE SCAN | IDX_CCI_DEL | 11033 | 258K| | 768 (1)|
    | 11 | INDEX RANGE SCAN | CS_CASE_INFO_UK | 11033 | 258K| | 821 (1)|
    | 12 | INDEX FAST FULL SCAN| IDX_NACL_RSH_ACC_NO | 5539K| 68M| | 5382 (1)|
    | 13 | TABLE ACCESS FULL | CS_CASE_DETAILS_ACLOS | 3670K| 192M| | 41477 (1)|
    | 14 | TABLE ACCESS FULL | CS_CASE_INFO | 304K| 205M| | 35975 (1)|
    Note
    - 'PLAN_TABLE' is old version
    24 rows selected.
    Elapsed: 00:00:01.04
    SQL> rollback;
    Rollback complete.
    Elapsed: 00:00:00.03
    SQL> set autotrace traceonly arraysize 100
    SQL> alter session set events '10046 trace name context forever, level 8';
    ERROR:
    ORA-01031: insufficient privileges
    Elapsed: 00:00:00.04
    SQL>      disconnect
    Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    SQL>      spool off
    Edited by: user4528984 on May 5, 2009 10:37 PM

    For one thing, alias your tables and use that in the column specifications (table1.column1 = table2.column3 for example)...
          SELECT
             DISTINCT
                acc_no acc_no
          FROM Table3, Table1
          WHERE acc_no            = appl_id
          AND   delinquent_flag   = 'Y'
          AND   financier_id      = 'NEWACLOS'We don't know what your tables look like, what columns come from where. Try and help us help you, assume we know NOTHING about YOUR system, because more likely than naught, that's going to be the case.
    In addition to that, please read through this which will give you a better-er idea of how to post a tuning related question, you've not provided near enough information for us to intelligently help you.
    HOW TO: Post a SQL statement tuning request - template posting

  • Bulk collect forall vs single merge statement

    I understand that a single DML statement is better than using bulk collect for all having intermediate commits. My only concern is if I'm loading a large amount of data like 100 million records into a 800 million record table with foreign keys and indexes and the session gets killed, the rollback might take a long time which is not acceptable. Using bulk collect forall with interval commits is slower than a single straight merge statement, but in case of dead session, the rollback time won't be as bad and a reload of the not yet committed data will not be as bad. To design a recoverable data load that may not be affected as badly, is bulk collect + for all the right approach?

    1. specifics about the actual data available
    2. the location/source of the data
    3. whether NOLOGGING is appropriate
    4. whether PARALLEL is an option
    1. I need to transform the data before, so I can build the staging tables to match to be the same structure as the tables I'm loading to.
    2. It's in the same database (11.2)
    3. Cannot use NOLOGGING or APPEND because I need to allow DML in the target table and I can't use NOLOGGING because I cannot afford to lose the data in case of failure.
    4. PARALLEL is an option. I've done some research on DBMS_PARALLEL_EXECUTE and it sounds very cool. Can this be used to load to two tables? I have a parent child tables. I can chunk the data and load these two tables separately, but the only requirement would be that I need to commit together. I cannot load a chunk into the parent table and commit before I load the corresponding chunk into its child table. Can this be done using DBMS_PARALLEL_EXECUTE? If so, I think this would be the perfect solution since it looks like it's exactly what I'm looking for. However, if this doesn't work, is bulk collect + for all the best option I am left with?
    What is the underlying technology of DBMS_PARALLEL_EXECUTE?

  • Syntax for Merge statement to insert into target and update source

    Hello All,
    I want to use Merge statement to insert records when not matched in my target and update records in source when matched. Is it possible to do using Merge statement.
    create table a (aa number)
    create table b (bb number)
    alter table a add flg char(1)
    merge b as target
    using a as source
    on (target.bb = source.aa)
    when matched then
    update set source.flg = 'Y'
    WHEN NOT MATCHED THEN
    insert (target.bb)
    values
    (source.aa)
    Thanks.

    Hi,
    I have no idea about the version of DB, else some new features with respect version can be specified - just for informaitve purpose and to post across the verison of DB in future posts.
    Coming to your issue and requirement.
    if you check the syntax and functionality , then its on Merge on target base only - with respect to Update (matched o columns) and insert (for unmatched columns). Source - as the term is clear. It might not work out on source table.
    - Pavan Kumar N
    - ORACLE OCP - 9i/10g
    https://www.oracleinternals.blogspot.com

  • Re-doing complex Merge statement in OWB

    I have a complex merge written in sql that needs to be redone in owb.
    The code is something like this :
    MERGE INTO table_1
    USING (
    WITH u1 AS (SELECT STATEMENT 1....)),
    u2 AS (SELECT STATEMENT 2....)),
    u3 AS (SELECT STATEMENT 3....)),
    u4 AS (SELECT STATEMENT 4....)),
    u5 AS (SELECT STATEMENT 5....))
    SELECT *
    FROM (SELECT * FROM u1
    UNION
    SELECT * FROM u2
    UNION
    SELECT * FROM u3
    UNION
    SELECT * FROM u4
    UNION
    SELECT * FROM u5) a,b
    WHERE a.column1 = b.column1(+) ) table_2
    ON (table_1.id = table_2.id)
    when matched then update set....
    when not matched then insert...
    How do I implement some thing like above in OWB? Do i need to use pluggable mappings?
    any feedback would be of great help!
    Thanks
    Billu

    Hi Billu,
    no, you do not need pluggable mappings.
    Design your selects for u1 - u5 as required in one mapping. Then use a set operator (union) with 5 ingroups. Connect the results of your selects to each ingroup.
    Connect the output of the set operator to your target table table_1. Set loading type to insert/update (this will generate a merge statement). Use the column id for matching.
    Regards,
    Carsten.

Maybe you are looking for

  • Problems opening & resaving NEF files with CS3/CS2

    I seem to be having problems sending my NEF files to Photoshop from Aperture. This started happening just today & I'm not sure what to do. What happens is that when I open a NEF file in external editor, instead of just opening up as a psd file in CS3

  • [svn:bz-trunk] 15126: Removed NonHttpFlexSession that is not used anywhere in our code.

    Revision: 15126 Revision: 15126 Author:   [email protected] Date:     2010-03-30 01:48:55 -0700 (Tue, 30 Mar 2010) Log Message: Removed NonHttpFlexSession that is not used anywhere in our code. According to check-in notes, this class was introduced d

  • Portal server time out

    Hi EP 7.0, 4 instances, 1 dispatcher The below error is coming frequently in the portal server and it is really difficult to restart the production server every time. ERROR - "The iView has timed out. There is no cached content to display. Click 'Rel

  • Logic 9 metronome help!!!

    Hello all, I'm in a band where time is crucial to our live performance! Earlier we recorded some guitar backing tracks for our drummer to play to during live sets to eliminate the use of giving him a monitor and also to keep him in time. However, her

  • Mail -- Stuck in E-mail window -no return back

    Every time I enter in my Mail I get the standard Email window including only From, To, Subject and the Mail body fields data -and no buttons to get back to the Account mail list. Where did the Back?! button go? If I delete the message I get the previ