How to create table from ref cursor

I have a proc that returns a ref cursor, whats the simplest way to create a table based on the return of the ref cursor?
declare
type rc is ref cursor;
p_data rc;
begin
call_my_proc(p_data);
:result := p_data; -- If I run this in TOAD I can see the data here but I want to create a table based on it rather than outputting it)
end;
thanks.
edit: sorry. typed this wrong first time, should be right now

961469 wrote:
I have a proc that returns a ref cursor, whats the simplest way to create a table based on the return of the ref cursor?Not to do it...
A cursor is not a result set. A cursor is not a result set. Worth repeating several times as this is a common misconception
A cursor is essentially a program. Executable code that was compiled from a SQL source code program.
A SELECT cursor is "read" program. Each fetch instruction runs this program (from its current "paused state"), and outputs data.
An INSERT cursor is a "write" program. You pass data to it (process called binding, via bind variables). You then execute the program. It writes the data it received (can be bulk data via a bulk bind) to table.
Now your question is: How do I write the output of a cursor program back to the database?
The answer is that a "write" cursor program is needed. Your code needs to execute (fetch output from) the ref (read/select) cursor. Then bind that data to the "write" cursor and execute it.
In other words, you have a read cursor and a write cursor, and you need to pass data from one to the other.
HOWEVER.. This is slow. This does not scale. This is also known as slow-by-slow row by row processing.
The correct approach is to create a single program. One that reads the data, and then writes the data. No to send data via a detour through your code between the read part and write part.
The cursor to create is an INSERT..SELECT cursor. This can do fast direct path inserts. This can be executed in parallel - i.e. the database executing several copies of this read-and-write program at the same time.

Similar Messages

  • How to create table from method

    Hello -
    Could anyone please tell me how can I create af:table with more than one column from an AppsModule method.
    When I have a 1d array return eg:
    public String[] createTable(){
    String[] str = new String[1];
    return str;
    I can drop it as a table and one column gets created. But how can I get mutiple columns in a table. I want to write a method, which when dropped on jsp page create table with multiple columns.
    I am using ADF 11g.
    Please suggest.
    Regards -
    Rohit

    Hi,
    for this you use an array or array list of objects. The object represent the row content, e.g. Person. The Person class then has setter/getter for each of the properties that you want to show in a column
    Frank

  • How to create table from another in pl/sql

    Hi I need to create a table from another in pl/sql
    How can I do this

    The proper way to do this, is not to do it in PL/SQL. But do it in SQL, something like:
    create table tbl
    as
    select *
      from other_tbl;Doing it in PL/SQL is really slow compared to SQL.
    Yes, if you really want to create a table using PL/SQL then you will need to use DBMS_SQL or EXECUTE IMMEDIATE (Native Dynamic SQL) to do this.

  • How to create table from one to another schema?

    Hi,
    There is two schema A and B. schema A want to create table on Schema. which privilege we need to provide? how to create?
    thanks in advance
    Thanks,

    user2017273 wrote:
    Hi,
    There is two schema A and B. schema A want to create table on Schema. which privilege we need to provide? how to create?
    thanks in advance
    Thanks,When you give CREATE ANY TABLE TO A then user A will create table on any schema.But you can create stored PROCEDURE on schema B for creating table and give GRANT EXECUTE <PROC NAME> to A.

  • How to create table from .ini file

    Hi,
    The file *.ini generates a Multicolumn Listbox where is indicated a number (variable) of tables with them characteristics (row and column) as in the picture below.
    I need to find the way to create automatically, on word file, the tables as indicated in the *.ini file. Do you think that it could be possible? That you know, exist a Macro to do this?
    Best regards
    Attachments:
    Multicolunms .png ‏8 KB

    As Taki said above, to do this you need to use the Report Generation Toolkit. This will allow you to generate tables in a word document. Look for the examples in the LabVIEW Help for a rough idea of how to use the toolkit and if you have any specific questions after that then feel free to post them here.
    Certified LabVIEW Architect, Certified TestStand Developer
    NI Days (and A&DF): 2010, 2011, 2013, 2014
    NI Week: 2012, 2014
    Knowledgeable in all things Giant Tetris and WebSockets

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

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

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

  • Wanted to fetch data from ref cursor to nested pl/sql table getting an erro

    create or replace type "DEPT12" as object(dno number(2),dname varchar2(30),loc varchar2(50));
    create or replace type dept_tab as table of "DEPT12"
    create or replace type "LOC12" as object(locno number,loc_name varchar2(100))
    create or replace type loc_tab as table of "LOC12"
    create or replace type dept_loc_rec1 as object (dept_dt dept_tab,eno number,loc_dt loc_tab);
    create type dept_loc_tb as table of dept_loc_rec1
    create table dept_loc_tb_bk1(dept_dt dept_tab,eno number,loc_dt loc_tab)
    NESTED TABLE dept_dt
    STORE AS dept_tab12,
    NESTED TABLE loc_dt
    STORE AS loc_tab12
    insert into dept_loc_tb_bk1 values(dept_tab(dept12(3,'ABD','LOC')
    ,dept12(4,'ABD','LOC')
    ,dept12(5,'ABD','LOC')),3,loc_tab(loc12(21,'AAB'),
    loc12(22,'AAB'),
    loc12(23,'AAB')));
    when I am trying to fetch data from ref cursor to pl/sql table which i am getting an error ora-06504: pl/sql : Return types of result set variables or query do not match.
    I have created a nested table of same as the nested pl/sql object table dept_loc_tb and i have declared the lv_dept_loc_tb of same dept_loc_tb but getting an above error when trying to fetch into that variable.
    Please any one who can solve my problem.
    declare
    type cr is ref cursor;
    cr_obj cr;
    lv_dept_loc_tb dept_loc_tb;
    begin
    open cr_obj for select dept_dt,eno,loc_dt from dept_loc_tb_bk1;
    fetch cr_obj bulk collect into lv_dept_loc_tb;
    close cr_obj;
    end;

    Your query selects 3 separate columns therefore requires 3 collections of corresponding types. You want to treat those 3 columns as an object of DEPT_LOC_REC1 type:
    SQL> declare
      2  type cr is ref cursor;
      3  cr_obj cr;
      4 
      5  lv_dept_loc_tb dept_loc_tb;
      6 
      7  begin
      8  open cr_obj for select dept_dt,eno,loc_dt from dept_loc_tb_bk1;
      9  fetch cr_obj bulk collect into lv_dept_loc_tb;
    10  close cr_obj;
    11  end;
    12  /
    declare
    ERROR at line 1:
    ORA-06504: PL/SQL: Return types of Result Set variables or query do not match
    ORA-06512: at line 9
    SQL> declare
      2  type cr is ref cursor;
      3  cr_obj cr;
      4 
      5  lv_dept_loc_tb dept_loc_tb;
      6 
      7  begin
      8  open cr_obj for select DEPT_LOC_REC1(dept_dt,eno,loc_dt) from dept_loc_tb_bk1;
      9  fetch cr_obj bulk collect into lv_dept_loc_tb;
    10  close cr_obj;
    11  end;
    12  /
    PL/SQL procedure successfully completed.
    SQL> SY.
    P.S. Discover sys_refcursor.

  • How to create data_block from procedure ?

    hi all
    can anyone to help me :
    how to create data_block from procedure ?
    i want to join 2 or 3 table and use order by
    then show some field in my form
    i can not use view because order by can not use in view
    please send sample code for this procedure
    thanks.

    1) >i can not use view because order by can not use in view
    SQL>create or replace view V_test as
      2  select * from (
      3  select 1 id from dual union
      4  select 2 id from dual union
      5  select 3 id from dual union
      6  select 4 id from dual union
      7  select 5 id from dual union
      8  select 6 id from dual ) t
      9  order by t.id
    10  /
    View created.
    SQL>select * from v_test;
            ID
             1
             2
             3
             4
             5
             6
    6 rows selected.2). >how to create data_block from procedure?
    You must create procedure and use ref cursor.

  • How to create table control without wizard....???

    Hello experts !!
    Plz tell me how to create table control without wizard.
    for sflight table.
    Scenario 1
    I have one screen like 1000.
    There i have taken carrid, connid, fldate as criteria.
    Now i want to display Planetype, Price, Seatsmax in the table control.
    Scenario 2
    i have two screens 1001, 1002.
    in the screen 1001 i have taken carrid, connid, fldate as criteria and there is a Button.
    when i will click the button it will show the price, planetype and seatsmax in the table control in the next screen, i.e 1002
    plz help me out...
    and how to save new record in the dictionary table from that table control....

    Hi
    see the sample programs and design accordingly
    syntax:
    CONTROLS .
    if you only want to determine the row of the table control. SY´-SUBRC allows you to check if the cursor is placed in a row of a table control.
    u need to comment the performs of table control fields and write ur own perform statements. And u have to declare the table control fields as separate internal tables.
    Go through this urls.
    www.****************
    www.sap-img.com
    Check the below links.
    just refer to the link below
    http://www.sapmaterial.com/tablecontrol_sap.html
    step by step procedure with screen shots
    http://www.planetsap.com/howdo_a.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/9f/dbac5135c111d1829f0000e829fbfe/content.htm
    http://sap.niraj.tripod.com/id25.html
    Also you can see the below examples...
    Go to se38 and give demodynpro and press F4.
    YOu will get a list of demo module pool programs.
    One more T-Code is ABAPDOCU.
    YOu can find more examples there.
    See the prgrams:
    DEMO_DYNPRO_TABLE_CONTROL_1 Table Control with LOOP Statement
    DEMO_DYNPRO_TABLE_CONTROL_2 Table Control with LOOP AT ITAB
    http://www.geocities.com/ZSAPcHAT
    http://www.allsaplinks.com/files/using_table_in_screen.pdf
    Regards
    Anji

  • How to pass PL/SQL ref cursor to Access DB

    We have a package in Oracle with a stored procedure in it. This procedure has a ref cursor that returns a value from table in Oracle.
    How can we pass this ref cursor to our tables in Access?

    The same way you pass any other parameter to Access. I don't know enough enough about Access to answer the specific question, but you'll find oodles of samples for working with ref cursors and ODBC/ASP/OCI/MFC over at Tom Kyte's place.
    Cheers, APC

  • How to move table from one tablespace to other tablespace?

    how to move table from one tablespace to other tablespace?

    887274 wrote:
    how to move table from one tablespace to other tablespace?
    alter table <table_name> move  tablespace <new_tablespace_name>;
    Rebuild the indexes; alter index <index_name> rebuild <new_tablespace_name> online;Example;:
    SQL> create table ttt( ID NUMBER PRimary key);
    Table created.
    SQL> insert into ttt values (1);
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> select index_name, status  from dba_indexes where table_name='TTT';
    INDEX_NAME                 STATUS
    SYS_C0010863                 VALID
    SQL> alter table ttt move tablespace users;
    Table altered.
    SQL> select index_name, status  from dba_indexes where table_name='TTT';
    INDEX_NAME                 STATUS
    SYS_C0010863                 UNUSABLE
    SQL> alter index SYS_C0010863 rebuild tablespace users online;
    Index altered.
    SQL> select index_name, status  from dba_indexes where table_name='TTT';
    INDEX_NAME                 STATUS
    SYS_C0010863                 VALID
    SQL>

  • How to create table in bisystem

    hi,
    how to create table in bi system.
    My requirement is such like that i want to store data which is used in the routine.
    i want to maintain the data dynamically so that i want to create the table.

    Hi.........
    Same as ABAP only...........using SE11........
    Steps for creating table:.
    There are two approach in creating a table.
    1. Bottom-up approach
    2. Top-down approach. 
    Both are valid and you can choose which approach is suitable for you.  I always use the bottom-up approach. Here are the steps to create the tables with this approach.
    1. SE11 will take you to the DDIC and enter the name of the new table to be created. Let us say Zname. Click create.
    2. Enter the short discription of the table and enter the field of the table.  If it is primary key and you have to check the box. 
    3. Enter the data element  and double click it, you will be asked to save and will take you to data element discription page.  Enter the short discription of the data element and enter the information of domain like the length of field and type of field.
    4. If you wanted to use the existing domain then its fine, or else, you have to create one.  Enter the domain name in the data element page and double click it.  Page will ask to save and jump to domain creation page.
    5. In the domain page, you have to save the information which you have already given in the data elements page and check it.  Before going to data element page, you have to activate the domain.
    6. Go to data element page and save, check and activate.
    7. Go to main table page and save, check, and activate.  
    8. Also, you have to save the technical settings of the table.
    The table is now ready for operation. You can use it in your program or you can use it to enter information.
    Check table:  It is the table which will have all the information about the Foreign keys which are the primary keys in the check table.
    It can be created by creating the foreign key from the main table.  Click foreign key in the main table and it will take you to a page which will ask for table name and field to which foreign key relation has to be associated. Enter the information and you can create the check table automatically.
    SM30 is used for maintenance of the table, that is to realease the errors occured during the creation of the table.  
    Hope this helps......
    Regards,
    Debjani..........

  • How to create table in interactive form via Java Web Dynpro

    Hi,
    How to create table in interactive form via Java Web Dynpro ?
    Any online tutorial / example ?
    Thank you.
    Regards,
    Eric

    Hi Eric,
    Just choose the UI element Table from Form Library and drag and drop it on the form. now choose the no. of rows and columns and other settings you want about table from the wizard initiated through this process. This all is what you have to do to create the table. Now to bind it to the fields of the data source bind the individual colums to individual attributes of the node in the datasource.
    Hope it will solve your query.
    Regards,
    Vaibhav Tiwari.

  • How to create tables in Database when webdynpro project is deployed

    Hi
    I Created a project.in that i created stuctures using simpletypes.Based on structure  i created the Context,then created screens.Now how to create tables in database using this structures .Because i want to store the values in the database.Please help.this is very urgent.i will give good points
    thanks
    prasad

    Hi Prasad,
    You can write normal JDBC code in your controller.
    Check this Web Dynpro Java
    You can use the tool for generating the classes from your DB.Check this too
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/dfad6017-0301-0010-bdb8-a8b7d2006f36
    Best Regards, Anilkumar

  • How to create table and digital signature ?

    Hello,
    I would like to ask two questions regarding SAP interactive forms by adobe.
    1st question:
    How to create table in interactive form?
    Table that i can add rows and column and will show it in the form.
    Example the rows and columns that i want:
    <u><b>ID:</b></u>                <b><u>Name:  </u>  </b>               <u><b>DOB:</b></u>
    1                  Jack                      01/02/80
    2                  Ivy                         10/12/82
    2nd question:
    How to create digital signature ?
    I'm creating a adobe forms which need employee to sign on the form. I use signature field at my form. However, i don't know how to create a new signature and insert in the signature field.
    Can any one provide the answer with step by step guide?
    Thanks a lot

    Hi Pradeepa,
    you said you have your digital signature in
    BMP format? That means Bitmap and would mean you are actually talking about a picture! THIS IS NOT A DIGITAL SIGNATURE!
    A digital signature is a cryptographic key (aka public key cryptography) that is used to digitally sign a document, or at least a hash value derived from the document. Digitally signing means, applying the key in a well defined way (this is the algorithm used) to the document or hash value. You do this with your private key and the receiver of the document can then use your public key (which you can distribute in any way you want, even unsecure) to unencrypt the hash value. If this succeeds the receiver knows that the document was signed by you.
    This is because both keys are mathematically related in such a way, that what one key encrypted can only be decrypted by the corresponding other key and by no other key. You even can´t decrypt a document with the same key it was encrypted with, this is the difference to symmetric encryption - please have a look at help.sap.com and search for digital signatures.
    The named formats (afs, pfx and p12) are ways of coding the key, together with information about your person, such as email address and information about validity of the key into a
    certificate. This type of certificate is then called a x.509 certificate and is the same you might have seen when connecting to a secure webserver such as the one of your bank website. 
    Signing a form with such a certificate provides for mathematically and therefore business related proove of a users identity.
    In case you are really using a bitmap, this cannot work and would not serve you any good.
    Ask yourself this question: I want to make sure that the form was signed by a specific person. How can I make sure that the signing can only be done by the person pretending to have done so?
    A bitmap contains a picture, probably of the persons handwritten signature. How can I make sure that this picture was NOT recreated in MS Paint or Photoshop by someone else?
    The answer is:
    you can't! Therefore this way of prooving identity is useless. 
    You need to provide your users with digital signatures, put these in the certificate cache of your IE.  If a user then clicks on the signing field, the private key is used to digitally sign the form - create a hash value of the form and encrypt it with the private key. After the form is send back to the server or you, you use the corresponding public key to decrypt the hash value and, as said above, if this succeeds, identity of the signer is proven.
    THIS IS AN OVERSIMPLIFICATION! You might want to take a look at Adobe Reader Credentials.
    Regards,
       Christian

Maybe you are looking for

  • No sound in any software.

    Good evening. Half a month ago I discovered to my dismay that the laptop no longer was producing any sound. I've troubleshooted this entire week, and I think I'm ready to ask around on the forum. I've tried pretty much everything to my knowledge only

  • Drawing Tools Acting As If Shift Key Being Held Down

    Hey guys, Small problem here with Adobe Acrobat Reader 8.0.0. When drawing square, oval, etc., the shapes are coming up as if the Shift Key was being held down. This also happens when trying to draw a box to place a digital signature. Check my keyboa

  • Enhancement for Sales process in FMCG industry

    Dear Experts, I have a requirement for Cross Selling at my client. I have seen several posts in SDN but I have not found the exact solution for my requirement. Kindly suggest as per my requirement. The requirement is as follows: My client sells Mater

  • Why can't my Apple TV detect my Mc Book Pro to use the Airplay

    Why can't my Apple TV not detect my Mc Book Pro. I recently installed the Mountain Lion OS and wanted to use the Airplay feature.

  • More than one item table in HIERSEQ_LIST_DISPLAY

    Hi , Is it possible to have moe than one item table in HIERSEQ_LIST_DISPLAY. if we have more than one item table with different structures then what is the best way to disply them. Thanks and Regards,