Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: PL/SQL: Using a constant for values in set

Re: PL/SQL: Using a constant for values in set

From: Noel <tomekb_at_softman.pl>
Date: Mon, 26 Apr 2004 15:08:41 +0200
Message-ID: <c6j1ks$4ou$1@inews.gazeta.pl>


> ConstFirst CONSTANT VARCHAR2(500) := '''TEST1'', ''TEST2''';

> SELECT 'X'
> INTO V_Found
> FROM TestTable
> WHERE Testcode IN (ConstFirst)

It will return only rows where TestCode = '''TEST1'', ''TEST2''', not 'TEST1' OR 'TEST2'

It would work only for 'one' variable:
DECLARE
 x VARCHAR2(200) := 'TABLE';
 y NUMBER;
BEGIN
 SELECT COUNT(*)
   INTO y
   FROM ALL_OBJECTS
   WHERE object_type IN (x);
 DBMS_OUTPUT.put_line('There''s '||y||' tables.'); END;

--
Dynamic SQL ??  Yes, it would do.

DECLARE
 x VARCHAR2(200) := '''TABLE'',''VIEW''';
 y NUMBER;
 sql_txt VARCHAR2(2000);
BEGIN
 sql_txt := 'SELECT COUNT(*) FROM ALL_OBJECTS WHERE OBJECT_TYPE IN
('||x||')';
 execute immediate sql_txt INTO y;
  DBMS_OUTPUT.put_line('There''s '||y||' tables and views');

END;
/
--
TomekB
Received on Mon Apr 26 2004 - 08:08:41 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US