Home » SQL & PL/SQL » SQL & PL/SQL » Need procedure to execute CLOB as paramter (oracle 11g)
Need procedure to execute CLOB as paramter [message #623751] Sun, 14 September 2014 01:08 Go to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
I have proceudre with CLOB as paramter,but while executing i am getting the error

create or replace procedure test1(doc clob, result in out sys ref cursor)
as

sqlquery clob;
begin

sqlquery := sqlquery || 'select * from (select * from table1 t where id=101 and docid in ('''||doc||''') n )';

open result for sqlquery;

end;

procedure successfully executed;

exec test1('54678,4566,56666',:rt1);

getting errror

pls help in this procedure
Re: Need procedure to execute CLOB as paramter [message #623753 is a reply to message #623751] Sun, 14 September 2014 01:48 Go to previous messageGo to next message
Barbara Boehmer
Messages: 9090
Registered: November 2002
Location: California, USA
Senior Member
It's sys_refcursor, not sys ref cursor.

Since you are passing numeric values in your clob without quotes between them, you need to remove the extra quotes around them in sqlquery.

Your n alias is misplaced. In the example below, I have put it in the right place and prefaced the appropriate things with the aliases n and t.

If your doc parameter is a lengthy clob, then you will need to append using dbms_lob, not just concatenate.

In the future, it would help if you would provide a copy and paste of a complete reproduction, including create table and insert statements, and the error that you receive.

Please see the complete example, including corrected procedure code below.

SCOTT@orcl12c> create table table1
  2    (id     number,
  3  	docid  number)
  4  /

Table created.

SCOTT@orcl12c> insert all
  2  into table1 values (101, 54678)
  3  into table1 values (101, 4566)
  4  into table1 values (101, 56666)
  5  into table1 values (101, 101)
  6  select * from dual
  7  /

4 rows created.

SCOTT@orcl12c> create or replace procedure test1
  2    (doc	      clob,
  3  	result in out sys_refcursor)
  4  as
  5    sqlquery       clob;
  6  begin
  7    sqlquery := 'select n.* from (select t.* from table1 t where t.id=101 and t.docid in (';
  8    dbms_lob.append (sqlquery, doc);
  9    dbms_lob.writeappend (sqlquery, 4,')) n');
 10    dbms_output.put_line (sqlquery);
 11    open result for sqlquery;
 12  end test1;
 13  /

Procedure created.

SCOTT@orcl12c> show errors
No errors.
SCOTT@orcl12c> variable rt1 refcursor
SCOTT@orcl12c> exec test1 ('54678,4566,56666', :rt1)
select n.* from (select t.* from table1 t where t.id=101 and t.docid in
(54678,4566,56666)) n

PL/SQL procedure successfully completed.

SCOTT@orcl12c> print rt1

        ID      DOCID
---------- ----------
       101      54678
       101       4566
       101      56666

3 rows selected.

Re: Need procedure to execute CLOB as paramter [message #623755 is a reply to message #623751] Sun, 14 September 2014 02:24 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

Don't do that!
It is very very bad, you will kill your SGA and impact the performances of ALL sessions.

Re: Need procedure to execute CLOB as paramter [message #623756 is a reply to message #623755] Sun, 14 September 2014 02:36 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
Then how can I use the same without performance impact??
Re: Need procedure to execute CLOB as paramter [message #623759 is a reply to message #623756] Sun, 14 September 2014 04:20 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
Hi Michel,

Could you help me in this issue...how can i implement the same without performance impact...
Re: Need procedure to execute CLOB as paramter [message #623762 is a reply to message #623759] Sun, 14 September 2014 04:32 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

It depends how you get the values.

Re: Need procedure to execute CLOB as paramter [message #623763 is a reply to message #623762] Sun, 14 September 2014 04:39 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
we are getting numeric values as clob...and also i need to frame the dynamic sql based on business rules...so i need to include these clob values in IN CONDITION ...could you pls help is there any other way to convert the same ...
Re: Need procedure to execute CLOB as paramter [message #623764 is a reply to message #623763] Sun, 14 September 2014 05:51 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

You are getting from where?
How are they enter to become a clob?

Re: Need procedure to execute CLOB as paramter [message #623765 is a reply to message #623764] Sun, 14 September 2014 05:53 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
Hi Michel,

I am getting from frondend application(.Net )they are calling this procedure to display the results..
Re: Need procedure to execute CLOB as paramter [message #623767 is a reply to message #623765] Sun, 14 September 2014 06:03 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

So change the application so that they record the values in a (temp) table (using bind array variable, of course) or, at least, as an array of values (like sys.odcinumberlist).

Re: Need procedure to execute CLOB as paramter [message #623768 is a reply to message #623767] Sun, 14 September 2014 06:05 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
hi Michel,

It is not possible to change the application..is there any way to convert the Clob vlaues into temp table in plsql ..could you please help ...
Re: Need procedure to execute CLOB as paramter [message #623770 is a reply to message #623768] Sun, 14 September 2014 06:27 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

yes but this will not change anything to the problem.
The problem comes from the fact your values are in a clob.
If you can't change that then you have to live with problem but this will not last long before your clients will come with a bad performances issue.

https://www.youtube.com/watch?v=5WPOUvzyLjc

Re: Need procedure to execute CLOB as paramter [message #623782 is a reply to message #623768] Sun, 14 September 2014 12:44 Go to previous messageGo to next message
Barbara Boehmer
Messages: 9090
Registered: November 2002
Location: California, USA
Senior Member
You could use one of many variations of Tom Kyte's str2tbl function to convert the clob to a virtual table that you can use in the dynamic query, as demonstrated below.

SCOTT@orcl12c> create table table1
  2    (id     number,
  3  	docid  number)
  4  /

Table created.

SCOTT@orcl12c> insert all
  2  into table1 values (101, 54678)
  3  into table1 values (101, 4566)
  4  into table1 values (101, 56666)
  5  into table1 values (101, 101)
  6  select * from dual
  7  /

4 rows created.

SCOTT@orcl12c> create or replace function str2tbl
  2    (p_str	in clob,
  3  	p_delim in varchar2 default ',')
  4    return	   sys.odcivarchar2list pipelined
  5  as
  6    l_str	   clob default p_str || p_delim;
  7    l_n	   number;
  8  begin
  9    loop
 10  	 l_n := instr (l_str, ',');
 11  	 exit when nvl (l_n, 0) = 0;
 12  	 pipe row (ltrim (rtrim (substr (l_str, 1, l_n - 1))));
 13  	 l_str := ltrim (substr (l_str, l_n + length (p_delim)));
 14    end loop;
 15    return;
 16  end str2tbl;
 17  /

Function created.

SCOTT@orcl12c> show errors
No errors.
SCOTT@orcl12c> select * from table (str2tbl ('54678,4566,56666'))
  2  /

COLUMN_VALUE
--------------------------------------------------------------------------------
54678
4566
56666

3 rows selected.

SCOTT@orcl12c> create or replace procedure test1
  2    (doc	      clob,
  3  	result in out sys_refcursor)
  4  as
  5    sqlquery       clob;
  6  begin
  7    sqlquery :=
  8  	 'select n.*
  9  	  from	 (select t.*
 10  		  from	 table1 t
 11  		  where  t.id=101
 12  		  and	 t.docid in
 13  			 (select *
 14  			  from	 table (str2tbl (:doc)))) n';
 15    open result for sqlquery using doc;
 16  end test1;
 17  /

Procedure created.

SCOTT@orcl12c> show errors
No errors.
SCOTT@orcl12c> variable rt1 refcursor
SCOTT@orcl12c> exec test1 ('54678,4566,56666', :rt1)

PL/SQL procedure successfully completed.

SCOTT@orcl12c> print rt1

        ID      DOCID
---------- ----------
       101      54678
       101       4566
       101      56666

3 rows selected.

Re: Need procedure to execute CLOB as paramter [message #623801 is a reply to message #623782] Mon, 15 September 2014 00:17 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
Thanks Barbara for your solution.
But the problem is if the query length is more than 38000 characters..then it is failing.
I think there is limitation in Pl sql ...

Re: Need procedure to execute CLOB as paramter [message #623804 is a reply to message #623801] Mon, 15 September 2014 01:37 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

If you call the function with a CLOB (and not a VARCHAR2) there should be any problem to cross this limit.
Anyway, as I said, if you call your function like "exec test1 ('54678,4566,56666', :rt1)" (or in a similar way) this will not change anything. You will have one different statement in the SGA each time you call the function and if the string is really long or the calls numerous then you will kill your SGA.

Re: Need procedure to execute CLOB as paramter [message #623805 is a reply to message #623804] Mon, 15 September 2014 01:46 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
yes Michel. this is one more problem now.
How can I handle this one.Could you please suggest the best way...
Re: Need procedure to execute CLOB as paramter [message #623806 is a reply to message #623805] Mon, 15 September 2014 02:12 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
Hi Michel,

Could you please help me the better way...I need to implement the same in my big production database.............
Re: Need procedure to execute CLOB as paramter [message #623808 is a reply to message #623801] Mon, 15 September 2014 02:28 Go to previous messageGo to next message
Barbara Boehmer
Messages: 9090
Registered: November 2002
Location: California, USA
Senior Member
mvrkr44 wrote on Sun, 14 September 2014 22:17
Thanks Barbara for your solution.
But the problem is if the query length is more than 38000 characters..then it is failing.
I think there is limitation in Pl sql ...


I tested what I provided by passing a clob longer than 38000 characters. Note that this does not affect the length of the query. If you are using a different query, then you need to post the actual query. You also need to post a copy and paste of what you did, complete with the error message. Just describing what you are doing is not sufficient.

Re: Need procedure to execute CLOB as paramter [message #623810 is a reply to message #623808] Mon, 15 September 2014 02:35 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
hi ,
I am executing the same query in my test db using TOAD.
I got the below error,if i pass more than 38000 characters in clob
Ora-06550:line1 ,column 20;
PLS-00172:String literal too long
Re: Need procedure to execute CLOB as paramter [message #623811 is a reply to message #623808] Mon, 15 September 2014 02:41 Go to previous messageGo to next message
Barbara Boehmer
Messages: 9090
Registered: November 2002
Location: California, USA
Senior Member
Here is an example, passing the values as a clob of length greater than 38000, which does not change the length of the query.

SCOTT@orcl12c> create table table1
  2    (id     number,
  3  	docid  number)
  4  /

Table created.

SCOTT@orcl12c> insert all
  2  into table1 values (101, 54678)
  3  into table1 values (101, 4566)
  4  into table1 values (101, 56666)
  5  select * from dual
  6  /

3 rows created.

SCOTT@orcl12c> create or replace function str2tbl
  2    (p_str	in clob,
  3  	p_delim in varchar2 default ',')
  4    return	   sys.odcivarchar2list pipelined
  5  as
  6    l_str	   clob default p_str || p_delim;
  7    l_n	   number;
  8  begin
  9    loop
 10  	 l_n := instr (l_str, ',');
 11  	 exit when nvl (l_n, 0) = 0;
 12  	 pipe row (ltrim (rtrim (substr (l_str, 1, l_n - 1))));
 13  	 l_str := ltrim (substr (l_str, l_n + length (p_delim)));
 14    end loop;
 15    return;
 16  end str2tbl;
 17  /

Function created.

SCOTT@orcl12c> create or replace procedure test1
  2    (doc	      clob,
  3  	result in out sys_refcursor)
  4  as
  5    sqlquery       clob;
  6  begin
  7    sqlquery :=
  8  	 'select n.*
  9  	  from	 (select t.*
 10  		  from	 table1 t
 11  		  where  t.id=101
 12  		  and	 t.docid in
 13  			 (select *
 14  			  from	 table (str2tbl (:doc)))) n';
 15    open result for sqlquery using doc;
 16  end test1;
 17  /

Procedure created.

SCOTT@orcl12c> variable rt1 refcursor
SCOTT@orcl12c> declare
  2    v_clob clob;
  3    i      number := 0;
  4  begin
  5    dbms_lob.createtemporary (v_clob, false);
  6    dbms_lob.writeappend (v_clob, 17, '54678,4566,56666,');
  7    while length (v_clob) <= 38000 loop
  8  	 i := i + 1;
  9  	 dbms_lob.writeappend (v_clob, length (i) + 1, i || ',');
 10    end loop;
 11    v_clob := rtrim (v_clob, ',');
 12    dbms_output.put_line (length (v_clob));
 13    test1 (v_clob, :rt1);
 14    dbms_lob.freetemporary (v_clob);
 15  end;
 16  /
38004

PL/SQL procedure successfully completed.

SCOTT@orcl12c> print rt1

        ID      DOCID
---------- ----------
       101      54678
       101       4566
       101      56666

3 rows selected.

Re: Need procedure to execute CLOB as paramter [message #623812 is a reply to message #623810] Mon, 15 September 2014 02:44 Go to previous messageGo to next message
Barbara Boehmer
Messages: 9090
Registered: November 2002
Location: California, USA
Senior Member
mvrkr44 wrote on Mon, 15 September 2014 00:35
hi ,
I am executing the same query in my test db using TOAD.
I got the below error,if i pass more than 38000 characters in clob
Ora-06550:line1 ,column 20;
PLS-00172:String literal too long


Don't test it in Toad. Test it in SQL*Plus. You need to show how you are generating the 38000 characters in the clob, as that is where the problem lies. If you are actually using a clob, then it is not the length, but how you are creating it. You will need to append to the clob, not concatenate, as I have demonstrated.


Re: Need procedure to execute CLOB as paramter [message #623813 is a reply to message #623812] Mon, 15 September 2014 02:49 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
sorry Barbara,I have tested the old one...
Your code is working fine.But as Suggested by Michel,it will impact on SGA?
Because so many users will use the same procedure in production...
Re: Need procedure to execute CLOB as paramter [message #623814 is a reply to message #623813] Mon, 15 September 2014 02:56 Go to previous messageGo to next message
Barbara Boehmer
Messages: 9090
Registered: November 2002
Location: California, USA
Senior Member
If you pass the values as a string literal, then it will be a different query each time, and each one will be stored in the SGA and not re-used.

However, if you pass the values as a clob variable, as I did in my last example, then you will be executing the same query each time, so it will be stored in the SGA only once, so it won't clutter the SGA, and it will be re-used each time you run the query, so each query will be faster than the first run.
Re: Need procedure to execute CLOB as paramter [message #623815 is a reply to message #623814] Mon, 15 September 2014 02:59 Go to previous messageGo to next message
Barbara Boehmer
Messages: 9090
Registered: November 2002
Location: California, USA
Senior Member
Just to make it clearer, the first one below will clutter the SGA and run slow. The second one below will not clutter the SGA and will run fast.

test1 ('54678,4566,56666', :rt1);

test1 (v_clob, :rt1);
Re: Need procedure to execute CLOB as paramter [message #623816 is a reply to message #623814] Mon, 15 September 2014 02:59 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
hi Barbara,

I will get the values from front end application .Then i wil process it.

Re: Need procedure to execute CLOB as paramter [message #623817 is a reply to message #623815] Mon, 15 September 2014 03:01 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
Hi,

I wil get the values from front end application like
test1 ('54678,4566,56666', :rt1);

Then how can i improve the performance??
Re: Need procedure to execute CLOB as paramter [message #623818 is a reply to message #623816] Mon, 15 September 2014 03:02 Go to previous messageGo to next message
Barbara Boehmer
Messages: 9090
Registered: November 2002
Location: California, USA
Senior Member
mvrkr44 wrote on Mon, 15 September 2014 00:59
hi Barbara,

I will get the values from front end application .Then i wil process it.



I think we may have been posting at the same time, so you may have missed my last post. Just make sure that you store then values in a clob variable, then pass that variable, as I demonstrated, instead of passing the list of values directly.
Re: Need procedure to execute CLOB as paramter [message #623823 is a reply to message #623818] Mon, 15 September 2014 03:33 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
Hi ,
If i use the procedure as below...it is saying the string limit 4000 only .Minimum i will pass 7000 characters in clob

reate or replace procedure test1
2 (doc clob,
3 result in out sys_refcursor)
4 as
5 sqlquery clob;
6 begin
7 sqlquery :=
8 'select n.*
9 from (select t.*
10 from table1 t
11 where t.id=101
12 and t.docid in
13 (select *
14 from table (str2tbl ('''||doc||''')))) n';
15 open result for sqlquery ;
16 end test1;
17 /
Re: Need procedure to execute CLOB as paramter [message #623828 is a reply to message #623823] Mon, 15 September 2014 04:04 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

Quote:
rom table (str2tbl ('''||doc||''')))) n'


No! do not concatenate the CLOB value, use the CLOB variable as in Barbara's example:

Quote:
 14  			  from	 table (str2tbl (:doc)))) n';
 15    open result for sqlquery using doc;


Please read How to use [code] tags and make your code easier to read.

Re: Need procedure to execute CLOB as paramter [message #623829 is a reply to message #623828] Mon, 15 September 2014 04:27 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
Hi Michel,

If i use doc as bing variable,you are saying that performance problem(SGA IMPACT).
Then how can i use the same without of any performance impact?
Re: Need procedure to execute CLOB as paramter [message #623830 is a reply to message #623829] Mon, 15 September 2014 04:38 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

No you are not using the CLOB as bind variable, you concatenate its value inside the query. This is what cause a problem in the SGA; Barbara explained you this.
See the difference between Barbara's code and yours.

Re: Need procedure to execute CLOB as paramter [message #623831 is a reply to message #623830] Mon, 15 September 2014 04:40 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
hi Michel,

Can i use the code like this,is there any SGA impact?

create or replace procedure test1
(doc clob,
result in out sys_refcursor)
as
sqlquery clob;
doc1 clob;
begin
doc1 := doc
sqlquery :=
'select n.*
from (select t.*
from table1 t
where t.id=101
and t.docid in
(select *
from table (str2tbl (:doc1)))) n';
open result for sqlquery using doc1;
end test1;
/
Re: Need procedure to execute CLOB as paramter [message #623836 is a reply to message #623831] Mon, 15 September 2014 05:27 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator
Michel Cadot wrote on Mon, 15 September 2014 11:04


Please read How to use [code] tags and make your code easier to read.



If you refuse to help us to help you, I stop trying to do so.

Re: Need procedure to execute CLOB as paramter [message #623837 is a reply to message #623836] Mon, 15 September 2014 05:37 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
Sorry Michel.

From next time on wards i will do formatting my code.
Re: Need procedure to execute CLOB as paramter [message #623839 is a reply to message #623836] Mon, 15 September 2014 05:42 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
Sorry Michel.

I formatted my code .

Can i use the code like below,is there any SGA impact?

SCOTT@orcl12c> create or replace procedure test1
2 (doc clob,
3 result in out sys_refcursor)
4 as
5 sqlquery clob;
doc1 clob;
6 begin
doc1 :=doc;
7 sqlquery :=
8 'select n.*
9 from (select t.*
10 from table1 t
11 where t.id=101
12 and t.docid in
13 (select *
14 from table (str2tbl (:doc1)))) n';
15 open result for sqlquery using doc1;
16 end test1;
17 /

[Updated on: Mon, 15 September 2014 05:45]

Report message to a moderator

Re: Need procedure to execute CLOB as paramter [message #623841 is a reply to message #623839] Mon, 15 September 2014 05:55 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

No you didn't.
Read the link.

Re: Need procedure to execute CLOB as paramter [message #623843 is a reply to message #623841] Mon, 15 September 2014 06:04 Go to previous messageGo to next message
mvrkr44
Messages: 132
Registered: December 2012
Senior Member
Hi Michel,
Thanks for your suggestion.This time i did the same as you explained


CREATE OR replace PROCEDURE Test1 (doc    CLOB,
                                   result IN OUT SYS_REFCURSOR)
AS
  sqlquery CLOB;
  doc1     CLOB;
BEGIN
    doc1 := doc;

    sqlquery :=
'select n.*from (select t.* from table1 t where t.id=101
                   and	t.docid in (select * from table (str2tbl (:doc1)))) n';

OPEN result FOR sqlquery USING doc1;
END test1;
/

[Updated on: Mon, 15 September 2014 06:05]

Report message to a moderator

Re: Need procedure to execute CLOB as paramter [message #623872 is a reply to message #623843] Mon, 15 September 2014 13:38 Go to previous messageGo to next message
Barbara Boehmer
Messages: 9090
Registered: November 2002
Location: California, USA
Senior Member
mvrkr44 wrote on Mon, 15 September 2014 04:04
Hi Michel,
Thanks for your suggestion.This time i did the same as you explained


CREATE OR replace PROCEDURE Test1 (doc    CLOB,
                                   result IN OUT SYS_REFCURSOR)
AS
  sqlquery CLOB;
  doc1     CLOB;
BEGIN
    doc1 := doc;

    sqlquery :=
'select n.*from (select t.* from table1 t where t.id=101
                   and	t.docid in (select * from table (str2tbl (:doc1)))) n';

OPEN result FOR sqlquery USING doc1;
END test1;
/


You can do it that way. But, why assign the value of the input parameter doc to a local variable doc1? Why not just use doc directly? Why not use the code that I provided? I have provided the code again without line numbers below. This still uses a bind variable, which is what you should want, instead of concatenating.

create or replace procedure test1
  (doc           clob, 
   result in out sys_refcursor)
as
  sqlquery       clob;
begin
  sqlquery := 
    'select n.* 
     from   (select t.* 
             from   table1 t 
             where  t.id=101 
             and    t.docid in 
                    (select * 
                     from   table (str2tbl (:doc)))) n';
  open result for sqlquery using doc;
end test1;
/

Re: Need procedure to execute CLOB as paramter [message #623874 is a reply to message #623872] Mon, 15 September 2014 13:49 Go to previous message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

Now if you still call your procedure using something like "exec test1('54678,4566,56666',:rt1);" then you didn't change anything.
You must also use a CLOB variable in the calling program.

Previous Topic: Query tuning.
Next Topic: Several rows data in a column adding in one row group by catagory
Goto Forum:
  


Current Time: Thu Apr 25 12:06:59 CDT 2024