Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: Inserting records in a cursor
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;
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;
PL/SQL procedure successfully completed.
SQL> set echo off SQL> set echo on SQL> declare
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;
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_at_freelists.org
>[mailto:oracle-l-bounce_at_freelists.org]On Behalf Of Chris Stephens
>Sent: Wednesday, March 03, 2004 3:59 PM
>To: 'oracle-l_at_freelists.org'
>Subject: RE: Inserting records in a cursor
>
>
>Excellent spanglish!
>
>-----Original Message-----
>From: Jamadagni, Rajendra [mailto:Rajendra.Jamadagni_at_espn.com]
>Sent: Wednesday, March 03, 2004 2:56 PM
>To: oracle-l_at_freelists.org
>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_at_freelists.org
>[mailto:oracle-l-bounce_at_freelists.org]On Behalf Of Juan Cachito Reyes
>Pacheco
>Sent: Wednesday, March 03, 2004 3:43 PM
>To: oracle-l_at_freelists.org
>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_at_espn.com>
>To: <oracle-l_at_freelists.org>
>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_at_freelists.org
>[mailto:oracle-l-bounce_at_freelists.org]On Behalf Of Juan Cachito Reyes
>Pacheco
>Sent: Wednesday, March 03, 2004 3:07 PM
>To: oracle-l_at_freelists.org
>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;
>
>
>
>
-- Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------Received on Thu Mar 04 2004 - 10:12:19 CST