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; / -- TomekBReceived on Mon Apr 26 2004 - 08:08:41 CDT