SAP Note regarding manually updating SQL tables

Hi all,
I know that under no circumstances should customers update their SQL tables using any method expect DTW or via SAP.
Is there an SAP Note on this subject.  I cannot find one anywhere?
Thanks
Greig

Check this SAP Note: 896891     Support Scope for SAP Business One - DB Integrity
[https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/smb_searchnotes/display.htm?note_langu=E&note_numm=896891]

Similar Messages

  • UPDATE statement not working when updating Z table

    Hi
    I have declared Ztable with fields MANDT, VKORG, VBELN, IDENTCODE and POSNR as key fields, other fields are FKDAT,KUNNR, NETWR, WAERK, SKFBP
    First I got the data from presentation server and moved into internal table 'A' and after that declared internal table with structure same as Z table and moving the data from presentation server internal table 'A' into this.
    After Endloop I am using statement
          UPDATE ZVS_INV FROM TABLE IT_INV.
         commit work.
    But  table is not getting updated and sy-subrc is returning to 4.
    What could be the reason...your help appreciated.

    howcan it make difference if the primary key is defined as per my business requirement
    Just because the business requirement 'says so', doesn't mean that's it's right.  You appear to be maintaining a Z-table with a subset of billing fields and appear to have 'over-specified' the primary key.
    As far as the help files, if you did look at them, I don't think you took the time to understand before just posting your problem here.  An UPDATE operation is a very simple operation.  You gave the answer to why it didn't work in your comments as Keshav already pointed out...

  • SAP NOTE REQUIRED FOR UPDATE TERMINATION WHILE POSTING GR SUBCONTRACTING

    Hi all,
    Please treat this as very urgent...
    below is the dump error analysis
    Runtime Error          SAPSQL_ARRAY_INSERT_DUPREC
    Except.                CX_SY_OPEN_SQL_DB
    Date and Time          25.06.2008 07:27:03
    User and Transaction
         Client.............. 800
         User................ "EDWIN"
         Language key........ "E"
         Transaction......... "MIGO "
         Program............. "SAPLKAUP"
         Screen.............. "RSM13000 3000"
         Screen line......... 2
    Information on where terminated
         The termination occurred in the ABAP program "SAPLKAUP" in "INSERT_TAB
         The main program was "RSM13000 ".
         The termination occurred in line 464 of the source code of the (Includ
          program "LKAUPF01"
         of the source code of program "LKAUPF01" (when calling the editor 4640
         The program "SAPLKAUP" was started in the update system.
         Processing was terminated because the exception "CX_SY_OPEN_SQL_DB" oc
          the
         procedure "INSERT_TABLES" "(FORM)" but was not handled locally, not de
          the
         RAISING clause of the procedure.
         The procedure is in the program "SAPLKAUP ". Its source code starts in
         of the (Include) program "LKAUPF01 ".

    hi buddy
    This kind of problem generally occures when you have not defined Number range. Please check the configuration. It may be due to insufficient catche memory. if so you may get it resolved with your basis person.
    regards
    kunal

  • Regarding value updates in Table V_T559D

    Hello,
    Can you please let me know, how to update a value in table V_T559D.
    The scenerio is like this :- We have to update the expiry of probation under no of deduction in Table V_T559D(Deliminate validity and deduction periods).
    Plz explain me the steps how to do this.
    rEGARDS

    Hi,
    Goto SM31, write V_T559D in the table/field.
    When the entries come to screen double click the one you wanna change and make the necessary modifications.
    Is this what you're asking for ?
    Regards,
    Dilek
    Edited by: Dilek Ersoz on Dec 18, 2008 7:44 AM

  • SAP Note 1304803 - Manual Deletion vs Changing Package to SDEL

    Good afternoon, Experts
    We're implementing this note and it is telling us to delete program TH_E070E but first it has us move it from package STRW to SDEL.  Package SDEL is labelled "Objects from SL Group Flagged for Deletion".
    My question is - Since we've moved the program into package SDEL have we in affect "deleted" it or do we have to go further and actually now delete it altogether???
    I'd appreciate any info you can share on this.
    Thanks,
    Chad

    Hello Chad
    Yes, you have to manually delete it using se38->delete.
    We did implement this note in our systems recently.
    As per note, first while deleting TH_E070E using se38, did it give any message like: STRW doesn't exist ?
    If yes, only then, I hope you have Changed Object Directory Entries, right ?
    Now, you have to delete it manually using SE38 and now it should not give you message 'STRW doesn't exist', and will ask you for access key, both for developer and the object. Get it done from service.sap.com and put the access keys, program will be deleted.
    thanks
    Bhudev

  • SAP note 1313079 manual implementations

    Hello everyone,
    please I would like to know if anyone faced the following problem:
    At this note, there are some manual implementations, after implementing the code corrections we have to define one more selection text (TAB_OUT) but I don't know where to put it.
    Which block from j_1befd_main_scr should I declare it?
    Any help would be appreciated.
    Thanks in advance.

    HEllo,
    To add the field do the following:
    1-Go to SE38.
    2-Type J_1BEFD_MAIN
    3-Click on TExt elements and then click on Display or Change
    4-Click in the tab "Selection Texts"
    5- Add the field according to the specifications.
    REgards,
    Renan Correa

  • Regarding SAP Note- Manual/Automatic Implementation.

    Hi Experts,
    We have few OSS Notes related to Archiving. Is there any thing specifically mentioned in the note about the type of implementation(Manual or Automatic). I mean ,how do we know whether a note should be implemented manually or automatically ,or both the ways.Generally if it is manual we should require an access key for manual implementation if automatic is not possible.Please correct me if i am wrong. Please suggest
    Best Regards,
    Lakshman

    Hi,
    please look at the item SOLUTION in the SAP note (immediately before the header data).
    There you can find all actions to do, actions before SNOTE, actions after SNOTE, ...
    But there are more problems if your notes need other related notes, which will be downloaded automatically.
    Look into all of them before implementing the SAP notes for manual actions!
    Regards,
    Klaus

  • Table for SAP NOTEs

    Hi friends!!
    May i know is there any table that gives any info about the NOTES .

    Hi deepika ,
    Pls see the following tables
    CWBNTVALID  Validity table for Notes
    CWBNTSTXT    Short text for a Note
    CWBNTMSG    SAP Notes Message Log
    CWBNTHEAD  Header table for OSS Notes in customer systems   
    CWBNTGATTR  Table for Any Note Attributes
    CWBNTDATA     Compressed data for OSS Notes
    CWBNTCI           Assignment of Note to correction instructions
    Regards
    Byju

  • How to select data from a PL/SQL table

    Hi,
    I am selecting data from database after doing some screening i want to store it in a PL/SQL table (temporary area) and pass it to oracle reports.
    Is there any way to select the data from a PL/SQL table as a cursor. Or is there any other way of holding the temporary data and then pass it back as a cursor.
    Regards
    Kamal

    A PL/SQL "table" is anything but a table. Whoever came up with this term in PL/SQL to describe what is known as dynamic arrays (the correct programming terminology that existed since the 70's if not earlier and what is used in all other programming languages I'm familiar with)... well, several descriptions come to mind and none of them are complimentary.
    You cannot "select" from a PL/SQL dynamic array as it is not a table within the Oracle context of tables.
    Thus you need to convert (cast) a PL/SQL dynamic array into a temporary Oracle data set/table in order to select from it. This is in general a Bad Idea (tm). Oracle tables and SQL and concurrency controls and all that are especially designed for processing data. PL/SQL arrays is a very simplistic data structure with very limited usage. Why would you want to use that in SQL via a SELECT statement when you can use Oracle tables (or proper temp tables) instead? Besides that, it is also slow to cast a dynamic PL/SQL array into an Oracle SQL data set structure (context switching, copying of memory, etc).
    The proper way to use PL/SQL to generate data sets for use via the SQL engine is pipelined table functions.
    This is not to say that you should never use PL/SQL arrays and casting in SQL.. simply that you need to make sure that this is the correct and scalable way to do it. And that will also always be an exception to the rule when you do.

  • Update a table using same variable name as the column

    I am not able to update a table column using a local variable which is having same name as the table column. Example of the function is as follows:
    create or replace function trial return integer as
    column1 integer:=99;
    BEGIN
    update firsttable set column1=column1 where column2='john';
    return 0;
    END;
    Existing data in firsttable:
    COLUMN1 COLUMN2
    123 xyz
    123 abcd
    101 john

    Unfortunately table aliasing won't help... Although specifying the procedure will. Somewhat academic I know, since if you can prefix the procedure name on the variable you can just as easily rename it, unless you happen to have a bunch of other code calling it using named notation possibly.
    SQL> select ename, comm from emp where empno = 7934;
    ENAME            COMM
    MILLER
    SQL> create or replace procedure new_comm
      2   (empno in number, comm in number)
      3  is
      4  begin
      5      update emp e
      6      set e.comm = new_comm.comm
      7      where e.empno = new_comm.empno;
      8      dbms_output.put_line('updated '||sql%rowcount||' rows!');
      9  end;
    10  /
    Procedure created.
    SQL> exec new_comm (7934, 100)
    updated 1 rows!
    PL/SQL procedure successfully completed.
    SQL> select ename, comm from emp where empno = 7934;
    ENAME            COMM
    MILLER            100Message was edited by:
    3360
    Colin beat me to it

  • How to type cast PL/SQL table to REF cursor?

    any one knows how to CAST PL/SQl table to Ref cursor?
    eg
    procedure some_name(r_out out sys_refcurosr)
    IS
    type t is table of tab%ROWTYPE;
    my_type t;
    begin
    select * bulk collect into my_type from tab;
    r_out := my_type; -- need help here..
    end;
    it's 10g

    ref cursor is pointer to result set. You can not cast to PL/SQL table.
    1 create or replace procedure some_name(r_out out sys_refcursor)
    2 IS
    3 begin
    4 OPEN r_out for select * from emp;
    5* end;
    SQL> /
    Procedure created.
    SQL> var mycursor refcursor;
    SQL> exec some_name(:mycursor);
    PL/SQL procedure successfully completed.
    SQL> set linesize 2000
    SQL> print :mycursor;
    EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    7369 SMITH CLERK 7902 12/17/80 00:00:00 800 20
    7499 ALLEN SALESMAN 7698 02/20/81 00:00:00 1600 300 30
    7521 WARD SALESMAN 7698 02/22/81 00:00:00 1250 500 30
    7566 JONES MANAGER 7839 04/02/81 00:00:00 2975 20
    7654 MARTIN SALESMAN 7698 09/28/81 00:00:00 1250 1400 30
    7698 BLAKE MANAGER 7839 05/01/81 00:00:00 2850 30
    7782 CLARK MANAGER 7839 06/09/81 00:00:00 2450 10
    7788 SCOTT ANALYST 7566 04/19/87 00:00:00 3000 20
    7839 KING PRESIDENT 11/17/81 00:00:00 5000 10
    7844 TURNER SALESMAN 7698 09/08/81 00:00:00 1500 0 30
    7876 ADAMS CLERK 7788 05/23/87 00:00:00 1100 20
    EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    7900 JAMES CLERK 7698 12/03/81 00:00:00 950 30
    7902 FORD ANALYST 7566 12/03/81 00:00:00 3000 20
    7934 MILLER CLERK 7782 01/23/82 00:00:00 1300 10
    14 rows selected.

  • Sap note index.

    hello all,
    from where i can find the index for all sap note,for mm module?
    every time i need to search sap service market place for different topic,i want to avoid this.
    i need  topic wise index of sap note.
    regards
    sumit simran

    You can trace it with the helo of the Tcode : SNOTE

  • ITunes: No option for manual update

    Hi All,
    I recently bought a new IPOD shuffle. I tried to install iTunes from the CD provided with the ipod, but it was giving some error at the end of installation. I have norton antivirus on my machine and Windows XP professional. Finally I downloaded iTunes from Apple's website(Version 6.0.5.20) and that worked. But this iTunes does not have manual update option.
    Then I used itune to transfer mp3 files on my CDs to the ipod. Ipod works fine. However when I dock ipod to get some other music files from different CDs, the songs from first CD are erased from my ipod.
    Could anybody please suggest some solution?
    Thanks,
    MYR.

    The iPod shuffle does not support the manual update option. You need to use a different model of iPod if you want to sync songs to it from two or more iTunes libraries, or if you want to put music on the iPod without keeping it in the iTunes library.
    (14053)

  • Office 2007 documents integration - SAP Note 1062725

    Hi,
    the SAP note regarding the comtability of Office 2007 - documents is gone. Why is that? Has it become irrelevant? Well, we still have this problem and I don't know what to do...

    Hi Danny,
    The note is currently in status 'Released for Customer' so it should be available at:
    [1062725|http://service.sap.com/~form/handler?_APP=01100107900000000342&_EVENT=DISPL_TXT&_NNUM=1062725]
    Regards, Lorcan.

  • Huge memory leaks in using PL/SQL tables and collections

    I have faced a very interesting problem recently.
    I use PL/SQL tables ( Type TTab is table of ... index by binary_integer; ) and collections ( Type TTab is table of ...; ) in my packages very widely. And have noticed avery strange thing Oracle does. It seems to me that there are memory leaks in PGA when I use PL/SQL tables or collections. Let me a little example.
    CREATE OR REPLACE PACKAGE rds_mdt_test IS
    TYPE TNumberList IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
    PROCEDURE test_plsql_table(cnt INTEGER);
    END rds_mdt_test;
    CREATE OR REPLACE PACKAGE BODY rds_mdt_test IS
    PROCEDURE test_plsql_table(cnt INTEGER) IS
    x TNumberList;
    BEGIN
    FOR indx IN 1 .. cnt LOOP
    x(indx) := indx;
    END LOOP;
    END;
    END rds_mdt_test;
    I run the following test code:
    BEGIN
    rds_mdt_test.test_plsql_table (1000000);
    END;
    and see that my session uses about 40M in PGA.
    If I repeat this example in the same session creating the PL/SQL table of smaller size, for instance:
    BEGIN
    rds_mdt_test.test_plsql_table (1);
    END;
    I see again that the size of used memory in PGA by my session was not decreased and still be the same.
    The same result I get if I use not PL/SQL tables, but collections or varrays.
    I have tried some techniques to make Oracle to free the memory, for instance to rewrite my procedure in the following ways:
    PROCEDURE test_plsql_table(cnt INTEGER) IS
    x TNumberList;
    BEGIN
    FOR indx IN 1 .. cnt LOOP
    x(indx) := indx;
    END LOOP;
    x.DELETE;
    END;
    or
    PROCEDURE test_plsql_table(cnt INTEGER) IS
    x TNumberList;
    BEGIN
    FOR indx IN 1 .. cnt LOOP
    x(indx) := indx;
    END LOOP;
    FOR indx in 1 .. cnt LOOP
    x.DELETE(indx);
    END LOOP;
    END;
    or
    PROCEDURE test_plsql_table(cnt INTEGER) IS
    x TNumberList;
    empty TNumberList;
    BEGIN
    FOR indx IN 1 .. cnt LOOP
    x(indx) := indx;
    END LOOP;
    x := empty;
    END;
    and so on, but result was the same.
    This is a huge problem for me as I have to manipulate collections and PL/SQL tables of very big size (from dozens of thousand of rows to millions or rows) and just a few sessions running my procedure may cause server's fall due to memory lack.
    I can not understand what Oracle reseveres such much memory for (I use local variables) -- is it a bug or a feature?
    I will be appreciated for any help.
    I use Oracle9.2.0.1.0 server under Windows2000.
    Thank you in advance.
    Dmitriy.

    Thank you, William!
    Your advice about using DBMS_SESSION.FREE_UNUSED_USER_MEMORY was very useful. Indeed it is the tool I was looking for.
    Now I write my code like this
    declare
    type TTab is table of ... index binary_integer;
    res TTab;
    empty_tab TTab;
    begin
    res(1) := ...;
    res := empty_tab;
    DBMS_SESSION.FREE_UNUSED_USER_MEMORY;
    end;
    I use construction "res := empty_tab;" to mark all memory allocated to PL/SQL table as unused according to Tom Kyte's advices. And I could live a hapy life if everything were so easy. Unfortunately, some tests I have done showed that there are some troubles in cleaning complex nested PL/SQL tables indexed by VARCHAR2 which I use in my current project.
    Let me another example.
    CREATE OR REPLACE PACKAGE rds_mdt_test IS
    TYPE TTab0 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
    TYPE TRec1 IS RECORD(
    NAME VARCHAR2(4000),
    rows TTab0);
    TYPE TTab1 IS TABLE OF TRec1 INDEX BY BINARY_INTEGER;
    TYPE TRec2 IS RECORD(
    NAME VARCHAR2(4000),
    rows TTab1);
    TYPE TTab2 IS TABLE OF TRec2 INDEX BY BINARY_INTEGER;
    TYPE TStrTab IS TABLE OF NUMBER INDEX BY VARCHAR2(256);
    PROCEDURE test_plsql_table(cnt INTEGER);
    PROCEDURE test_str_tab(cnt INTEGER);
    x TTab2;
    empty_tab2 TTab2;
    empty_tab1 TTab1;
    empty_tab0 TTab0;
    str_tab TStrTab;
    empty_str_tab TStrTab;
    END rds_mdt_test;
    CREATE OR REPLACE PACKAGE BODY rds_mdt_test IS
    PROCEDURE test_plsql_table(cnt INTEGER) IS
    BEGIN
    FOR indx1 IN 1 .. cnt LOOP
    FOR indx2 IN 1 .. cnt LOOP
    FOR indx3 IN 1 .. cnt LOOP
    x(indx1) .rows(indx2) .rows(indx3) := indx1;
    END LOOP;
    END LOOP;
    END LOOP;
    x := empty_tab2;
    dbms_session.free_unused_user_memory;
    END;
    PROCEDURE test_str_tab(cnt INTEGER) IS
    BEGIN
    FOR indx IN 1 .. cnt LOOP
    str_tab(indx) := indx;
    END LOOP;
    str_tab := empty_str_tab;
    dbms_session.free_unused_user_memory;
    END;
    END rds_mdt_test;
    1. Running the script
    BEGIN
    rds_mdt_test.test_plsql_table ( 100 );
    END;
    I see that usage of PGA memory in my session is close to zero. So, I can judge that nested PL/SQL table indexed by BINARY_INTEGER and the memory allocated to it were cleaned successfully.
    2. Running the script
    BEGIN
    rds_mdt_test.test_str_tab ( 1000000 );
    END;
    I can see that plain PL/SQL table indexed by VARCHAR2 and memory allocated to it were cleaned also.
    3. Changing the package's type
    TYPE TTab2 IS TABLE OF TRec2 INDEX BY VARCHAR2(256);
    and running the script
    BEGIN
    rds_mdt_test.test_plsql_table ( 100 );
    END;
    I see that my session uses about 62M in PGA. If I run this script twice, the memory usage is doubled and so on.
    The same result I get if I rewrite not highest, but middle PL/SQL type:
    TYPE TTab1 IS TABLE OF TRec1 INDEX BY VARCHAR2(256);
    And only if I change the third, most nested type:
    TYPE TTab0 IS TABLE OF NUMBER INDEX BY VARCHAR2(256);
    I get the desired result -- all memory was returned to OS.
    So, as far as I can judge, in some cases Oracle does not clean complex PL/SQL tables indexed by VARCHAR2.
    Is it true or not? Perhaps there are some features in using such way indexed tables?

Maybe you are looking for