Help needed  for nested  table

Hi ,
I have a function which returns nested table as result .The nested table can sometimes be null.So when i reference the first and last value for a loop, when table is null , then i am getting numeric value error .So i added a check on the nested table as below
if n_table is empty then
exit;
end if;
for i in n_table.first ..n_table.last
loop
select count(1) into_count
from x where rate=n_table(i);
end loop;
Now iam getting a message as" DANGLING NOT NULL OF".Though it gets compiled .iam getting everytime when i first compile it .Please let me know what should i add to prevent this

Null and empty are two different things. Also please post the complete error message.
Notice the difference between
DECLARE
    v_tab INTEGER_TT;
BEGIN
    IF v_tab IS NOT NULL THEN
        FOR i IN v_tab.FIRST..v_tab.LAST LOOP
            DBMS_OUTPUT.PUT_LINE('Loop iteration ' || i);
        END LOOP;
    END IF;
END;and
DECLARE
    v_tab INTEGER_TT := INTEGER_TT();
BEGIN
    IF v_tab IS NOT EMPTY THEN
        FOR i IN v_tab.FIRST..v_tab.LAST LOOP
            DBMS_OUTPUT.PUT_LINE('Loop iteration ' || i);
        END LOOP;
    END IF;
END;

Similar Messages

  • Help needed with nested tables

    I have two identical relations R and S defined as:
    CREATE TYPE table_typ AS TABLE OF VARCHAR2(8);
    CREATE TABLE R(
    a INTEGER,
    b table_type)
    NESTED TABLE b STORE as b_1;
    CREATE TABLE S(
    a INTEGER,
    b table_type)
    NESTED TABLE b STORE as b_2;
    Both have two tuples each:
    INSERT INTO r VALUES (1, table_type('a','b'));
    INSERT INTO r VALUES (2, table_type('d'));
    INSERT INTO s VALUES (1, table_type('b','c'));
    INSERT INTO s VALUES (3, table_type('e'));
    Would it be possible to write a query that "unions" R and S so that nested tables in tuples (in R and S) that agree on the A attribute are merged together, while tuples that do not agree on A still appear in the result? That is, the result I am looking for is:
    A B
    1 TABLE_TYPE('a','b','c')
    2 TABLE_TYPE('d')
    3 TABLE_TYPE('e')
    I've tried a simple union, but it does not work. Any help on this would be greatly appreciated.
    Thanks,
    Laura

    I don't have 10g, but the following is a 9i solution. I know there has to be a better way. About all I can say for the code below is that it works. I am only posting it because it is better than nothing, until somebody with 10g posts something better. I have included the stragg function by Tom Kyte.
    scott@ORA92> -- test data:
    scott@ORA92> CREATE OR REPLACE TYPE table_type AS TABLE OF VARCHAR2 (8);
      2  /
    Type created.
    scott@ORA92> CREATE TABLE r(
      2    a INTEGER,
      3    b table_type)
      4    NESTED TABLE b STORE as b_1
      5  /
    Table created.
    scott@ORA92> CREATE TABLE s(
      2    a INTEGER,
      3    b table_type)
      4    NESTED TABLE b STORE as b_2
      5  /
    Table created.
    scott@ORA92> INSERT INTO r VALUES (1, table_type('a','b'));
    1 row created.
    scott@ORA92> INSERT INTO r VALUES (2, table_type('d'));
    1 row created.
    scott@ORA92> INSERT INTO s VALUES (1, table_type('b','c'));
    1 row created.
    scott@ORA92> INSERT INTO s VALUES (3, table_type('e'));
    1 row created.
    scott@ORA92> commit
      2  /
    Commit complete.
    scott@ORA92> -- start of code from Tom Kyte:
    scott@ORA92> create or replace type string_agg_type as object
      2  (
      3       total varchar2(4000),
      4 
      5       static function
      6            ODCIAggregateInitialize(sctx IN OUT string_agg_type )
      7            return number,
      8 
      9       member function
    10            ODCIAggregateIterate(self IN OUT string_agg_type ,
    11                        value IN varchar2 )
    12            return number,
    13 
    14       member function
    15            ODCIAggregateTerminate(self IN string_agg_type,
    16                          returnValue OUT  varchar2,
    17                          flags IN number)
    18            return number,
    19 
    20       member function
    21            ODCIAggregateMerge(self IN OUT string_agg_type,
    22                      ctx2 IN string_agg_type)
    23            return number
    24  );
    25  /
    Type created.
    scott@ORA92> create or replace type body string_agg_type
      2  is
      3 
      4  static function ODCIAggregateInitialize(sctx IN OUT string_agg_type)
      5  return number
      6  is
      7  begin
      8        sctx := string_agg_type( null );
      9        return ODCIConst.Success;
    10  end;
    11 
    12  member function ODCIAggregateIterate(self IN OUT string_agg_type,
    13                             value IN varchar2 )
    14  return number
    15  is
    16  begin
    17        self.total := self.total
    18        || ','
    19        || value;
    20        return ODCIConst.Success;
    21  end;
    22 
    23  member function ODCIAggregateTerminate(self IN string_agg_type,
    24                               returnValue OUT varchar2,
    25                               flags IN number)
    26  return number
    27  is
    28  begin
    29        returnValue := ltrim(self.total,',');
    30        return ODCIConst.Success;
    31  end;
    32 
    33  member function ODCIAggregateMerge(self IN OUT string_agg_type,
    34                           ctx2 IN string_agg_type)
    35  return number
    36  is
    37  begin
    38        self.total := self.total || ctx2.total;
    39        return ODCIConst.Success;
    40  end;
    41 
    42 
    43  end;
    44  /
    Type body created.
    scott@ORA92> CREATE or replace
      2  FUNCTION stragg(input varchar2 )
      3  RETURN varchar2
      4  PARALLEL_ENABLE AGGREGATE USING string_agg_type;
      5  /
    Function created.
    scott@ORA92> -- end of code from Tom Kyte
    scott@ORA92> -- usage of above function:
    scott@ORA92> COLUMN c FORMAT A15
    scott@ORA92> SELECT a, stragg (column_value) AS c
      2  FROM   (SELECT t1.a, t1.column_value
      3            FROM   (SELECT r.a, c.column_value
      4                 FROM   r, TABLE (r.b) c) t1,
      5                (SELECT s.a, d.column_value
      6                 FROM   s, TABLE (s.b) d) t2
      7            WHERE  t1.a = t2.a
      8            UNION
      9            SELECT t1.a, t2.column_value
    10            FROM   (SELECT r.a, c.column_value
    11                 FROM   r, TABLE (r.b) c) t1,
    12                (SELECT s.a, d.column_value
    13                 FROM   s, TABLE (s.b) d) t2
    14            WHERE  t1.a = t2.a)
    15  GROUP  BY a
    16  UNION ALL
    17  SELECT a, stragg (column_value) AS c
    18  FROM   (SELECT t1.a, t1.column_value
    19            FROM   (SELECT r.a, c.column_value
    20                 FROM   r, TABLE (r.b) c) t1,
    21                (SELECT s.a, d.column_value
    22                 FROM   s, TABLE (s.b) d) t2
    23            WHERE  t1.a = t2.a (+)
    24            AND    t2.a IS NULL
    25            UNION
    26            SELECT t2.a, t2.column_value
    27            FROM   (SELECT r.a, c.column_value
    28                 FROM   r, TABLE (r.b) c) t1,
    29                (SELECT s.a, d.column_value
    30                 FROM   s, TABLE (s.b) d) t2
    31            WHERE  t1.a (+) = t2.a
    32            AND    t1.a IS NULL)
    33  GROUP  BY a
    34  /
             A C
             1 a,b,c
             2 d
             3 e

  • Help needed for SAP Tables Relationships

    Hi All,
    I am new to ERP and need help regarding standard SAP Tables.
    Please share the document that contains the details of SAP Tables and Standard SAP FM that are provided by SAP.
    All helpful answers will be rewarded.
    Regards,
    Udaya.

    Hi,
    Please go to the following link.
    http://www.erpgenie.com/abap/tables.htm
    http://www.erpgenie.com/abap/tables_sd.htm
    http://www.erpgenie.com/abap/tables_mm.htm
    http://www.erpgenie.com/abap/tables_fi.htm
    Regards
    Jean

  • Pagination query help needed for large table - force a different index

    I'm using a slight modification of the pagination query from over at Ask Tom's: [http://www.oracle.com/technology/oramag/oracle/07-jan/o17asktom.html]
    Mine looks like this when fetching the first 100 rows of all members with last name Smith, ordered by join date:
    SELECT members.*
    FROM members,
        SELECT RID, rownum rnum
        FROM
            SELECT rowid as RID
            FROM members
            WHERE last_name = 'Smith'
            ORDER BY joindate
        WHERE rownum <= 100
    WHERE rnum >= 1
             and RID = members.rowidThe difference between this and the one at Ask Tom's is that my innermost query just returns the ROWID. Then in the outermost query we join the ROWIDs returned to the members table, after we have pruned the ROWIDs down to only the chunk of 100 we want. This makes it MUCH faster (verifiably) on our large tables, as it is able to use the index on the innermost query (well... read on).
    The problem I have is this:
    SELECT rowid as RID
    FROM members
    WHERE last_name = 'Smith'
    ORDER BY joindateThis will use the index for the predicate column (last_name) instead of the unique index I have defined for the joindate column (joindate, sequence). (Verifiable with explain plan). It is much slower this way on a large table. So I can hint it using either of the following methods:
    SELECT /*+ index(members, joindate_idx) */ rowid as RID
    FROM members
    WHERE last_name = 'Smith'
    ORDER BY joindate
    SELECT /*+ first_rows(100) */ rowid as RID
    FROM members
    WHERE last_name = 'Smith'
    ORDER BY joindateEither way, it now uses the index of the ORDER BY column (joindate_idx), so now it is much faster as it does not have to do a sort (remember, VERY large table, millions of records). So that seems good. But now, on my outermost query, I join the rowid with the meaningful columns of data from the members table, as commented below:
    SELECT members.*      -- Select all data from members table
    FROM members,           -- members table added to FROM clause
        SELECT RID, rownum rnum
        FROM
            SELECT /*+ index(members, joindate_idx) */ rowid as RID   -- Hint is ignored now that I am joining in the outer query
            FROM members
            WHERE last_name = 'Smith'
            ORDER BY joindate
        WHERE rownum <= 100
    WHERE rnum >= 1
            and RID = members.rowid           -- Merge the members table on the rowid we pulled from the inner queriesOnce I do this join, it goes back to using the predicate index (last_name) and has to perform the sort once it finds all matching values (which can be a lot in this table, there is high cardinality on some columns).
    So my question is, in the full query above, is there any way I can get it to use the ORDER BY column for indexing to prevent it from having to do a sort? The join is what causes it to revert back to using the predicate index, even with hints. Remove the join and just return the ROWIDs for those 100 records and it flies, even on 10 million records.
    It'd be great if there was some generic hint that could accomplish this, such that if we change the table/columns/indexes, we don't need to change the hint (the FIRST_ROWS hint is a good example of this, while the INDEX hint is the opposite), but any help would be appreciated. I can provide explain plans for any of the above if needed.
    Thanks!

    Lakmal Rajapakse wrote:
    OK here is an example to illustrate the advantage:
    SQL> set autot traceonly
    SQL> select * from (
    2  select a.*, rownum x  from
    3  (
    4  select a.* from aoswf.events a
    5  order by EVENT_DATETIME
    6  ) a
    7  where rownum <= 1200
    8  )
    9  where x >= 1100
    10  /
    101 rows selected.
    Execution Plan
    Plan hash value: 3711662397
    | Id  | Operation                      | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT               |            |  1200 |   521K|   192   (0)| 00:00:03 |
    |*  1 |  VIEW                          |            |  1200 |   521K|   192   (0)| 00:00:03 |
    |*  2 |   COUNT STOPKEY                |            |       |       |            |          |
    |   3 |    VIEW                        |            |  1200 |   506K|   192   (0)| 00:00:03 |
    |   4 |     TABLE ACCESS BY INDEX ROWID| EVENTS     |   253M|    34G|   192   (0)| 00:00:03 |
    |   5 |      INDEX FULL SCAN           | EVEN_IDX02 |  1200 |       |     2   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    1 - filter("X">=1100)
    2 - filter(ROWNUM<=1200)
    Statistics
    0  recursive calls
    0  db block gets
    443  consistent gets
    0  physical reads
    0  redo size
    25203  bytes sent via SQL*Net to client
    281  bytes received via SQL*Net from client
    8  SQL*Net roundtrips to/from client
    0  sorts (memory)
    0  sorts (disk)
    101  rows processed
    SQL>
    SQL>
    SQL> select * from aoswf.events a, (
    2  select rid, rownum x  from
    3  (
    4  select rowid rid from aoswf.events a
    5  order by EVENT_DATETIME
    6  ) a
    7  where rownum <= 1200
    8  ) b
    9  where x >= 1100
    10  and a.rowid = rid
    11  /
    101 rows selected.
    Execution Plan
    Plan hash value: 2308864810
    | Id  | Operation                   | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |            |  1200 |   201K|   261K  (1)| 00:52:21 |
    |   1 |  NESTED LOOPS               |            |  1200 |   201K|   261K  (1)| 00:52:21 |
    |*  2 |   VIEW                      |            |  1200 | 30000 |   260K  (1)| 00:52:06 |
    |*  3 |    COUNT STOPKEY            |            |       |       |            |          |
    |   4 |     VIEW                    |            |   253M|  2895M|   260K  (1)| 00:52:06 |
    |   5 |      INDEX FULL SCAN        | EVEN_IDX02 |   253M|  4826M|   260K  (1)| 00:52:06 |
    |   6 |   TABLE ACCESS BY USER ROWID| EVENTS     |     1 |   147 |     1   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    2 - filter("X">=1100)
    3 - filter(ROWNUM<=1200)
    Statistics
    8  recursive calls
    0  db block gets
    117  consistent gets
    0  physical reads
    0  redo size
    27539  bytes sent via SQL*Net to client
    281  bytes received via SQL*Net from client
    8  SQL*Net roundtrips to/from client
    0  sorts (memory)
    0  sorts (disk)
    101  rows processed
    Lakmal (and OP),
    Not sure what advantage you are trying to show here. But considering that we are talking about pagination query here and order of records is important, your 2 queries will not always generate output in same order. Here is the test case:
    SQL> select * from v$version ;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE     10.2.0.1.0     Production
    TNS for Linux: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    SQL> show parameter optimizer
    NAME                                 TYPE        VALUE
    optimizer_dynamic_sampling           integer     2
    optimizer_features_enable            string      10.2.0.1
    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 pga
    NAME                                 TYPE        VALUE
    pga_aggregate_target                 big integer 103M
    SQL> create table t nologging as select * from all_objects where 1 = 2 ;
    Table created.
    SQL> create index t_idx on t(last_ddl_time) nologging ;
    Index created.
    SQL> insert /*+ APPEND */ into t (owner, object_name, object_id, created, last_ddl_time) select owner, object_name, object_id, created, sysdate - dbms_random.value(1, 100) from all_objects order by dbms_random.random;
    40617 rows created.
    SQL> commit ;
    Commit complete.
    SQL> exec dbms_stats.gather_table_stats(user, 'T', cascade=>true);
    PL/SQL procedure successfully completed.
    SQL> select object_id, object_name, created from t, (select rid, rownum rn from (select rowid rid from t order by created desc) where rownum <= 1200) t1 where rn >= 1190 and t.rowid = t1.rid ;
    OBJECT_ID OBJECT_NAME                    CREATED
         47686 ALL$OLAP2_JOIN_KEY_COLUMN_USES 28-JUL-2009 08:08:39
         47672 ALL$OLAP2_CUBE_DIM_USES        28-JUL-2009 08:08:39
         47681 ALL$OLAP2_CUBE_MEASURE_MAPS    28-JUL-2009 08:08:39
         47682 ALL$OLAP2_FACT_LEVEL_USES      28-JUL-2009 08:08:39
         47685 ALL$OLAP2_AGGREGATION_USES     28-JUL-2009 08:08:39
         47692 ALL$OLAP2_CATALOGS             28-JUL-2009 08:08:39
         47665 ALL$OLAPMR_FACTTBLKEYMAPS      28-JUL-2009 08:08:39
         47688 ALL$OLAP2_DIM_LEVEL_ATTR_MAPS  28-JUL-2009 08:08:39
         47689 ALL$OLAP2_DIM_LEVELS_KEYMAPS   28-JUL-2009 08:08:39
         47669 ALL$OLAP9I2_HIER_DIMENSIONS    28-JUL-2009 08:08:39
         47666 ALL$OLAP9I1_HIER_DIMENSIONS    28-JUL-2009 08:08:39
    11 rows selected.
    SQL> select object_id, object_name, last_ddl_time from t, (select rid, rownum rn from (select rowid rid from t order by last_ddl_time desc) where rownum <= 1200) t1 where rn >= 1190 and t.rowid = t1.rid ;
    OBJECT_ID OBJECT_NAME                    LAST_DDL_TIME
         11749 /b9fe5b99_OraRTStatementComman 06-FEB-2010 03:43:49
         13133 oracle/jdbc/driver/OracleLog$3 06-FEB-2010 03:45:44
         37534 com/sun/mail/smtp/SMTPMessage  06-FEB-2010 03:46:14
         36145 /4e492b6f_SerProfileToClassErr 06-FEB-2010 03:11:09
         26815 /7a628fb8_DefaultHSBChooserPan 06-FEB-2010 03:26:55
         16695 /2940a364_RepIdDelegator_1_3   06-FEB-2010 03:38:17
         36539 sun/io/ByteToCharMacHebrew     06-FEB-2010 03:28:57
         14044 /d29b81e1_OldHeaders           06-FEB-2010 03:12:12
         12920 /25f8f3a5_BasicSplitPaneUI     06-FEB-2010 03:11:06
         42266 SI_GETCLRHSTGRFTR              06-FEB-2010 03:40:20
         15752 /2f494dce_JDWPThreadReference  06-FEB-2010 03:09:31
    11 rows selected.
    SQL> select object_id, object_name, last_ddl_time from (select t1.*, rownum rn from (select * from t order by last_ddl_time desc) t1 where rownum <= 1200) where rn >= 1190 ;
    OBJECT_ID OBJECT_NAME                    LAST_DDL_TIME
         37534 com/sun/mail/smtp/SMTPMessage  06-FEB-2010 03:46:14
         13133 oracle/jdbc/driver/OracleLog$3 06-FEB-2010 03:45:44
         11749 /b9fe5b99_OraRTStatementComman 06-FEB-2010 03:43:49
         42266 SI_GETCLRHSTGRFTR              06-FEB-2010 03:40:20
         16695 /2940a364_RepIdDelegator_1_3   06-FEB-2010 03:38:17
         36539 sun/io/ByteToCharMacHebrew     06-FEB-2010 03:28:57
         26815 /7a628fb8_DefaultHSBChooserPan 06-FEB-2010 03:26:55
         14044 /d29b81e1_OldHeaders           06-FEB-2010 03:12:12
         36145 /4e492b6f_SerProfileToClassErr 06-FEB-2010 03:11:09
         12920 /25f8f3a5_BasicSplitPaneUI     06-FEB-2010 03:11:06
         15752 /2f494dce_JDWPThreadReference  06-FEB-2010 03:09:31
    11 rows selected.
    SQL> select object_id, object_name, last_ddl_time from t, (select rid, rownum rn from (select rowid rid from t order by last_ddl_time desc) where rownum <= 1200) t1 where rn >= 1190 and t.rowid = t1.rid order by last_ddl_time desc ;
    OBJECT_ID OBJECT_NAME                    LAST_DDL_TIME
         37534 com/sun/mail/smtp/SMTPMessage  06-FEB-2010 03:46:14
         13133 oracle/jdbc/driver/OracleLog$3 06-FEB-2010 03:45:44
         11749 /b9fe5b99_OraRTStatementComman 06-FEB-2010 03:43:49
         42266 SI_GETCLRHSTGRFTR              06-FEB-2010 03:40:20
         16695 /2940a364_RepIdDelegator_1_3   06-FEB-2010 03:38:17
         36539 sun/io/ByteToCharMacHebrew     06-FEB-2010 03:28:57
         26815 /7a628fb8_DefaultHSBChooserPan 06-FEB-2010 03:26:55
         14044 /d29b81e1_OldHeaders           06-FEB-2010 03:12:12
         36145 /4e492b6f_SerProfileToClassErr 06-FEB-2010 03:11:09
         12920 /25f8f3a5_BasicSplitPaneUI     06-FEB-2010 03:11:06
         15752 /2f494dce_JDWPThreadReference  06-FEB-2010 03:09:31
    11 rows selected.
    SQL> set autotrace traceonly
    SQL> select object_id, object_name, last_ddl_time from t, (select rid, rownum rn from (select rowid rid from t order by last_ddl_time desc) where rownum <= 1200) t1 where rn >= 1190 and t.rowid = t1.rid order by last_ddl_time desc
      2  ;
    11 rows selected.
    Execution Plan
    Plan hash value: 44968669
    | Id  | Operation                       | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT                |       |  1200 | 91200 |   180   (2)| 00:00:03 |
    |   1 |  SORT ORDER BY                  |       |  1200 | 91200 |   180   (2)| 00:00:03 |
    |*  2 |   HASH JOIN                     |       |  1200 | 91200 |   179   (2)| 00:00:03 |
    |*  3 |    VIEW                         |       |  1200 | 30000 |    98   (0)| 00:00:02 |
    |*  4 |     COUNT STOPKEY               |       |       |       |            |          |
    |   5 |      VIEW                       |       | 40617 |   475K|    98   (0)| 00:00:02 |
    |   6 |       INDEX FULL SCAN DESCENDING| T_IDX | 40617 |   793K|    98   (0)| 00:00:02 |
    |   7 |    TABLE ACCESS FULL            | T     | 40617 |  2022K|    80   (2)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - access("T".ROWID="T1"."RID")
       3 - filter("RN">=1190)
       4 - filter(ROWNUM<=1200)
    Statistics
              1  recursive calls
              0  db block gets
            348  consistent gets
              0  physical reads
              0  redo size
           1063  bytes sent via SQL*Net to client
            385  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              1  sorts (memory)
              0  sorts (disk)
             11  rows processed
    SQL> select object_id, object_name, last_ddl_time from (select t1.*, rownum rn from (select * from t order by last_ddl_time desc) t1 where rownum <= 1200) where rn >= 1190 ;
    11 rows selected.
    Execution Plan
    Plan hash value: 882605040
    | Id  | Operation                | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT         |      |  1200 | 62400 |    80   (2)| 00:00:01 |
    |*  1 |  VIEW                    |      |  1200 | 62400 |    80   (2)| 00:00:01 |
    |*  2 |   COUNT STOPKEY          |      |       |       |            |          |
    |   3 |    VIEW                  |      | 40617 |  1546K|    80   (2)| 00:00:01 |
    |*  4 |     SORT ORDER BY STOPKEY|      | 40617 |  2062K|    80   (2)| 00:00:01 |
    |   5 |      TABLE ACCESS FULL   | T    | 40617 |  2062K|    80   (2)| 00:00:01 |
    Predicate Information (identified by operation id):
       1 - filter("RN">=1190)
       2 - filter(ROWNUM<=1200)
       4 - filter(ROWNUM<=1200)
    Statistics
              0  recursive calls
              0  db block gets
            343  consistent gets
              0  physical reads
              0  redo size
           1063  bytes sent via SQL*Net to client
            385  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              1  sorts (memory)
              0  sorts (disk)
             11  rows processed
    SQL> select object_id, object_name, last_ddl_time from t, (select rid, rownum rn from (select rowid rid from t order by last_ddl_time desc) where rownum <= 1200) t1 where rn >= 1190 and t.rowid = t1.rid ;
    11 rows selected.
    Execution Plan
    Plan hash value: 168880862
    | Id  | Operation                      | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT               |       |  1200 | 91200 |   179   (2)| 00:00:03 |
    |*  1 |  HASH JOIN                     |       |  1200 | 91200 |   179   (2)| 00:00:03 |
    |*  2 |   VIEW                         |       |  1200 | 30000 |    98   (0)| 00:00:02 |
    |*  3 |    COUNT STOPKEY               |       |       |       |            |          |
    |   4 |     VIEW                       |       | 40617 |   475K|    98   (0)| 00:00:02 |
    |   5 |      INDEX FULL SCAN DESCENDING| T_IDX | 40617 |   793K|    98   (0)| 00:00:02 |
    |   6 |   TABLE ACCESS FULL            | T     | 40617 |  2022K|    80   (2)| 00:00:01 |
    Predicate Information (identified by operation id):
       1 - access("T".ROWID="T1"."RID")
       2 - filter("RN">=1190)
       3 - filter(ROWNUM<=1200)
    Statistics
              0  recursive calls
              0  db block gets
            349  consistent gets
              0  physical reads
              0  redo size
           1063  bytes sent via SQL*Net to client
            385  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
             11  rows processed
    SQL> select object_id, object_name, last_ddl_time from (select t1.*, rownum rn from (select * from t order by last_ddl_time desc) t1 where rownum <= 1200) where rn >= 1190 order by last_ddl_time desc ;
    11 rows selected.
    Execution Plan
    Plan hash value: 882605040
    | Id  | Operation           | Name | Rows     | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT      |     |  1200 | 62400 |    80   (2)| 00:00:01 |
    |*  1 |  VIEW                |     |  1200 | 62400 |    80   (2)| 00:00:01 |
    |*  2 |   COUNT STOPKEY       |     |     |     |          |          |
    |   3 |    VIEW            |     | 40617 |  1546K|    80   (2)| 00:00:01 |
    |*  4 |     SORT ORDER BY STOPKEY|     | 40617 |  2062K|    80   (2)| 00:00:01 |
    |   5 |      TABLE ACCESS FULL      | T     | 40617 |  2062K|    80   (2)| 00:00:01 |
    Predicate Information (identified by operation id):
       1 - filter("RN">=1190)
       2 - filter(ROWNUM<=1200)
       4 - filter(ROWNUM<=1200)
    Statistics
         175  recursive calls
           0  db block gets
         388  consistent gets
           0  physical reads
           0  redo size
           1063  bytes sent via SQL*Net to client
         385  bytes received via SQL*Net from client
           2  SQL*Net roundtrips to/from client
           4  sorts (memory)
           0  sorts (disk)
          11  rows processed
    SQL> set autotrace off
    SQL> spool offAs you will see, the join query here has to have an ORDER BY clause at the end to ensure that records are correctly sorted. You can not rely on optimizer choosing NESTED LOOP join method and, as above example shows, when optimizer chooses HASH JOIN, oracle is free to return rows in no particular order.
    The query that does not involve join always returns rows in the desired order. Adding an ORDER BY does add a step in the plan for the query using join but does not affect the other query.

  • Help Need for External Table

    Gurus,
    While i reading the data from CSV using External Table in some columns the records having the special symbol like 'new line feed'.
    How can i trim that one.
    please help in this issue.

    Hi,
    Use Substr or Replace functions on them.

  • Update sql help needed for hierarchy table

    I am trying update the gross qty field based on each unit qty. This is how the table looks.
    slevel | manager | seller |unit_qty | gross qty
    0 | mary | mary | 1 | 1
    .1 | mary | lynn| 3 | null
    .1 | mary | betty | 2 | null
    .1 | mary | alice | 2 | null
    ..2 | alice | susan | 1 | null
    .1 | mary | amy | 4 | null
    I would the table to look like this after the update, with the values
    slevel | manager| seller | unit_qty | gross qty
    0 | mary | mary | 1 | 1
    .1 | mary | lynn| 3 | 3*1 ={color:#ff0000}3{color}
    .1 | mary | betty | 2 | 2*1 ={color:#ff0000}2{color}
    .1 | mary | alice | 2 | {color:#008000}2*1{color} ={color:#ff0000}2{color}
    ..2 | alice | susan | {color:#0000ff}1{color} | {color:#008000}2*1{color}{color:#0000ff}*1{color} ={color:#ff0000}2{color}
    .1 | mary | amy | 4 | 4*1 = {color:#ff0000}4
    {color}
    This is the sql statement I tried to use without sucess.
    update table set gross_qty = unit_qty * ({color:#ff0000}select gross_qty from table{color}
    {color:#ff0000}where manager=seller{color})
    where slevel &gt;0

    Perhaps the old EXP (SUM (LN (n))) trick for calculating the product.
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
    SQL> CREATE TABLE seller (
      2     manager VARCHAR2 (5),
      3     seller VARCHAR2 (5),
      4     unit_qty NUMBER,
      5     gross_qty NUMBER);
    Table created.
    SQL> INSERT INTO seller (manager, seller, unit_qty) VALUES (NULL, 'mary', 1);
    1 row created.
    SQL> INSERT INTO seller (manager, seller, unit_qty) VALUES ('mary', 'lynn', 3);
    1 row created.
    SQL> INSERT INTO seller (manager, seller, unit_qty) VALUES ('mary', 'betty', 2);
    1 row created.
    SQL> INSERT INTO seller (manager, seller, unit_qty) VALUES ('mary', 'alice', 2);
    1 row created.
    SQL> INSERT INTO seller (manager, seller, unit_qty) VALUES ('alice', 'susan', 1);
    1 row created.
    SQL> INSERT INTO seller (manager, seller, unit_qty) VALUES ('mary', 'amy', 4);
    1 row created.
    SQL> COMMIT;
    Commit complete.
    SQL> SELECT manager, seller, unit_qty, gross_qty
      2  FROM   seller;
    MANAG SELLE   UNIT_QTY  GROSS_QTY
          mary           1
    mary  lynn           3
    mary  betty          2
    mary  alice          2
    alice susan          1
    mary  amy            4
    6 rows selected.
    SQL> UPDATE seller s1
      2  SET    s1.gross_qty = (SELECT EXP (SUM (LN (s2.unit_qty)))
      3                         FROM   seller s2
      4                         START WITH s2.seller = s1.seller
      5                         CONNECT BY s2.seller = PRIOR s2.manager);
    6 rows updated.
    SQL> SELECT manager, seller, unit_qty, gross_qty
      2  FROM   seller;
    MANAG SELLE   UNIT_QTY  GROSS_QTY
          mary           1          1
    mary  lynn           3          3
    mary  betty          2          2
    mary  alice          2          2
    alice susan          1          2
    mary  amy            4          4
    6 rows selected.
    SQL>

  • Help needed for writing query

    help needed for writing query
    i have the following tables(with data) as mentioned below
    FK*-foregin key (SUBJECTS)
    FK**-foregin key (COMBINATION)
    1)SUBJECTS(table name)     
    SUB_ID(NUMBER) SUB_CODE(VARCHAR2) SUB_NAME (VARCHAR2)
    2           02           Computer Science
    3           03           Physics
    4           04           Chemistry
    5           05           Mathematics
    7           07           Commerce
    8           08           Computer Applications
    9           09           Biology
    2)COMBINATION
    COMB_ID(NUMBER) COMB_NAME(VARCHAR2) SUB_ID1(NUMBER(FK*)) SUB_ID2(NUMBER(FK*)) SUB_ID3(NUMBER(FK*)) SUBJ_ID4(NUMBER(FK*))
    383           S1      9           4           2           3
    384           S2      4           2           5           3
    ---------I actually designed the ABOVE table also like this
    3) a)COMBINATION
    COMB_ID(NUMBER) COMB_NAME(VARCHAR2)
    383           S1
    384           S2
    b)COMBINATION_DET
    COMBDET_ID(NUMBER) COMB_ID(FK**) SUB_ID(FK*)
    1               383          9
    2               383          4
    3               383          2
    4               383          3
    5               384          4
    6               384          2          
    7               384          5
    8               384          3
    Business rule: a combination consists of a maximum of 4 subjects (must contain)
    and the user is less relevant to a COMB_NAME(name of combinations) but user need
    the subjects contained in combinations
    i need the following output
    COMB_ID COMB_NAME SUBJECT1 SUBJECT2      SUBJECT3      SUBJECT4
    383     S1     Biology Chemistry      Computer Science Physics
    384     S2     Chemistry Computer Science Mathematics Physics
    or even this is enough(what i actually needed)
    COMB_ID     subjects
    383           Biology,Chemistry,Computer Science,Physics
    384           Chemistry,Computer Science,Mathematics,Physics
    you can use any of the COMBINATION table(either (2) or (3))
    and i want to know
    1)which design is good in this case
    (i think SUB_ID1,SUB_ID2,SUB_ID3,SUB_ID4 is not a
    good method to link with same table but if 4 subjects only(and must) comes
    detail table is not neccessary )
    now i am achieving the result by program-coding in C# after getting the rows from oracle
    i am using oracle 9i (also ODP.NET)
    i want to know how can i get the result in the stored procedure itsef.
    2)how it could be designed in any other way.
    any help/suggestion is welcome
    thanks for your time --Pradeesh

    Well I forgot the table-alias, here now with:
    SELECT C.COMB_ID
    , C.COMB_NAME
    , (SELECT SUB_NAME
    FROM SUBJECTS
    WHERE SUB_ID = C.SUB_ID1) AS SUBJECT_NAME1
    , (SELECT SUB_NAME
    FROM SUBJECTS
    WHERE SUB_ID = C.SUB_ID2) AS SUBJECT_NAME2
    , (SELECT SUB_NAME
    FROM SUBJECTS
    WHERE SUB_ID = C.SUB_ID3) AS SUBJECT_NAME3
    , (SELECT SUB_NAME
    FROM SUBJECTS
    WHERE SUB_ID = C.SUB_ID4) AS SUBJECT_NAME4
    FROM COMBINATION C;
    As you need exactly 4 subjects, the columns-solution is just fine I would say.

  • Color management help needed for adobe CS5 and Epson printer 1400-Prints coming out too dark with re

    Color management help needed for adobe CS5 and Epson printer 1400-Prints coming out too dark with reddish cast and loss of detail
    System: Windows 7
    Adobe CS5
    Printer: Epson Stylus Photo 1400
    Paper: Inkjet matte presentation paper with slight luster
    Installed latest patch for Adobe CS5
    Epson driver up to date
    After reading solutions online and trying them for my settings for 2 days I am still unable to print what I am seeing on my screen in Adobe CS5. I calibrated my monitor, but am not sure once calibration is saved if I somehow use this setting in Photoshop’s color management.
    The files I am printing are photographs of dogs with lots of detail  I digitally painted with my Wacom tablet in Photoshop CS5 and then printed with Epson Stylus 1400 on inkjet paper 20lb with slight luster.
    My Printed images lose a lot of the detail & come out way to dark with a reddish cast and loss of detail when I used these settings in the printing window:
    Color Handling: Photoshop manages color, Color management -ICM, OFF no color adjustment.
    When I change to these settings in printer window: Color Handling:  Printer manages color.  Color management- Color Controls, 1.8 Gamma and choose Epson Standard it prints lighter, but with reddish cast and very little detail and this is the best setting I have used so far.
    Based on what I have read on line, I think the issue is mainly to do with what controls are set in the Photoshop Color Settings window and the Epson Printer preferences. I have screen images attached of these windows and would appreciate knowing what you recommend I enter for each choice.
    Also I am confused as to what ICM color management system to use with this printer and CS5:
    What is the best ICM to use with PS CS5 & the Epson 1400 printer? Should I use the same ICM for both?
    Do I embed the ICM I choose into the new files I create? 
    Do I view all files in the CS5 workspace in this default ICM?
    Do I set my monitor setting to the same ICM?
    If new file opens in CS5 workspace and it has a different embedded profile than my workspace, do I convert it?
    Do I set my printer, Monitor and PS CS5 color settings to the same ICM?
    Is using the same ICM for all devices what is called a consistent workflow?
    I appreciate any and all advice that can be sent my way on this complicated issue. Thank you in advance for your time and kind help.

    It may be possible to figure out by watching a Dr.Brown video on the subject of color printing. Adobe tv
    I hope this may help...............

  • File missing (file\BCD error code 0Xc0000034 help need for work!

    file missing (file\BCD  error code 0Xc0000034 help need for work!    what can i do?
    have an p 2000 notebook pc

     Hi bobkunkle, welcome to the HP Forums. I understand you cannot boot passed the error you are receiving.
    What is the model or product number of your notebook? What version of Windows is installed?
    Guide to finding your product number
    Which Windows operating system am I running?
    TwoPointOh
    I work on behalf of HP
    Please click “Accept as Solution ” if you feel my post solved your issue, it will help others find the solution.
    Click the “Kudos, Thumbs Up" on the bottom to say “Thanks” for helping!

  • HOw to improve insert/update/select  for nested table.

    Hi All,
    I think this is my second thread for nested table.
    i just want to know what are the different ways available to improve the insert/update/select operation on Nested table.
    Thanks in advance.

    By not using a nested table for data storage in the first place...
    http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:8135488196597
    Perhaps Parallel Query/DML might give some relief.

  • Help need for force to signout All session ! how...

    hi
         help need for force to  signout All session !  how ??
    Solved!
    Go to Solution.

    Hi and welcome to the Skype Community,
    To force a signout of all instances your Skype is signed into please change your password: https://support.skype.com/en/faq/FA95/how-do-i-change-my-password
    Follow the latest Skype Community News
    ↓ Did my reply answer your question? Accept it as a solution to help others, Thanks. ↓

  • Public Synonyms for Nested Tables - Insertion Problem  - Please Help!!!!!

    Hi,
    we are facing a problem during implementation. Our DB set up
    is , we will be having two schema named OWNR and COPY.
    In the schema, OWNR we have to create all the tables,
    types,procedures, packages and obj.....This schema will have
    both DDL and DML privileges.
    In the schema, COPY we are not supposed to create any tables,
    objects. We have to create public synonyms for all the tables,
    types, procedures... in OWNR and grant ALL privilege to the
    schema COPY.The schema, COPY will have only DML privileges.
    The problem is we have some nested tables in our application.
    When I try to insert into the synonym which is created for the
    nested table, it is not allowing me to insert..The whole
    implementation is stucked..Please help.The scripts are given
    below.......
    We have a type name SITA_ADDRESS_TY which is used by the nested
    table SITA_ADDRESSES_NT.Script used for creating the Type,Nested
    table,Table, Public Synonym and granting all privilege to these
    types and tables are
    CREATE OR REPLACE TYPE SITA_ADDRESS_TY AS OBJECT (
    SITA_ADDRESS VARCHAR2(10),
    REMARKS VARCHAR2(100)) ;
    PROMPT SITA_ADDRESSS_NT...
    CREATE OR REPLACE TYPE SITA_ADDRESSES_NT AS TABLE OF
    SITA_ADDRESS_TY ;
    Using this nested table we have created the table,
    UMS_SITA_ADDRESS
    CREATE TABLE UMS_SITA_ADDRESS (
    COMPANY_CODE VARCHAR2 (6) NOT NULL,
    AIRLINE_CODE VARCHAR2 (6) NOT NULL,
    DESTINATION VARCHAR2 (6) NOT NULL,
    SITA_ADDRESS SITA_ADDRESSES_NT)
    TABLESPACE EKUMDAT
    PCTFREE 5
    PCTUSED 40
    INITRANS 1
    MAXTRANS 255
    STORAGE (
    INITIAL 64K
    NEXT 64K
    PCTINCREASE 0
    MINEXTENTS 1
    MAXEXTENTS 505
    FREELISTS 1 FREELIST GROUPS 1 )
    NOCACHE
    NESTED TABLE SITA_ADDRESS STORE AS UMSNT_SITA_ADDRESS ;
    PROMPT SYNONYM SITA_ADDRESS_TY...
    CREATE PUBLIC SYNONYM SITA_ADDRESS_TY FOR SITA_ADDRESS_TY
    PROMPT SYNONYM SITA_ADDRESSES_NT...
    CREATE PUBLIC SYNONYM SITA_ADDRESSES_NT FOR SITA_ADDRESSES_NT
    PROMPT UMS_SITA_ADDRESS...
    CREATE PUBLIC SYNONYM UMS_SITA_ADDRESS FOR UMS_SITA_ADDRESS
    Granting Privileges
    PROMPT SITA_ADDRESS_TY...
    GRANT EXECUTE ON SITA_ADDRESS_TY TO COPY
    PROMPT SITA_ADDRESSS_NT...
    GRANT EXECUTE ON SITA_ADDRESSES_NT TO COPY
    PROMPT UMS_SITA_ADDRESS...
    GRANT ALL ON UMS_SITA_ADDRESS TO COPY
    When I connect to copy and desc UMS_SITA_ADDRESS, the structure
    is
    SQL> desc ums_sita_address
    Name Null? Type
    COMPANY_CODE NOT NULL VARCHAR2(6)
    AIRLINE_CODE NOT NULL VARCHAR2(6)
    DESTINATION NOT NULL VARCHAR2(6)
    SITA_ADDRESS
    OWNR.SITA_ADDRESSES_NT
    Why is it so??. Even though I have a synonym for
    SITA_ADDRESSES_NT, it is not referencing the synonym but instead
    refer the OWNR.SITA_ADDRESSES_NT
    Because of this when I try to insert into ums_sita_address(in
    schema COPY), it is giving the following error,
    SQL> insert into ums_sita_address values
    ('EK','EK','DXB',SITA_ADDRESSES_NT());
    insert into ums_sita_address values
    ('EK','EK','DXB',SITA_ADDRESSES_NT())
    ERROR at line 1:
    ORA-00932: inconsistent datatypes
    But when the same connect to OWNR and try to insert with the
    same stmt, it is inserting...
    Our middle tier can connect only to COPY schema alone..Is there
    anything to be done in the DBA side to achieve this??.
    Please help from your valuabe experience...Or can you ask your
    collegues if they have got a soln to this probs..We are stucked
    with this...
    Thanks
    Priya

    Hi
    I am not sure but maybe you need to use this command:
    SQL> insert into ums_sita_address values
    ('EK','EK','DXB',SITA_ADDRESSES_TY());
    SITA_ADDRESSES_TY() instead SITA_ADDRESSES_NT
    Regards

  • XMLAGG structure, performance help needed for odd nesting in schema

    Hello,
    I have to produce XML to look like:
    <?xml version='1.0'?>
      <enterprise>
        <membership>
          <sourcedid>
            <id>PHYS_101_001_FA2007</id>
          </sourcedid>
        <!-- NOTE: absence of "members" level tag for XMLAGG! -->
        <member>
          <sourcedid>
            <id>D2LU0001</id>
          </sourcedid>
          <role roletype="Sample Role">
            <status>1</status>
          </role>
        </member>
        <member>
          <sourcedid>
            <id>D2LU0002</id>
          </sourcedid>
          <role roletype="Sample Role">
            <status>1</status>
          </role>
        </member>
      </membership>
    </enterprise>This would be straightforward if the schema allowed for a "<members>" tag under which to nest the <member> tags. But, it does not allow for that tag or any other than those listed above.
    I have a query which does produce that output (except for the roletype attribute), but its performance is horrible; it takes about 40 minutes to return data:
    SELECT
         XMLROOT(
             XMLELEMENT("enterprise",
               XMLAGG(
                 XMLELEMENT("membership",
                   XMLFOREST( XMLELEMENT("id",cx.mapped_course_id) as "sourcedid"
                   (SELECT XMLAGG(
                     XMLELEMENT("member",
                       XMLFOREST(XMLELEMENT("id",spriden_id) AS "sourcedid",
                                 XMLELEMENT("status",'1') AS "role"
                      FROM enrollments_fall_sfrstca efs
                         , spriden sp
                         , gzv_tuid t
                     WHERE sp.spriden_change_ind IS NULL
                       AND sp.spriden_pidm       = t.pidm
                       AND t.tuid                = efs.user_name
                       AND efs.mapped_course_id  = cx.mapped_course_id
                       AND efs.term              = cx.semester
                , VERSION '1.0', STANDALONE NO VALUE)
      FROM courses_xt cx
    WHERE cx.semester = :term_code
    ;Similar queries are producing courses and users XML fine with no performance issues, but these are driven off either the courses view or the enrollments view, but not both.
    Is there some other way I can produce the nesting I need for the vendor's schema?
    The source views are basically as follows (showing relevant columns only):
    courses_xt:
    MAPPED_COURSE_ID       SEMEST
    AVFT209-13307-201210   201210
    AVFT210-13308-201210   201210enrollments_fall_sfrstca:
    MAPPED_COURSE_ID       USER_NAME
    AVFT209-13307-201210    FULLERC8
    AVFT209-13307-201210    SHUPEK
    AVFT209-13307-201210    NOMAN
    AVFT210-13308-201210    SHUPEK
    AVFT210-13308-201210    PELLONMWhen I have the query without the XML (with the subquery as a column of the outer query), this returns the correct data quickly (a couple of minutes).
    I have tried various permutations of XMLFOREST, XMLELEMENT, XMLAGG but either I get syntax errors, or the data is wrong (e.g. repeated '<membership>' for each '<member>', or I have to create an invalid tag '<members>' to be filtered later).
    Please advise!
    Thanks,
    Anita Lees

    Hi Anita,
    Have you tried with a GROUP BY and no subquery?
    Here's an example using SCOTT schema.
    I've used the same tag names and structure so that you can see the analogy :
    SELECT XMLElement("enterprise",
             XMLAgg(
               XMLElement("membership",
                 XMLElement("sourceid", xmlelement("id", d.deptno))
               , XMLAgg(
                   XMLElement("member",
                     XMLElement("sourceid",
                       XMLElement("id", e.empno)
                   , XMLElement("role",
                       XMLAttributes(e.job as "roletype")
                     , XMLElement("status", '1')
    FROM scott.dept d
         LEFT OUTER JOIN scott.emp e ON e.deptno = d.deptno
    WHERE d.deptno IN (10,20)
    GROUP BY d.deptno
    ;which gives :
    <enterprise>
      <membership>
        <sourceid>
          <id>10</id>
        </sourceid>
        <member>
          <sourceid>
            <id>7782</id>
          </sourceid>
          <role roletype="MANAGER">
            <status>1</status>
          </role>
        </member>
        <member>
          <sourceid>
            <id>7934</id>
          </sourceid>
          <role roletype="CLERK">
            <status>1</status>
          </role>
        </member>
        <member>
          <sourceid>
            <id>7839</id>
          </sourceid>
          <role roletype="PRESIDENT">
            <status>1</status>
          </role>
        </member>
      </membership>
      <membership>
        <sourceid>
          <id>20</id>
        </sourceid>
        <member>
          <sourceid>
            <id>7369</id>
          </sourceid>
          <role roletype="CLERK">
            <status>1</status>
          </role>
        </member>
        <member>
          <sourceid>
            <id>7902</id>
          </sourceid>
          <role roletype="ANALYST">
            <status>1</status>
          </role>
        </member>
        <member>
          <sourceid>
            <id>7566</id>
          </sourceid>
          <role roletype="MANAGER">
            <status>1</status>
          </role>
        </member>
      </membership>
    </enterprise>

  • Help  need to generate table table maintainance for one table

    Dear SAP Gurus,
       Am not a ABAP consultant, currently we have some requirement to maintain some values for custmized table "ZXXXtable", when i checked in SM30 this table is not supporting to maintain.
      Now We are trying to gerenate for table maintaince using  in SE11 --> Utilties --> Table maintainace Generatore and
    but in this screen it is asking function group and packge.
    What is this function group and packge,
    How to maintain this gunction group and package (or) how can I check for this table function group and package is maintained.
    (or) shall we use other function group  and package which is already existing in the system.
    Please help me to solve this isse.
    Thanks & Regards,
    MK

    Hi PXG,
      this is production system we cannot able to create, shall we use the existing one which is already available under same package, I have checked 4 function groups are available in the same packing , but that function groups belongs to some other table or i don't know some other purpose.
    Please help to how can i maintain the table with out creating new function group.
    First could please explaing what is the use of function group?
    Thanks & Regards,
    MK

  • Public Synonyms for Nested Tables - Insertion Problem

    Hi,
    we are facing a problem during implementation. Our DB set up
    is , we will be having two schema named OWNR and COPY.
    In the schema, OWNR we have to create all the tables,
    types,procedures, packages and obj.....This schema will have
    both DDL and DML privileges.
    In the schema, COPY we are not supposed to create any tables,
    objects. We have to create public synonyms for all the tables,
    types, procedures... in OWNR and grant ALL privilege to the
    schema COPY.The schema, COPY will have only DML privileges.
    The problem is we have some nested tables in our application.
    When I try to insert into the synonym which is created for the
    nested table, it is not allowing me to insert..The whole
    implementation is stucked..Please help.The scripts are given
    below.......
    We have a type name SITA_ADDRESS_TY which is used by the nested
    table SITA_ADDRESSES_NT.Script used for creating the Type,Nested
    table,Table, Public Synonym and granting all privilege to these
    types and tables are
    CREATE OR REPLACE TYPE SITA_ADDRESS_TY AS OBJECT (
    SITA_ADDRESS VARCHAR2(10),
    REMARKS VARCHAR2(100)) ;
    PROMPT SITA_ADDRESSS_NT...
    CREATE OR REPLACE TYPE SITA_ADDRESSES_NT AS TABLE OF
    SITA_ADDRESS_TY ;
    Using this nested table we have created the table,
    UMS_SITA_ADDRESS
    CREATE TABLE UMS_SITA_ADDRESS (
    COMPANY_CODE VARCHAR2 (6) NOT NULL,
    AIRLINE_CODE VARCHAR2 (6) NOT NULL,
    DESTINATION VARCHAR2 (6) NOT NULL,
    SITA_ADDRESS SITA_ADDRESSES_NT)
    TABLESPACE EKUMDAT
    PCTFREE 5
    PCTUSED 40
    INITRANS 1
    MAXTRANS 255
    STORAGE (
    INITIAL 64K
    NEXT 64K
    PCTINCREASE 0
    MINEXTENTS 1
    MAXEXTENTS 505
    FREELISTS 1 FREELIST GROUPS 1 )
    NOCACHE
    NESTED TABLE SITA_ADDRESS STORE AS UMSNT_SITA_ADDRESS ;
    PROMPT SYNONYM SITA_ADDRESS_TY...
    CREATE PUBLIC SYNONYM SITA_ADDRESS_TY FOR SITA_ADDRESS_TY
    PROMPT SYNONYM SITA_ADDRESSES_NT...
    CREATE PUBLIC SYNONYM SITA_ADDRESSES_NT FOR SITA_ADDRESSES_NT
    PROMPT UMS_SITA_ADDRESS...
    CREATE PUBLIC SYNONYM UMS_SITA_ADDRESS FOR UMS_SITA_ADDRESS
    Granting Privileges
    PROMPT SITA_ADDRESS_TY...
    GRANT EXECUTE ON SITA_ADDRESS_TY TO COPY
    PROMPT SITA_ADDRESSS_NT...
    GRANT EXECUTE ON SITA_ADDRESSES_NT TO COPY
    PROMPT UMS_SITA_ADDRESS...
    GRANT ALL ON UMS_SITA_ADDRESS TO COPY
    When I connect to copy and desc UMS_SITA_ADDRESS, the structure
    is
    SQL> desc ums_sita_address
    Name Null? Type
    COMPANY_CODE NOT NULL VARCHAR2(6)
    AIRLINE_CODE NOT NULL VARCHAR2(6)
    DESTINATION NOT NULL VARCHAR2(6)
    SITA_ADDRESS
    OWNR.SITA_ADDRESSES_NT
    Why is it so??. Even though I have a synonym for
    SITA_ADDRESSES_NT, it is not referencing the synonym but instead
    refer the OWNR.SITA_ADDRESSES_NT
    Because of this when I try to insert into ums_sita_address(in
    schema COPY), it is giving the following error,
    SQL> insert into ums_sita_address values
    ('EK','EK','DXB',SITA_ADDRESSES_NT());
    insert into ums_sita_address values
    ('EK','EK','DXB',SITA_ADDRESSES_NT())
    ERROR at line 1:
    ORA-00932: inconsistent datatypes
    But when the same connect to OWNR and try to insert with the
    same stmt, it is inserting...
    Our middle tier can connect only to COPY schema alone..Is there
    anything to be done in the DBA side to achieve this??.
    Please help from your valuabe experience...Or can you ask your
    collegues if they have got a soln to this probs..Our
    implementation team is stucked with this...
    Thanks
    Priya

    Hi
    I am not sure but maybe you need to use this command:
    SQL> insert into ums_sita_address values
    ('EK','EK','DXB',SITA_ADDRESSES_TY());
    SITA_ADDRESSES_TY() instead SITA_ADDRESSES_NT
    Regards

Maybe you are looking for

  • Error  Screen output without connection to user  DYNPRO_SEND_IN_BACKGROUND

    Hi Experts I am  trying to debbug a BADI (for shc)  in SRM 7.0 with external debugger. I placed a breakpoint in the BADI, and logged into the portal screen,it is  independent portal. when i start to create the shc i get the error:     Screen output w

  • F-48, Clearing Invoice with Down payment error

    My Dear Friends, I have a problem with Clearing Vendor Invoice with Dwon payment. I have a down payment of 50000 made to a vendor I have an invoice raised for 100000 from Vendor Now, i want to celar the Down payment with Invoice. But, when i go to F-

  • I cant activate my Apple account?

    Why can't i use my Apple ID in Apple store?

  • MacBook Air 2013 Camera Problems

    I have a MacBook Air 2013 and recently, after the most current update my built-in camera not only does not work with Skype but does not work with Facetime or Photobooth either. Under "Camera" in System Report my camera does not show up. I have reboot

  • Viewing PSE8 files in Windows 7

    This has probably been answered before, but I am having a very frustraing time tying to view my PSE8 files in Win7 Explorer..no matter what I do, I get the same blue PSE thumbnails. Can anyone point me toward a solution?