tables is (too) blocks

Hello
I have 2 paintings, which look like even if many lines occupies the space of the difference very
A table with about 3 records the milion and 10 columns to take ~ 28 000 blocks and is ~ 222 MB size
Table B with about 4.2 million records and 24 columns to take ~ 84 0000 crashes and is ~ 654 MB size
why he has this huge difference in them?
I expect the increase of ~ 40%, not 200%.
I would appreciate some advice on what I should check and if there is anything I can do about it;
Thank you
Rgds

UserMB wrote:
I'm not surprised, that is;
I'm surprised its more 200%, so my question of the orignal post;
Rgds

  1* select (28680      + (28680        )/3)*2 from dual
SQL> /

(28680+(28680)/3)*2
-------------------
              76480

Tags: Database

Similar Questions

  • Inserting data in the remote table takes too long

    Hello

    I have a table in the remote database and insert the data into this particular table... takes too long.

    Could you please advice me some tips for the DML can quickly...

    Concerning
    DAS

    That takes a lot of time, then don't you have an idea how can we send the data fast

    Buy more band witdth?

    No, honestly. As you can see, the quality of my answers match the quality of your question.

    You must locate the bottleneck, where is - this "too much" time has passed.

    Is it
    collection of data on the local side?
    net send?
    Actual insertion on remote site?
    Maybe you have a condition on the remote site, which causes the data sent to the remote side to local?

    Impossible to give advice without knowing anything about what is happening.

    Concerning
    Peter

  • NAT - table is too small

    Hello

    I have a 10/100 8-Port VPN Router RV082 and have configured the NAT table to allow remote users, but I encountered a problem. It seems that there are a limited number of listings that you can put in the table, 10, and I need to configure about 5 fps more.

    Did someone knows a way expand the NAT table, or you can also recommend a different router. I'd also add another router to the network, but I have little experience this.

    Thank you.

    Lisa Larson wrote:

    Hello,

    I have an RV082  10/100 8-Port VPN Router and have configured the NAT table to allow for remote users, however I've run into an issue. It seems like there is a limited number of entries that you can put in the table,10, and I need to configure about 5 more IPs.

    If you use the feature 1 to RV082 1 TAR, the 1-to-1 NAT table supports 10 entries, each of which can be a range of IP addresses.

  • It is possible to remove tables from a block of text?

    The command "anchored object marker" in the text (^ a) or grep (~ a) find any graphic in a kitchen but the tables are ignored.

    At Indesign a marker to find tables?

    Thank you

    Hi Camilo,

    You can do the following:

    Look for the Unicode code of the special character, representing the characters of the table in the search field of the Panel find/replace TEXT :

    <0016>

    Change to "nothing".

    The found table is deleted.

    Uwe

  • Table into multiple blocks of text

    I have a script that goes from page to page and the stories in a document divides the individual frames and I am trying to find a way to manage the tables that span several pages. As the "SplitStory" script that out there somewhere he copies the image and the glue to separate, but before doing so, he does things to avoid hyphenated words at the end of the frame. So, I have to be able to detect when the frame contains a table.

    The first image that contains an array has a value "Tables.Count" (sorry, VB not Java) but the following frames do not indicate that they have a table, or characters and only 1 insertion point.

    Y at - it something that I'm missing that would indicate that the frame contains the middle or the end of a table?

    Thank you

    Ken

    Hello

    Done SplitStory work with a tables as well, isn't?

    It does this by using the same procedure: duplicate an image and delete original (thread making this backward).

    To specify a parentTextFrame of a specific line, you can check this property to any object of this row.cells text, i.e.

    thisRow.cells [-1] .insertionPoints [-1] .parentTextFrames [0]

    (IE javascript)

    Jarek

  • Size of the table is too big Performance problem.

    Hello

    Suppose that we table that has about 160 columns inside. About 120 of these columns are Varchar data type with about size 100-3000 each column.

    This table has also about 2 million lines in there. I don't know if they are considered large tables of sizes?

    Like these tables a good representation of the data. I'm in doubt because the size of the table is very large and may take a long time for queries. We have about 10 indexes on this table.

    What kind of precautions should be taken when this kind of tables are involved in the database and they needed for the application.

    Version of database is Oracle 10.2.0.4

    I know that the question is a little vague, but I wonder what needs to be done and where I start digging the question just in case I have performance issues while trying to select the data or update the data.

    I also want to know if there are any size idle for tables and anything that is more that what needs to be treated differently.

    Thanking you
    Rocky

    Any table with more than 50 columns should be regarded with suspicion. This does not mean that it is appropriate for uses no tables with columns 120 or 220, but that doesn't mean that they are quite rare.

    Which doesn't bother me on your first paragraph is the number of columns of text with sizes of up to 3 K. It is very revealing of poor design. One thing is for sure... no one is a report and printing on what anyone smaller than a plotter.

    2 rows at point M is small by almost any definition so I wouldn't worry on this subject. Partitioning is an option, but only if the size of partition can translate to work with your queries and we have not seen any of them nor would we have no idea what you can use as a partition key or the type of partitioning so any intelligent discussion of this option would require a lot more information from you.

    There is no precaution that relate to what you wrote. You have told us nothing on the safety, use, volumes of transactions or any other important thing in such a review.

    What needs to be done in the future, is for someone who understands the normalization to look at this table, review the rules management, reviewing the purpose to which it will be put, and especially reports and the results that will come against her and no longer justify and change the structure. Then with an evaluation of the completed table... you must run SQL and examine the plans generated using DBMS_XPLAN and timing compared to your Service Level Agreement (SLA) with clients from the system.

  • RCD table becomes too big

    Hello

    Our table of rcd becomes larger (21 M records) and the questioning of this table takes a lot of time.

    What is the recommended method to keep the size of the table under control?

    We can always create a materialized view to get a subset of the table, so we can work with the more recent recordings. However, this does not resolve the problem of it gets bigger and bigger.

    Do you get purged or archived somehow?

    Thank you

    Khanh

    The utility of archiving of reconciliation should be able to help with this issue: http://download.oracle.com/docs/cd/E14899_01/doc.9102/e14761/reconarchive.htm#sthref91

    Hope this helps
    / Martin

  • Table header row gets cut off from view when the text block is resized

    I'm designing a table that has a header row, 6 body rows and 5 columns. I want the header skewed to 20º and rotation type of needles from the same angle. Knows someone who worked with tables, it is not possible to rotate the text to this value via the parameters of the cell, but the job is to split the table into two blocks of text. The lower sash will be the body lines, but the Executive must have the header where it gets skewed to the specified angle. The text must be created in separate and then cut and paste frames in each column header and then it can be rotated.

    The problem I have is when I try to drag the bottom of the text block to the top while the header remains visible, the header gets cropped view. The only way to prevent it from is Cup is I leave the first line in the frame, but then it gets skewed is not what I want. It seems that the block of text ignores the header still exists. The screenshot below has two tables. The top version is the one that I want to apply the effect to. The bottom has the effect, but his top line is a line of body (not a header).

    Table_2.jpg

    I don't think that it is possible to have a heading row without at least a body line in the framework...

  • creating a table of blocks of text [AS2]

    Hello

    I want to create a table of text blocks.

    The code I use is.

    for (c=0; c<5; c++) {
        tf = ("test_txt"+c.toString());
        this.createTextField(tf, 10, c*20, 80, 40, 20);
    }
    
    a = [test_txt0, test_txt1, test_txt2, test_txt3, test_txt4];
    
    for (c=0; c<5; c++) {
        a[c].text = "foo " + c.toString();
        a[c].border = true;
        a[c].borderColor = 0x00FF00;
        a[c].textColor = 0x0000FF;
        a[c].size = 24;
    }
    

    The result I want from the code is 5 spead of frames of text on the stage, but only the last block of text is created.

    Untitled-4.png

    What is the right way to create the frames in a loop and then having accsesible in a table?

    Thanks in advance

    Trevor

    The second argument of the createTextField method is the depth.  If you keep by specifying the same depth, you replace whatever you place there whenever you assign to something new at this depth.

  • v4.02, in form of table, data are intermittent, when too old error selected sort

    I have a tabular presentation that correctly displays validation errors and highlight values to correct until a column is selected for sorting by the user. Then when changes made, the region of report does not display the line to operate. On the other hand, the region displays this error in a table box that says:

    The current data in a table are too old; the source data has changed.
    Click here to ignore your changes and reload the data from the database.

    I can choose another column for sort or go on another set of results, make changes to the validation fails and do the lines with errors, stressed once again. I have reproduced this issue for consideration.

    [http://apex.oracle.com/pls/otn/f?p=F33935:TEST]

    workspace: vmdbapex
    account user/dev: apextester
    PW: apextester

    I built this tabular form using the wizard page. Initially all columns were selected for display and editing. Using the attributes of the State page, I reorganized the display and off display for some of these columns. Change the date posted to invalid values to get validation errors.

    I don't see any error or the reason for this message is displayed in the debugger. The debugger does not indicate that it is still made this error box. There is another page in this app on the same table where never happens, the message too old. Where can I find or resolve the differences between these two pages?

    Thanks in advance,
    Kelly

    Hello

    It has validation controls - try entering the text in one of the numeric fields.

    However, I get the error you get if a column is sorted:

    Current tabular form data is too old; the source data has been modified.
    Click here to discard your changes and reload the data from the database.
    

    I think this should be listed as a bug

    Andy

  • How to move from records in a procedure with Table Type as a parameter block

    Hello

    How can I move all records in a block of PL/SQL procedure with argument of Type Table or Refcursor.

    I created a procedure in the backend with a parameter of Type table. Of the form, I want to call this procedure with the argument that ALL of the records in BULK.

    Y at - it a simple method for it.


    Thanks in advance

    Rizly

    Rizly,
    I recently put in place a level of forms audit process that uses this method very - package of database, which takes an array of Records as a parameter. Forms 10 G supports this nicely. We have sought to implement this through a set of database triggers (update, insert, delete) but due to our requirements, it was not the best place to do so that we have implemented this in forms.

    Brief history on my form. The main block was based on a table, and the block has been marked NOT can, Insert and Delete. If the user wants to insert, update, or delete a record they clicked on Insert, Update, or Delete button that opens a popup form where they seized a reason Code and a Description of the transaction and then clicked a button Save.

    Here's what I did.
    Database side *.
    1 package database with a Record of PL/SQL and PL/SQL records in the Table variable declared in the Package specification.
    2. create INSERT_?, warning? and DELETE_? package procedures to manage integration, updates and deletions.
    Secondary forms *.
    1 create a table (control) Non-Base with all fields block
    2. create a button that performs a loop on the block and all values assigns to the variable of records in the Table (ToR) forms (typed off the DB package)
    3. pass the ToR to the appropriate database package procedure.

    Here is an example of the code I wrote:
    Database side *.
    Package specifications * (Note: replace with your database schema name) also note, I use PL/SQL Developer with the PLDoc plug-in so I documentation tags in my code.

    CREATE OR REPLACE PACKAGE .Transaction_Log_pkg IS
    -- Package Global Variables
    -- ------------------------
    TYPE rec_T_Log IS RECORD (
        table_name          .transaction_log.table_name%TYPE
       ,trans_type          .transaction_log.trans_type%TYPE
       ,trans_key           .transaction_log.trans_key%TYPE
       ,action              .transaction_log.action%TYPE
       ,column_name         .transaction_log.column_name%TYPE
       ,old_value           .transaction_log.old_value%TYPE
       ,new_value           .transaction_log.new_value%TYPE
       ,trans_date          .transaction_log.trans_date%TYPE
       ,user_id             .transaction_log.user_id%TYPE
       ,reason_code         .transaction_log.reason_code%TYPE
       ,comments            .transaction_log.comments%TYPE
       );
    
    TYPE tbl_T_Log IS TABLE OF rec_T_Log INDEX BY BINARY_INTEGER;
    
       -- Insert_Record --------------------------------------------------------------------------------
       /** Procedure adds "INSERT" audting records in to the CIR.TRANSACTION_LOG table
       %param      p_t_log      TABLE_OF_RECORDS
       %desc       You can pass a single record or a group of records.  Allows you to package up all of
                   the values inserted in a table and send them to the Insert_Record procedure as a
                   group rather than as individual transactions.
       -- ---------------------------------------------------------------------------------------------- */
       PROCEDURE Insert_Record (p_t_log tbl_T_Log );
    
       -- Update_Record --------------------------------------------------------------------------------
       /** Procedure adds a "UPDATE" record(s) in the CIR.TRANSACTION_LOG table
       %param      p_t_log      TABLE_OF_RECORDS
       %desc       You can pass a single record or a group of records if more than one value in a row is updated.
       -- ---------------------------------------------------------------------------------------------- */
       PROCEDURE Update_Record (p_t_log tbl_T_Log );
    
       -- Delete_Record --------------------------------------------------------------------------------
       /** Procedure adds "DELETE" records in to the CIR.TRANSACTION_LOG table
       %param      p_t_log      TABLE_OF_RECORDS
       %desc       You can pass a single record or a group of records.  Allows you to package up all of
                   the values inserted in a table and send them to the Delete_Record procedure as a
                   group rather than as individual transactions.
       -- ---------------------------------------------------------------------------------------------- */
       PROCEDURE Delete_Record (p_t_log tbl_T_Log );
    
    END Transaction_Log_pkg;
    

    Package body *.

    -- Beginning of Package Body -------------------------------------------------------------------------
    -- ---------------------------------------------------------------------------------------------------
    CREATE OR REPLACE PACKAGE BODY .Transaction_Log_pkg AS
       -- Package EXCEPTIONS
       -- ------------------
       null_table              EXCEPTION;
       null_table_name         EXCEPTION;
       null_trans_type         EXCEPTION;
       null_trans_key          EXCEPTION;
       null_action             EXCEPTION;
       null_column_name        EXCEPTION;
       null_value              EXCEPTION;
       null_user_Id            EXCEPTION;
       null_reason_code        EXCEPTION;
       null_comments           EXCEPTION;
    
       -- Package Variables
       -- -----------------
       vErrMsg                 VARCHAR2(1000);
       vSQL                    VARCHAR2(2000);
    
       -- ----------------------------------------------------------------------------------------------
       PROCEDURE Insert_Record (p_t_log tbl_T_Log ) IS
    
       BEGIN
          IF ( NVL(p_t_log.COUNT,0) = 0 ) THEN
             RAISE null_table;
          ELSE
    
             FOR i IN p_t_log.first .. p_t_log.last LOOP
                vSQL := 'INSERT INTO .transaction_log (seq_no,table_name,trans_type,trans_key,action'
                            ||',column_name,old_value,new_value,trans_date,user_id,reason_code,comments)'
                            ||' VALUES (.TRANSACTION_NO_SEQ.nextval';
    
                -- Build Insert Statement
                IF ( p_t_log(i).table_name IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).table_name||'''';
                ELSE
                   RAISE null_table_name;
                END IF;
                IF ( p_t_log(i).trans_type IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).trans_type||'''';
                ELSE
                   RAISE null_trans_type;
                END IF;
                IF ( p_t_log(i).trans_key IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).trans_key||'''';
                ELSE
                   RAISE null_trans_key;
                END IF;
                IF ( p_t_log(i).action IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).action||'''';
                ELSE
                   RAISE null_action;
                END IF;
                IF ( p_t_log(i).column_name IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).column_name||'''';
                ELSE
                   RAISE null_column_name;
                END IF;
                IF ( p_t_log(i).old_value IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).old_value||'''';
                ELSE
                   vSQL := vSQL||',NULL';
                END IF;
                IF ( p_t_log(i).new_value IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).new_value||'''';
                ELSE
                   RAISE null_value;
                END IF;
    
                --transaction_date
                vSQL := vSQL||',sysdate';
    
                IF ( p_t_log(i).user_id IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).user_id||'''';
                ELSE
                   RAISE null_user_id;
                END IF;
                IF ( p_t_log(i).reason_code IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).reason_code||'''';
                ELSE
                   RAISE null_reason_code;
                END IF;
                IF ( p_t_log(i).comments IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).comments||'''';
                ELSE
                   RAISE null_comments;
                END IF;
    
                vSQL := vSQL||')';
    
                dbms_output.put_line('vSQL = '||vSQL);
    
                EXECUTE IMMEDIATE vSQL;
    
                vSQL := NULL;
    
             END LOOP;
    
             -- The COMMIT is intentionally left out to force the calling
             -- application to perform the commit and complies with the
             -- basics of encapsulation.
             -- ---------------------------------------------------------
    
          END IF;
    
       EXCEPTION
          WHEN null_table THEN
             vErrMSg := 'The p_t_log Collection cannot be null!';
             RAISE_APPLICATION_ERROR(-20990,vErrMsg);
          WHEN null_table_name THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20991,vErrMsg);
          WHEN null_trans_type THEN
             vErrMSg := 'Transaction Type cannot be null!';
             RAISE_APPLICATION_ERROR(-20992,vErrMsg);
          WHEN null_trans_key THEN
             vErrMSg := 'Transaction Key cannot be null!';
             RAISE_APPLICATION_ERROR(-20993,vErrMsg);
          WHEN null_action THEN
             vErrMSg := 'Action cannot be null!';
             RAISE_APPLICATION_ERROR(-20994,vErrMsg);
          WHEN null_column_name THEN
             vErrMSg := 'Column Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20995,vErrMsg);
          WHEN null_value THEN
             vErrMSg := 'Value cannot be null!';
             RAISE_APPLICATION_ERROR(-20996,vErrMsg);
          WHEN null_user_Id THEN
             vErrMSg := 'User ID cannot be null!';
             RAISE_APPLICATION_ERROR(-20997,vErrMsg);
          WHEN null_reason_code THEN
             vErrMSg := 'Reason Code cannot be null!';
             RAISE_APPLICATION_ERROR(-20998,vErrMsg);
          WHEN null_comments THEN
             vErrMSg := 'Comments cannot be null!';
             RAISE_APPLICATION_ERROR(-20999,vErrMsg);
       END Insert_Record;
       -- ------------------------------------------------------------------------------------------------
    
       PROCEDURE Update_Record (p_t_log tbl_T_Log ) IS
    
       BEGIN
          IF ( NVL(p_t_log.COUNT,0) = 0 ) THEN
             RAISE null_table;
          ELSE
    
             FOR i IN p_t_log.first .. p_t_log.last LOOP
                vSQL := 'INSERT INTO .transaction_log (seq_no,table_name,trans_type,trans_key,action'
                            ||',column_name,old_value,new_value,trans_date,user_id,reason_code,comments)'
                            ||' VALUES (.TRANSACTION_NO_SEQ.nextval';
    
                -- Build Insert Statement
                IF ( p_t_log(i).table_name IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).table_name||'''';
                ELSE
                   RAISE null_table_name;
                END IF;
                IF ( p_t_log(i).trans_type IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).trans_type||'''';
                ELSE
                   RAISE null_trans_type;
                END IF;
                IF ( p_t_log(i).trans_key IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).trans_key||'''';
                ELSE
                   RAISE null_trans_key;
                END IF;
                IF ( p_t_log(i).action IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).action||'''';
                ELSE
                   RAISE null_action;
                END IF;
                IF ( p_t_log(i).column_name IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).column_name||'''';
                ELSE
                   RAISE null_column_name;
                END IF;
                IF ( p_t_log(i).old_value IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).old_value||'''';
                ELSE
                   vSQL := vSQL||',NULL';
                END IF;
                IF ( p_t_log(i).new_value IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).new_value||'''';
                ELSE
                   RAISE null_value;
                END IF;
    
                --transaction_date
                vSQL := vSQL||',sysdate';
    
                IF ( p_t_log(i).user_id IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).user_id||'''';
                ELSE
                   RAISE null_user_id;
                END IF;
                IF ( p_t_log(i).reason_code IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).reason_code||'''';
                ELSE
                   RAISE null_reason_code;
                END IF;
                IF ( p_t_log(i).comments IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).comments||'''';
                ELSE
                   RAISE null_comments;
                END IF;
    
                vSQL := vSQL||')';
    
                dbms_output.put_line('vSQL = '||vSQL);
    
                EXECUTE IMMEDIATE vSQL;
    
                vSQL := NULL;
    
             END LOOP;
    
             -- The COMMIT is intentionally left out to force the calling
             -- application to perform the commit and complies with the
             -- basics of encapsulation.
             -- ---------------------------------------------------------
    
          END IF;
    
       EXCEPTION
          WHEN null_table THEN
             vErrMSg := 'The p_t_log Collection cannot be null!';
             RAISE_APPLICATION_ERROR(-20990,vErrMsg);
          WHEN null_table_name THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20991,vErrMsg);
          WHEN null_trans_type THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20992,vErrMsg);
          WHEN null_trans_key THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20993,vErrMsg);
          WHEN null_action THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20994,vErrMsg);
          WHEN null_column_name THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20995,vErrMsg);
          WHEN null_value THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20996,vErrMsg);
          WHEN null_user_Id THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20997,vErrMsg);
          WHEN null_reason_code THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20998,vErrMsg);
          WHEN null_comments THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20999,vErrMsg);
       END Update_Record;
       -- ------------------------------------------------------------------------------------------------
    
       PROCEDURE Delete_Record (p_t_log tbl_T_Log ) IS
    
       BEGIN
          IF ( NVL(p_t_log.COUNT,0) = 0 ) THEN
             RAISE null_table;
          ELSE
    
             FOR i IN p_t_log.first .. p_t_log.last LOOP
                vSQL := 'INSERT INTO .transaction_log (seq_no,table_name,trans_type,trans_key,action'
                            ||',column_name,old_value,new_value,trans_date,user_id,reason_code,comments)'
                            ||' VALUES (.TRANSACTION_NO_SEQ.nextval';
    
                -- Build Insert Statement
                IF ( p_t_log(i).table_name IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).table_name||'''';
                ELSE
                   RAISE null_table_name;
                END IF;
                IF ( p_t_log(i).trans_type IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).trans_type||'''';
                ELSE
                   RAISE null_trans_type;
                END IF;
                IF ( p_t_log(i).trans_key IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).trans_key||'''';
                ELSE
                   RAISE null_trans_key;
                END IF;
                IF ( p_t_log(i).action IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).action||'''';
                ELSE
                   RAISE null_action;
                END IF;
                IF ( p_t_log(i).column_name IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).column_name||'''';
                ELSE
                   RAISE null_column_name;
                END IF;
                IF ( p_t_log(i).old_value IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).old_value||'''';
                ELSE
                   vSQL := vSQL||',NULL';
                END IF;
                IF ( p_t_log(i).new_value IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).new_value||'''';
                ELSE
                   RAISE null_value;
                END IF;
    
                --transaction_date
                vSQL := vSQL||',sysdate';
    
                IF ( p_t_log(i).user_id IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).user_id||'''';
                ELSE
                   RAISE null_user_id;
                END IF;
                IF ( p_t_log(i).reason_code IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).reason_code||'''';
                ELSE
                   RAISE null_reason_code;
                END IF;
                IF ( p_t_log(i).comments IS NOT NULL ) THEN
                   vSQL := vSQL||','''||p_t_log(i).comments||'''';
                ELSE
                   RAISE null_comments;
                END IF;
    
                vSQL := vSQL||')';
    
                dbms_output.put_line('vSQL = '||vSQL);
    
                EXECUTE IMMEDIATE vSQL;
    
                vSQL := NULL;
    
             END LOOP;
    
             -- The COMMIT is intentionally left out to force the calling
             -- application to perform the commit and complies with the
             -- basics of encapsulation.
             -- ---------------------------------------------------------
    
          END IF;
    
       EXCEPTION
          WHEN null_table THEN
             vErrMSg := 'The p_t_log Collection cannot be null!';
             RAISE_APPLICATION_ERROR(-20990,vErrMsg);
          WHEN null_table_name THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20991,vErrMsg);
          WHEN null_trans_type THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20992,vErrMsg);
          WHEN null_trans_key THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20993,vErrMsg);
          WHEN null_action THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20994,vErrMsg);
          WHEN null_column_name THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20995,vErrMsg);
          WHEN null_value THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20996,vErrMsg);
          WHEN null_user_Id THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20997,vErrMsg);
          WHEN null_reason_code THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20998,vErrMsg);
          WHEN null_comments THEN
             vErrMSg := 'Table Name cannot be null!';
             RAISE_APPLICATION_ERROR(-20999,vErrMsg);
       END Delete_Record;
       -- ------------------------------------------------------------------------------------------------
    
    END Transaction_Log_pkg; -----------------------------------------------------------------------------
    -- ---------------------------------------------------------------------------------------------------
    

    Secondary forms * (all this coding was limited to the Insert, update or delete buttons.) The following example is the Insert button)

    /* When-Button-Pressed Trigger */
    DECLARE
         vBlockName     VARCHAR2(20) := 'REPORT_CATEGORIES';
         vBlockItem     VARCHAR2(61);
         vCurrItem      VARCHAR2(61);
         nRecCnt        NUMBER := 1;
    
         /* Here is where you create your Forms Variable TYPEd off the Package Table of Records (ToR) */
         /* Since it is a table of records, you could easily add multiple rows to the ToR if your form uses a multi-record block */
         p_tlog         cir.transaction_log_pkg.tbl_t_log;    
    
    BEGIN
         vCurrItem := vBlockName||'.'||Get_Block_Property(vBlockName,FIRST_ITEM);
    
         Go_Item(vCurrItem);
    
         -- 1. Endure each field if populated.
            -- 2. Check for Duplicates (Handled in W-V-I)
    
         IF ( Name_In(:system.Cursor_Item) IS NULL ) THEN
              --Fail the form at the field that is NULL
              send_alert.msg('s','All fields are required.  Please enter a unique value.');
              RAISE Form_Trigger_Failure;
         END IF;
    
         WHILE ( vCurrItem IS NOT NULL ) LOOP
              vBlockItem := :system.cursor_item;
    
              -- Loop through the block and CALL Insert_Record for each Block Item.
              /* 1 */ p_tlog(nRecCnt).table_name := vBlockName;
              /* 2 */ p_tlog(nRecCnt).trans_type := Name_In(vBlockName||'.CAT_TYPE');
              /* 3 */ p_tlog(nRecCnt).trans_key := Name_In(vBlockName||'.ID');
              /* 4 */ p_tlog(nRecCnt).action := 'INSERT';
              /* 5 */ p_tlog(nRecCnt).column_name := substr(vBlockItem,instr(vBlockItem,'.')+1,length(vBlockItem));
              /* 6 */ p_tlog(nRecCnt).old_value := NULL;
              /* 7 */ p_tlog(nRecCnt).new_value := Name_In(vBlockItem);
              /* 8 */ p_tlog(nRecCnt).trans_date := sysdate;
              /* 9 */ p_tlog(nRecCnt).user_id := :Global.userid;
              /*10 */ p_tlog(nRecCnt).reason_code := Name_In(vBlockName||'.REASON_CODE');
              /*11 */ p_tlog(nRecCnt).comments := Name_In(vBlockName||'.COMMENTS');
    
              vCurrItem := Get_Item_Property(vBlockItem,NEXTITEM);
              next_item;
              nRecCnt := nRecCnt + 1;
         END LOOP;
    
         -- 3. Insert
      -- Call TRANSACTION_LOG_PKG.Insert_Record
      -- --------------------------------------
      .transaction_log_pkg.insert_record(p_t_log => p_tlog);
    
         -- 4. Commit
         Commit;  
    
         -- 5. Clear Block
         Clear_Block(Ask_Commit);
    
         -- 6. Close Form
         Hide_Window('REPORT_CATEGORIES');
         -- 7. ReQuery RC_DISP Block
         Go_Block('REPORT_CATEGORIES_DISP');
         Clear_Block(No_Validate);
         Execute_Query;
         -- 8. Done
    END;
    

    I knew not when I started this process of forms if she was going to work because I tried to do something similar to this when I was working with Forms 6i and Oracle Enterprise Business Suite and Forms 6i supported not Ref Cursor and Table of documents very well so I didn't know at first if it would work. Search in forms documentation, I found that Forms 10 g has supported this type of functionality and this process works very well and it was surprisingly fast - at least in my usage, it is very fast. :)

    I hope this helps.
    Craig...

    If I or someone elses answer was useful, please mark accordingly

  • block based on two tables

    Hello

    There are three blocks: block 1 is based on two tables Table1 and Table2 block 2 is based on table 3.
    Block 1 includes the fields: when enter query for Sku: 123, then it should show more results.
    Sku       : 123       Price  : $100        Qty : 10   (Primary)
    Sub Sku   : 345       Price  : $110        Qty : 8   (Level 1)
    Sub Sku   : 456       Price  : $90         Qty : 12 (Level 2)
    If primary Sku is not available then substitute with level 1 and if level 1 is out of stock then replaced by level 2.
    Data of table 1:
    Client Sku       Sub_Sku    Level
    20     123        345         1
    20     123        456         2
    Data in table 2:
    Client    Sku     Price     Qty
    20        123      100       10
    20        345      110        8
    20        456      90        12
    I created the database based on the Table1 block and Table2.The problem I have is
    How to view price information and amounts Sku1 Sub and Sub Sku2. I intend to use the drop down menu to
    levels 1 and 2. When level 1 is selected, it will display all levels 1infor and so on.

    Thank you very much in advance
    Sandy

    Published by: sandy09 on August 13, 2009 12:42

    What is the difference between the block and block2. I thought that all the information you see comes from table 2?

  • 2 blocks from the database data insert into the same base table?

    Hello
    I have the C_NEW canvas. On this canvas, elements of 3 blocks are usable by the user.

    1 block NEW_HEAD: 3 Articles say X 1, X 2, X 3
    2 block NEW: record multi say Y1 thru Y10 text fields. Also a scroll bar.
    3 block NEW_ACTION: 6 buttons say B1 to B6 (one of them is N_OK which matches the element in question)

    two NEW, NEW_HEAD blocks are blocks of db and have the same basic so-called BT table when users click on the N_OK (after filling the data in the NEW_HEAD and then NEW block in that order), I need the data between the two the NEW, NEW_HEAD to enter the BT. currently only the NEW data goes to BT. in the BT table fields that correspond to the fields X 1, X 2, X 3 in the NEW_HEAD remains null after clicking on the N_OK button. I put commit_form in the N_OK code, since the blocks are blocks of db (as suggested by the people, it is easier to issue a commit_form that a lot more work in writing my own SQL).

    How can I achieve this?

    Thank you
    Chiru

    There is therefore no N_LC_DMG_ALLOW column in the table, that the block is the result. You must set the property "Section of the database" not for all the elements that are not of the columns in your database table.

    And when an error occurs, then the full treatment stops, so its clear that there is no inserted record.

  • tables of fixed size in FPGA compilation error - how to implement a waveform control in an FPGA?

    Hello

    After being stuck for two days, please let me briefly describe my project and the problem:

    I want to use the cRIO FPGA for iterative control of waveforms. I want to capture a full period of the waveform, subtracting a reference waveform period and apply control algorithms on this. Subsequently the new period of correction must be sent again for the output module OR. If it does not work, the captured waveform will look like the one reference after several iterations.

    I am planing to create an array of size fixed for the capture and the reference waveform (each around 2,000 items for a given period). I use so 2 paintings of each elements of 2000. I use the function 'replace the subset of table' to update each element captured in the loop sampling and a feedback for each table node to keep in memory (I also tried shift registers, but then the berries do not have a fixed size any more and I can't start the compilation process).

    If I try to compile the FPGA vi, I get the following error:

    Details:
    ERRORortability:3 - Xilinx this application runs out of memory or met a memory conflict.  Use of current memory is 4167696 KB.  You can try to increase physical or virtual memory of your system.  If you are using a Win32 system, you can increase your application from 2 GB to 3 GB memory using the 3 G switch in your boot.ini file. For more information, please visit Xilinx answer Record #14932. For technical support on this issue, you can open a WebCase with this project attached to http://www.xilinx.com/support.
    "Synthesize - XST" process failed

    Before I added berries to my code I could compile the FPGA without problems. So, it seems that the tables are too big for the FPGA. :-(

    Therefore, I would like to ask if there is perhaps a better method to implement my problem in LabVIEW FPGA? How could avoid the tables to save my waveforms on a period?

    Thanks a lot for your help in advance.

    Best regards

    Andreas

    Unfortunately, the LabVIEW FPGA compiler cannot deduct stores shipped from berries (yet). When you create these two large paintings, you are creating essentially several registers very, very large. Just by looking at your picture, I guess that there are at least 4 copies of each of the tables.

    You want to use LabVIEW FPGA memories instead. You can create memories outside the loop and then read/write them where you are currently referencing the berries. The only change that you really need to do is to break down your treatment in scalar operations. I have attached a simplified version of your plan, I hope it helps. Let us know if you have any other questions.

  • build the table when values change at run time

    Hi all

    I have a continuous stream of frequencies that continue to change during execution. I need to make a table of these values. I use the array build function. This option stores the first value only and the order of the day replaces the stored rather than settle down after that. I was going through the examples of labview and I think that by using the shift register can somehow solve this problem. However after an hour of futile play with lag, while loop records and build blocks table that I decided to post on this problem. I would like if someone can delete my concepts as well as a solution. The conceptual linkage is for what the first value to maintains have replaced. If I use the table of generation block the values that come should then fill the following vacant location logically. Instead, it replaces one only.

    You are right that I have simply the case that I warned the first sentence.

    Other methods require a certain amount of planning on the structure of data-handling. It is suggested at least...

    A better approach would be something like a circular buffer where you initialize an array of the desired size (for example 10000 items) and then start to replace the items. You can use the iterator of the loop you have to 'reduce' using quotient & reminder (which is the 'modulo' mathematical operation).

    hope this helps,

    Norbert

Maybe you are looking for

  • How do you get pictures stored in the photo library of iCloud?

    How do you get pictures stored in the photo library of iCloud? Richard Tucson

  • Tecra S1 becomes very hot - perhaps HDD?

    Hello together, my laptop gets very hot on the left hand of the touch pad,It seems to be the HARD drive right now it shows HDD temperature ° C / ° F 122a 50a. It wasn't at first when I bought the laptop. This problem is motivated to the cooling or th

  • Iconia B1 how can I move applications to the SD card

    I have a 16g micro SD card in my sons B1 but cannot move to it, downloaded apps2sd apps but it says that this will not work with this device. Also copy a picture on sd card on the pc but when I put the card in the B1, the photo shows on the internal

  • HP officejet 4500 G510n-z: impossible scan of pages of the computer

    I'm unable to scan pages from the computer. I replaced the 10 window XP operating system. In the 10 window it is not scanner in my hardware list.

  • upgrade to Windows 7 10

    Hello, I try the upgrade to windows 10 but time adaptation file showed a messege of error that must search online help, then configuration time has shown that the error again, then load my previous version please help me to download my upgrade to win