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 /
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 /
SQL> CREATE or REPLACE TYPE my_record_type as OBJECT 2 ( xempsal NUMBER ) 3 /
SQL> CREATE or REPLACE TYPE my_table_type as TABLE of my_record_type 2 /
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
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
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 -----------------------------------------------------------------