Re: Inserting records in a cursor

  • From: GovindanK <gkatteri@xxxxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Thu, 04 Mar 2004 07:45:20 -0800

May be this is what you need

SQL*Plus: Release 9.2.0.1.0 - Production on Sat Jun 15
01:03:12 2002

Copyright (c) 1982, 2002, Oracle Corporation.  All
rights reserved.


Connected to: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.1.0 - Production

SQL>
SQL> set serveroutput on size 1000000;
SQL> set echo on
SQL> create table my_emp(empno number , empsal number)
 2  /

Table created.

SQL> begin
 2    insert into my_emp values(1001, 1000);
 3    insert into my_emp values(1002, 2000);
 4    insert into my_emp values(1003, 3000);
 5  end;
 6  /

PL/SQL procedure successfully completed.

SQL> CREATE or REPLACE TYPE my_record_type as OBJECT
 2  ( xempsal          NUMBER )
 3  /

Type created.

SQL> CREATE or REPLACE TYPE my_table_type as TABLE of
my_record_type
 2  /

Type created.

SQL> declare
 2  buf_data my_table_type := my_table_type()  ;
 3  begin
 4    buf_data.EXTEND ;
 5    buf_data(1) := my_record_type(1000) ;
 6    buf_data.EXTEND ;
 7    buf_data(2) := my_record_type(2000) ;
 8    FOR CX in
 9     (
10     select a.empno , a.empsal
11       from
12            (select empno , empsal from my_emp) a
13           ,TABLE ( cast( buf_data as my_table_Type) ) y
14      WHERE y.xempsal = a.empsal
15     )
16     loop
17        dbms_output.put_line('EmpNo ='||cx.empno||' qualifies');
18     end loop;
19  end;
20  /
EmpNo = 1001 qualifies
EmpNo = 1002 qualifies

PL/SQL procedure successfully completed.

SQL> set echo off
SQL> set echo on
SQL> declare
 2  buf_data my_table_type := my_table_type()  ;
 3  begin
 4    buf_data.EXTEND ;
 5    buf_data(1) := my_record_type(1000) ;
 6    buf_data.EXTEND ;
 7    buf_data(2) := my_record_type(2000) ;
 8    FOR CX in
 9     (
10     select a.empno , a.empsal
11       from
12           TABLE ( cast( buf_data as my_table_Type ) ) y
13           ,(select empno , empsal from my_emp) a
14      WHERE y.xempsal = a.empsal
15     )
16     loop
17        dbms_output.put_line('EmpNo = '||cx.empno||' qualifies');
18     end loop;
19  end;
20  /
EmpNo = 1001 qualifies
EmpNo = 1002 qualifies

PL/SQL procedure successfully completed.

SQL>



Jamadagni, Rajendra wrote:

Me too lazy ...

Raj
--------------------------------------------------------------------------------
Rajendra dot Jamadagni at nospamespn dot com
All Views expressed in this email are strictly personal.
select standard_disclaimer from company_requirements;
QOTD: Any clod can have facts, having an opinion is an art !


-----Original Message----- From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]On Behalf Of Chris Stephens Sent: Wednesday, March 03, 2004 3:59 PM To: 'oracle-l@xxxxxxxxxxxxx' Subject: RE: Inserting records in a cursor


Excellent spanglish!


-----Original Message-----
From: Jamadagni, Rajendra [mailto:Rajendra.Jamadagni@xxxxxxxx] Sent: Wednesday, March 03, 2004 2:56 PM
To: oracle-l@xxxxxxxxxxxxx
Subject: RE: Inserting records in a cursor


CREATE OR REPLACE TYPE ctb.tyo_cco_imputacion AS OBJECT(
nTotal NUMBER,
cCCO1 VARCHAR2(9),
cCCO2 VARCHAR2(9),
cCCO3 VARCHAR2(9),
cCCO4 VARCHAR2(9),
cCCO5 VARCHAR2(9),
nMonto NUMBER(16,2))
/

CREATE OR REPLACE TYPE ctb.typ_cco_imputacion AS TABLE OF
CTB.TYO_CCO_IMPUTACION;
/

create functoin load return ctb.typ_cco_imputacion is
TuBLA ctb.typ_cco_imputacion;
begin
for i in 1 .. 10 loop
TUBLA(i).nTotal := i;
TUBLA(i).cCCO1 := 'ccol1 ' || i;
TUBLA(i).cCCO2 := 'ccol2 ' || i;
TUBLA(i).cCCO3 := 'ccol3 ' || i;
TUBLA(i).cCCO4 := 'ccol4 ' || i;
TUBLA(i).cCCO5 := 'ccol5 ' || i;
TUBLA(i).nMonto := i;
end loop;
retturn tubla;
end;
/


something like this should work ...
Raj
----------------------------------------------------------------------------
----
Rajendra dot Jamadagni at nospamespn dot com
All Views expressed in this email are strictly personal.
select standard_disclaimer from company_requirements;
QOTD: Any clod can have facts, having an opinion is an art !


-----Original Message----- From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]On Behalf Of Juan Cachito Reyes Pacheco Sent: Wednesday, March 03, 2004 3:43 PM To: oracle-l@xxxxxxxxxxxxx Subject: Re: Inserting records in a cursor


Could you please give a complete example creating a cursor, and adding values and returning :) pleeease... if I'm not abusing of you. I'm getting other error messages.


declare


Tabla ctb.typ_cco_imputacion;

begin

Tabla(1).ntotal := 1;

Tabla(2).ntotal := 1;

Tabla(3).ntotal := 1;

tabla(4).ntotal := 1;

--RETURN Tabla;

rollback;

end;

16:39:00 ORA-06531: Referencia a una recopilación no inicializada

----- Original Message ----- From: "Jamadagni, Rajendra" <Rajendra.Jamadagni@xxxxxxxx>
To: <oracle-l@xxxxxxxxxxxxx>
Sent: Wednesday, March 03, 2004 4:16 PM
Subject: RE: Inserting records in a cursor



you are probably confused between a table (a rdbms entity) and a collection (aka pl/sql table). Collections do not use DML statements, you need to treat them like arrays ... that's what they are.

tubla[1].ntotal := 1;
tubla[2].ntotal := 1;
tubla[3].ntotal := 1;
tubla[4].ntotal := 1;

Raj
----------------------------------------------------------------------------
----
Rajendra dot Jamadagni at nospamespn dot com
All Views expressed in this email are strictly personal.
select standard_disclaimer from company_requirements;
QOTD: Any clod can have facts, having an opinion is an art !


-----Original Message----- From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]On Behalf Of Juan Cachito Reyes Pacheco Sent: Wednesday, March 03, 2004 3:07 PM To: oracle-l@xxxxxxxxxxxxx Subject: Inserting records in a cursor


Hi, maybe this is a stupid question, but I didn't it before, I want to create a cursor load data, and return in in a funciton something like

If you can please, thank you.
CREATE OR REPLACE

TYPE ctb.tyo_cco_imputacion AS OBJECT

(

nTotal NUMBER,

cCCO1 VARCHAR2(9),

cCCO2 VARCHAR2(9),

cCCO3 VARCHAR2(9),

cCCO4 VARCHAR2(9),

cCCO5 VARCHAR2(9),

nMonto NUMBER(16,2)

)

/

CREATE OR REPLACE

TYPE ctb.typ_cco_imputacion AS TABLE OF CTB.TYO_CCO_IMPUTACION;

/



create functoin load return ctb.typ_cco_imputacion

TuBLA typ_cco_imputacion;

begin

insert into TUBLA values(1,2,3,4);

insert into TUBLA values(1,4,3,4);

....

retturn tubla

end;






----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to:  oracle-l-request@xxxxxxxxxxxxx
put 'unsubscribe' in the subject line.
--
Archives are at //www.freelists.org/archives/oracle-l/
FAQ is at //www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------

Other related posts: