| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: PL/SQL: Using a constant for values in set
> 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
![]() |
![]() |